購入・ダウンロードAPI

購入・ダウンロードAPI Overview


購入・ダウンロードAPIは、In app billingでの決済時・決済完了後に利用されるコンテンツ郡です。
In app billingから発行されたレシートはtransactionAPIを利用し、dodaiiに保存、かつdodaiiに設定されている公開鍵を利用してレシートを検証します。
その後、ダウンロード型であれば時限付きダウンロードURLを取得しダウンロードを実行、それ以外のアイテムであれば必要に応じてdodaiiに決済状況の問い合わせを行うことができます。

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



In app billingを利用しての決済処理が完了すると、レシート・シグネチャが取得できますので、そのレシートをdodaiiに送信いただく事で、
dodaiiに設定した公開鍵を利用してレシートを検証し、正しければ「購入履歴」としてサーバに保存します。
本番用(課金が発生します)および開発時のSandboxの両方がご利用いただけます。

無料アイテムについて:

 dodaiiでは、In app billingを介さず、単純にコンテンツを無料でダウンロードさせることも可能です。その場合、同じくトランザクションAPIに対して、プロダクト番号のみをポストすることで実現しています。

※無料アイテムのトランザクションは dodaii Panel のアプリケーションステータスが「販売中」の状態でのみ、ご利用できます。dodaii Panel 設定方法につきましては、提出ガイドをご覧下さい。

基本的には「販売中」ステータスのトランザクションは課金対象となりますが、1ヶ月の回数が十数回程度であればテストと見なして、ご請求はしておりません。ただし、同月中に本番利用が始まった場合は、合わせて請求させて頂いております。また、無料アイテムは1課金あたり5円となります。

●リクエストURL

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

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

SandBox:

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

無料アイテム:

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

●リクエストメソッド

POST

●リクエストパラメータ

項目意味必須値の例
receiptレシート(JSON)の文字列必須(free時は不必要) 
signatureレシートの検証に利用する文字列必須(free時は不必要) 
TOKENアプリケーションを一意に特定するトークン必須6427d3ccb8f01fafca85c2303c057bbe
identifierプロダクトのGooglePlayで使用するサービスIDです必須com.dodaii.testApplication

●レスポンス

項目名意味値の例
orderIdsダウンロード情報取得時に利用するIDです。
※Sadobox利用時はdodaii側で発行したorderIdが記載されます。
475854308172758293_sandbox
originalリクエストで送信したレシートの内容{"nonce":8457330045213777093,"orders":[{"notificationId":"android.test.purchased","orderId":"transactionId.android.test.purchased", "packageName":"com.dodaii.sample", "productId":"android.test.purchased","purchaseTime":1357972253300,"purchaseState":0}]}

●サンプルレスポンス

通常:

{
    "orderIds":[
        "475854308172758293_sandbox"
    ],
    "original":"{\"nonce\":8457330045213777093,\"orders\":[{\"notificationId\":\"android.test.purchased\",\"orderId\":\"transactionId.android.test.purchased\",\"packageName\":\"com.dodaii.sample\",\"productId\":\"android.test.purchased\",\"purchaseTime\":1357972253300,\"purchaseState\":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に紐づくアプリケーションが存在しないとき


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



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

●リクエストURL


https://dodaii.com/api/android/v2/product/get/


●リクエストメソッド

POST

●リクエストパラメータ

項目意味必須値の例
transactionId購入レシートのトランザクションIDです。必須00000001354
tokenアプリケーションを一意に特定するトークン必須6427d3ccb8f01fafca85c2303c057bbe
deviceId個体識別用の文字列
開発者側でIDの内容を決める必要があります。
必須

●レスポンス

項目名意味値の例
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/android/v2/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/android/v2/product/download/


    ●リクエストパラメータ

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

    ●レスポンス

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

    ●エラーケース

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