現在、将来のアプリのためにアプリ内課金をテストしていますが、テストアイテム「android.test.purchased」を初めて正常に「購入」した後、再度購入しようとするたびに応答コード 7 を受け取ります。これは、このアイテムをすでに所有していることを意味します。
12-15 23:02:14.149: E/IabHelper(19829): アプリ内課金エラー: アイテムを購入できません、エラー応答: 7: アイテムは既に所有されています
私の理解では、この購入は常に可能であるはずですよね? 開発者が自分のアプリをテストできるようにするためでしょうか?
そうでない場合、所有されていない状態に状態を「リセット」するにはどうすればよいでしょうか? Google アプリ内課金サンプルの util パッケージを使用しています。
ベストアンサー1
消費リクエストを開始するには、このコードをスレッドに追加します。
int response = mService.consumePurchase(3, getPackageName(), purchaseToken);
ここで購入テストでは、purchaseTokenは
purchaseToken = "inapp:" + getPackageName() + ":android.test.purchased";
そして
if (response == 0)
消費は成功です。
また、mServiceをパブリックにすることも忘れないでください
IabHelper.Java
次のようにアクセスできるようになります:
int response = mHelper.mService.consumePurchase(3, getPackageName(), purchaseToken);