購入・ダウンロードAPI

購入・ダウンロードAPI Overview


購入・ダウンロードAPIは、StoreKitを利用しての決済が完了した後に利用されるコンテンツ群です。まずはじめにtransactionAPIを利用し、StoreKitのレシートをdodaiiに保存、かつAppleのverifyサーバによる検証を行います。その後、ダウンロード型であれば時限付きダウンロードURLを取得しダウンロードを実行、それ以外のアイテムであれば必要に応じてdodaiiに決済状況の問い合わせを行うことができます。
 
購入確認通知APIのUDIDパラメータについて:
Appleから発表がありましたとおり、2013年5月1日以降はUDIDを利用したアプリの申請・更新はリジェクトされるようになります。
発表を受け、dodaiiの購入確認通知APIのUDIDをオプション化しました。
オプション化ですので、現在UDIDをパラメータに指定しているアプリは修正していただく必要はございませんが、更新時にはUDIDパラメータに別のIDを指定するか、指定せずにご利用いただけますようお願い致します。

-購入確認通知(トランザクションの確認・保存)



SKPaymentRequestを利用しての決済処理が完了すると、レシートオブジェクトが取得できますので、そのレシートをdodaiiに送信いただく事で、
AppleにレシートIDが正しいかどうかを問い合わせ、正しければ「購入履歴」としてサーバに保存します。
本番用(課金が発生します)および開発時のSandbox(Appleへの問い合わせもSandboxのURLを使用します)の両方がご利用いただけます。

無料アイテムについて:
dodaiiでは、StoreKitを介さず、単純にコンテンツを無料でダウンロードさせることも可能です。
その場合、同じく購入確認通知APIに対して、プロダクトIDのみをポストすることで実現しています。

アプリケーションの状態が「開発中」の場合
 1日100回までご利用頂けます。(毎日0時に回数は0回にリセットされます)
 101回目には、エラー(コード:5005)が返却されます。
 「開発中」の場合のトランザクション費用はかかりません。

アプリケーションの状態が「販売中」の場合
 回数は無制限でご利用頂けますが、1ダウンロード5円の費用がかかります。

●リクエストURL

本番用:(アプリケーションステータスが販売中の場合のみ利用可能)

https://dodaii.com/api/v3/transaction/

SandBox:

https://dodaii.com/api/v3/transaction/sandbox/

無料アイテム:

https://dodaii.com/api/v3/transaction/free/

●リクエストメソッド

POST

●リクエストパラメータ

項目意味必須値の例
receipt

レシート(NSData)をBase64エンコードしたもの必須(free時は不必要) 
TOKENアプリケーションを一意に特定するトークン必須6427d3ccb8f01fafca85c2303c057bbe
udidiPhoneの個体識別IDオプション00000000-0000-0000-00000-0016CB989B1C
apProductIdプロダクトのAppStoreで使用するIDです必須
com.jp.mars.testApplication


●レスポンス

項目名意味値の例
applicationIdグループがひも付くApplicationのIDです。dodaiiの内部IDになります50
apProductIdプロダクトのAppStoreで使用するIDですcom.jp.mars.testApplication
kanriMemoレシート内容 

●サンプルレスポンス

通常(StoreKit利用):

{
    "receipt": {
        "original_transaction_id": "100000000000000",
        "item_id": "123456789",
        "version_external_identifier": "1234567",
        "bvrs": "1.0.0",
        "product_id": "123456A001",
        "purchase_date": "2011-04-26 15:54:34 Etc/GMT",
        "quantity": "1",
        "app_item_id": "01239812",
        "bid": "jp.co.test.test",
        "original_purchase_date": "2011-04-26 15:54:34 Etc/GMT",
        "transaction_id": "100000000000000"
    },
    "status": 0
}

無料アイテム:

{
    "files": [
        {
            "displayedName": "aaaaa",
            "fileId": 2379,
            "fileName": "IMG_0012.JPG",
            "id": "1",
            "locale": "ja",
            "md5": "96c5c09d4000a8fdea5689e55b5c1afe",
            "size": 991532
        },
        {
            "displayedName": "aaaaa",
            "fileId": 2380,
            "fileName": "IMG_0015.JPG",
            "id": "2",
            "locale": "ja",
            "md5": "4124da36998724c07004cf11e4b6bd0a",
            "size": 1021686
        }
    ],
    "downloadURL": "https://dl.dodaii.com/api/v2/product/download/",
    "downloadKey": "f75ed499b13b71e2bac92896e9937869"
}

●エラーケース

  • 返却すべきトランザクション数が0件の場合
  • Tokenに紐づくアプリケーションが存在しないとき
  • 無料の購入確認APIを「開発中」で利用し、1日100回以上APIを実行したとき



-ダウンロードURL取得(有料・時限付き)



購入後、登録したコンテンツをダウンロードできるURLを発行します。URL漏洩の場合のコンテンツ不正取得のため、3時間の有効期限を設けています。ユーザーが圏外でダウンロードに失敗するなどで、3時間経過した場合は、再取得のリクエストを行って下さい。

●リクエストURL


https://dodaii.com/api/v3/product/get/


●リクエストメソッド

POST

●リクエストパラメータ

項目意味必須値の例
transactionId購入レシートのトランザクションIDです。必須00000001354
tokenアプリケーションを一意に特定するトークン必須6427d3ccb8f01fafca85c2303c057bbe
udidiPhoneの個体識別IDオプション00000000-0000-0000-00000-0016CB989B1C

●レスポンス

項目名意味値の例
downloadURLダウンロードAPIのベースURLhttps://dodaii.com/api/v1/product/download/
downloadKeyダウンロードキー654557934a958f57b267cxxxxxxxx
filesレシート内容以下参照

ダウンロード対象ファイルのパラメータ

項目名意味値の例
displayedName言語ごとに管理パネルで登録した表示名ですhttps://dodaii.com/api/v1/product/download/
fileId一意のファイルID654557934a958f57b267cxxxxxxxx
fileNameアップロードファイル名
sample.wav
idプロダクトコンテンツID(ダウンロードファイル 1~5を指す)4
locale言語ja
md5ファイルのMD5ハッシュ値B59C67BF196A4758191E42F76670CEBA
sizeファイルのサイズ27363




●サンプルレスポンス


{
    "files": [
        {
            "displayedName": "DISPLAY_NAME(Japanese)",
            "fileId": 5,
            "fileName": "iPhonePayment.jpg",
            "id": "1",
            "locale": "ja",
            "md5": "xxxxxxxxxxxxxxx",
            "size": 27363
        }
    ],
    "downloadURL": "https://dodaii.com/api/v2/product/download/",
    "downloadKey": "654557934a958f57b267cxxxxxxxx"
}


●エラーケース
  • 返却すべきトランザクション数が0件の場合
  • Tokenに紐づくアプリケーションが存在しないとき


購入履歴確認API


tokenとapTransactionIdをキーにdodaiiにこのトランザクションが記録されているかどうか確認するAPIです。ダウンロードが伴わない課金プロダクトにご利用ください。

●リクエストURL

https://dodaii.com/api/v3/transaction/getproductid/<token>/<apTransactionId>


●リクエストパラメータ

項目意味必須値の例
TOKENアプリケーションを一意に特定するトークン必須6427d3ccb8f01fafca85c2303c057bbe
apTransactionIdプロダクトのAppStoreで使用するIDです必須100000000000000003521

●レスポンス

項目名意味値の例
responce0ならNG、1ならOK0
PRODUCT_IDENTIFIER(無料ではFREE)グループがひも付くApplicationのIDです。dodaiiの内部IDになります。5053120
idトランザクションがひも付くIDです。115341

●サンプルレスポンス

(通常){"PRODUCT_IDENTIFIER":"addpicture001","responce":"1"}

●エラーケース

  • 返却すべきトランザクション数が0件の場合
  • TOKENに紐づくトランザクションが存在しないとき
  • apProductIdに紐づくトランザクションが存在しないとき

ダウンロードAPI


トランザクションで取得したAPIURLに、以下のパラメータをPOSTで送信するとダウンロード可能です。

●リクエストURL

https://dodaii.com/api/v3/product/download/


    ●リクエストパラメータ

    項目名意味必須値の例
    key有効期限付きのダウンロードキー必須 
    fileIdダウンロードしたいファイルID必須45413

    ●レスポンス

    商品のバイナリデータが返却されます。

    ●エラーケース

    • ダウンロードすべきファイルが存在しない場合
    • keyに紐づくファイルが存在しないとき
    • fileIdに紐づくファイルが存在しないとき
    • 有効期限が切れている場合

    Comments