In-app Billing version3の最終回です。
今回は作ったものがまともに動くかテストする方法を確認します。
テストには二通りの方法があり、ある程度の動きはサンドボックステストで確認し、最終的に実購入テストという流れかと思います。
- サンドボックステスト
購入成功(android.test.purchased)
キャンセル、クレジットカード無効など(android.test.canceled)
払い戻し(android.test.refunded)
存在しないアイテム(android.test.item_unavailable)
android.test.canceledやandroid.test.refundedの場合は、RESPONSE_CODEにBILLING_RESPONSE_RESULT_USER_CANCELEDあたりが返ってくるのかと思ったのですが、BILLING_RESPONSE_RESULT_OKが返ってきます。
ただし、INAPP_PURCHASE_DATAやINAPP_DATA_SIGNATUREはnullです。
android.test.item_unavailableの場合は、onActivityResultに渡されてくるresultCodeでRESULT_CANCELEDが返ってきます。
こっちのActivityのRESULT_CANCELEDは0で、RESULT_OKが-1です。In-app Billingで返ってくるレスポンスコードはBILLING_RESPONSE_RESULT_OKが0なのでややこしいです。
ちなみにandroid.test.purchasedで一度購入成功すると、二度と購入出来なくなるのですが、「設定→アプリ→Google Play→データを削除」でデータを削除すると、再度購入出来るようになります。
- 実購入テスト
実購入テストでは、Google Playと実際に通信して購入処理をテストします。
アルファ版配布用に、google グループで適当にグループを作成し、テスト用のgmailアドレスを招待しておきます。
テスト購入で課金が発生したりしないように、Developer Consoleにログインし、テストアカウントを設定します。
「設定→アカウントの詳細→ライセンス テスト→テスト用のアクセス権がある Gmail アカウント」にテスト用のgmailアドレスを入力します。
テストしたいapkをリリース用のKeyStoreで署名して、アルファ版テストにアップロードします。
「テスターのリストを管理→アプリのアルファ テスト版を提供するユーザー」という画面で先ほど作成したグループを登録すると、オプトインのためのアドレスが表示されます。
テスターが「テスターになる」をタップすると設定は完了で、あとは実際にGoogle Playから実機にインストールして試すだけです。
ただ、アルファ版が有効になるまで結構時間がかかる(半日とか1日とか)ようなので、作ってはアップロード作ってはアップロードという試し方は出来なそうな雰囲気です。
とは言え、やはり課金関連で失敗するとひどいことになるので、十分なテストの上で公開したいところです。
時間を置くと、実際にGoogle Playからダウンロード出来るようになります。
ダウンロードしたアルファ版のアプリで購入ボタンを押すと、しっかりとテスト注文である旨が表示されます。
(アプリ名やカード番号は消しました)
アルファテストで購入完了すると、Googleウォレット販売者コンソールでは以下のように「追加済み」と表示されます。
ということで、苦手意識のあったIn-app Billingですが、version3になって本当にすっきり分かりやすくなりました。
食わず嫌いだった人はこれを機に、是非再チャレンジしてみると良いと思います。
こんばんは。
返信削除課金回りの実機テスト、ややこしそうだと思っておりました。