2

新しいアプリ内購入 SDK を使用して、Amazon Android ストアでゲームをリリースしました。ユーザーが支払った仮想グッズを手に入れられないというセールがいくつか見られます。毎回これが発生する 1 つのユース ケースを再現しました。

基本的に、ユーザーが IAP を開始すると、Amazon の購入ダイアログに移動し、購入を行うと、Amazon の購入確認ダイアログが表示されます。
ユーザーがダイアログの [閉じる] ボタンをクリックするか、画面の下部にあるオプション バーの [戻る] ボタンをクリックすると (Kindle Fire の場合)、ダイアログが閉じ、IAP プロセスがアプリにメッセージを送信します。成功。メッセージを受け取って処理します。すべて問題ありません。
ただし、ユーザーが「ホーム」ボタンを押すと、購入確認が閉じられ、ユーザーがホーム画面にダンプされ、アプリは購入成功メッセージを受け取りません。

ユーザーは、Amazon の IAP 実装でのメッセージ受信の気まぐれを気にすることはなく、得られなかったものに対して支払ったことだけを気にするので、何らかの回避策を講じようとしています。アプリが起動時に以前の購入をチェックするため、問題のない非消耗品が 1 つあります。しかし、消耗品は別の問題です。それらを復元することはできません。

誰かがこれに遭遇しましたか?回避策はありますか?

4

1 に答える 1

1

実際には、購入を実行している 2 つのアプリがあります。購入はアプリによって開始されますが、別のアプリであるデバイスの Amazon IAP コンポーネントによって実行されます。ホームボタンを押すと、アプリがバックグラウンドになり、多くの場合、Android の積極的なメモリ管理が原因で、デバイスのリソース使用量に応じて、アプリが休止状態になるか、強制終了されることさえあります。これにより、購入がアプリに届きません。

アマゾンはそれに対する回避策を持っています。https://developer.amazon.com/public/apis/earn/in-app-purchasing/docs-v2/implementing-iap-2.0に記載されているように、onPurchaseUpdateResponse() を実装します。アプリが再起動されます。すぐに「フェッチ保留中の購入」を妨げるわずかな時間の遅延があります。

また、アイテムがユーザーにフルフィルメントされた後に、notifyFullfilment() を呼び出すようにしてください。これを行わなくても、アプリは動作します。ただし、収益化に悪影響を与える可能性があります (理由はさまざまです。詳しくは説明しません)。

于 2015-12-16T19:38:12.417 に答える