-iOSと同じくまとめ

*参考情報 [#r9b4c7ca]

https://developer.android.com/google/play/billing/billing_overview.html?hl=ja

*テスト [#mbdf7198]

+PlayConsoleに登録必要で一回こっきりの$25
+対象アカウントを絞ったα版アプリ公開(ただしそのままだと課金されてしまう)
+対象アカウントに非課金対応を行う
+「これはテスト用の注文です。課金は発生しません」が出ていることを確認すること!

*定期購読レシート検証API [#w182eeb7]

**認証トークンの取得 [#we7c05d5]

**レシートの検証 [#p9939a8e]

https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get

|変数値|内容|
|

-https://www.googleapis.com/androidpublisher/v2/applications/packageName/purchases/subscriptions/subscriptionId/tokens/token


*流れ [#w35b5f4a]

**認証 [#ze6fcc44]

https://developers.google.com/android-publisher/authorization

**token [#i3d7326c]

base64でエンコードされたJsonを検証するのはiOSと変わらずだが、iOSよりは楽。

-署名検証でJSONが改ざんされていないことを確認(developerPayloadも見る)

 INAPP_DATA_SIGNATURE
 INAPP_PURCHASE_DATA
 ディベロッパーコンソール > アプリ > サービスとAPI の「バイナリに追加する Base64 エンコードの RSA 公開鍵

*購入を一意に識別するキー [#s18d5201]

-orderId

「ユーザーがアプリ内アイテムを購入すると、Google は固有で不変の注文番号をトランザクションに割り当てます。 購入フローの完了時に Google Play からデベロッパーに、注文番号が PURCHASE_STATE_CHANGED インテントの orderId フィールドの値として送られます。」



*用語 [#vd2b5de1]

|Developer Payload|任意の値を設定しておける。なのでサーバーサイドで実DBと付き合わせれば他人のレシート流用は防げる|
|商品リスト|Google Play Developer Consoleで自分で作成するリフト|
|SKU|Stock Keeping Unitで商品の在庫管理単位のこと|
|アプリ内アイテム(Managed product)|消費型(一回使うとおしまい)と非消費型(永遠に付いてくる)がある|
|消費型 アプリ内アイテム|comsumePurchaseメソッドを呼ぶことで消費させる|
|非消費型 アプリ内アイテム|Googleアカウントに紐づく|
|定期購入(Subscription)|Subscription型|
|商品ID|アプリ内で商品を識別できるキー項目。自分で設定する|

同じ商品は二重に購入することはできない。消費型なら消費後、定期購入なら期限切れ後に再度購入可能。

*課金API V3 [#h71aeefb]

https://developer.android.com/google/play/billing/billing_reference.html?hl=ja#purchase-data-table

*参考サイト [#mcc80f2e]

http://inside.pixiv.net/entry/2014/12/09/111310

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS