-iOSと同じくまとめ *テスト [#mbdf7198] +PlayConsoleに登録必要で一回こっきりの$25 +対象アカウントを絞ったα版アプリ公開(ただしそのままだと課金されてしまう) +対象アカウントに非課金対応を行う +「これはテスト用の注文です。課金は発生しません」が出ていることを確認すること! *流れ [#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