購入・ダウンロード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/v2/transaction/

SandBox:

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

無料アイテム:

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

●リクエストメソッド

POST

●リクエストパラメータ

項目 意味 必須 値の例
receipt レシート(NSData)をBase64エンコードしたもの 必須(free時は不必要)  
TOKEN アプリケーションを一意に特定するトークン 必須 6427d3ccb8f01fafca85c2303c057bbe
udid iPhoneの個体識別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/v2/product/get/


●リクエストメソッド

POST

●リクエストパラメータ

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

●レスポンス

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

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

項目名 意味 値の例
displayedName 言語ごとに管理パネルで登録した表示名です https://dodaii.com/api/v1/product/download/
fileId 一意のファイルID 654557934a958f57b267cxxxxxxxx
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/v2/transaction/getproductid/<token>/<apTransactionId>


●リクエストパラメータ

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

●レスポンス

項目名 意味 値の例
responce 0ならNG、1ならOK 0
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/v2/product/download/


●リクエストパラメータ

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

●レスポンス

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

●エラーケース

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





Comments