購入・ダウンロード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に紐づくファイルが存在しないとき
- 有効期限が切れている場合
|
|