Google の「In-App Billing v3」に関するトレーニングに従いました。アイテムを購入することはできましたが、問題が発生しました。
https://developer.android.com/training/in-app-billing/index.html
購入をキャンセルして払い戻しましたが、アプリは購入を事実として検出します。常にアイテムが購入されたと検出されるため、アプリのテストを続行できません。
logCat で見つかった唯一のエラーは次の通りです。
[3687] InAppBillingService.logResponseBundle: バンドルに応答コードが含まれていません
mHelper.queryInventoryAsync(mGotInventoryListener) を起動した後に表示されます。
何か案が?
ベストアンサー1
追伸 - これは払い戻しが更新されるまでに時間がかかることを示唆しています
http://code.google.com/p/marketbilling/issues/detail?id=88#makechanges
しかし、納得できません。購入データをデバイスにキャッシュしていることは理解していますが、24 時間は長すぎます...
「テスト」取引をキャンセルしてから 24 時間以上経過しましたが、それらのアカウントはまだライセンスされていることを追記しました。
再度更新されました - 36 時間後もアプリはまだライセンスされていました。アンインストールして再インストールしましたが、まだライセンスされていました!!
再度更新しました! - デバイスを工場出荷時の状態にリセットし、ログインしてアプリをインストールしましたが、ライセンスが無効でした...
さらにもう 1 つの更新 - Google からの返信によると、払い戻しは「自動的に」処理されますが、デバイス上で更新されるまでに「最大 72 時間」かかる場合があります - 払い戻しを検出する他の方法はないため、払い戻しを行うと、プレーヤーは最大 3 日間のものを「無料で」入手できます - ええと、これはアプリ内購入であってアプリ購入ではないのですが、それでも少し過剰に思えますか?