2

アプリ内課金をクライアントのプロジェクトに統合しているときに、非常に奇妙な動作のように見えるものがたくさんあります。根本的な原因が何であるか、そしてもしあれば、私に何ができるかについて、誰かが光を当ててくれることを願っています. これまでのところ、数日間のグーグル検索 (多くの結果でスタック オーバーフローが発生) と、ここでの少し余分な検索は、私たちの問題とまったく同じではないように見えますが、同様の問題がいくつか発生します。

購入の背景として、単純なパズル ゲームのワールド/レベル パックの購入です。アイテムが購入可能であることを示すトロリー、進行中の購入があることを示すスピン/ロード アイコン、および購入が完了するとワールド情報 (このワールドで完了したレベルなど) を表示します。スピナーが表示されている場合、購入を試みることはできません (ボタンが無効になっています) が、ゲームの利用可能な部分を通常どおりプレイし続けることができます。

これは、かなりの数のデバイスで機能するようです。コードにいくつかの小さな変更を加えた後、毎回機能するようになりました。私たちが抱えていると思われる問題を簡単にリストアップするには:

  1. テスト ユーザーが購入に成功すると、デフォルトの Google Play トーストが表示されますが、購入が成功したというメッセージが最大 5 分間表示されません (これまでで最長の待機時間)。スピナーは常に表示されます。
  2. 上記と同じですが、まったく応答がありません。デバイスを 1 時間以上放置しても結果はありませんでした。スピナーは消えません。
  3. さらに困惑させられるのは、私のクライアント デバイスの 1 つが、購入が成功したと伝えられた後、購入が失敗したときに予想される動作を示したということです。(つまり、スピナーは、レベル データではなくトロリー アイコンに置き換えられます)。これは、購入後に失敗のメッセージを受け取った場合にのみ発生します。ただし、このケースのログ情報は提供されていないため、確認できません。
  4. 注: この特定のエラーは発生しなくなりましたが、そのため、コードにかなりの変更を加える必要がありました。[同意して購入] を押すと、ユーザーには「'エラー' 現在、お支払いを処理できませんでした。アカ​​ウントの確認を求めるメールが届く場合があります」というメッセージが表示されます。このエラーが発生すると、成功と失敗の両方の応答を受け取ります。
  5. 支払いを確認する前に特定の時点で購入を終了すると、応答がまったく受信されず、スピナーが消えることはありません. 繰り返しますが、説明がかなり曖昧でログがなかったため、自分で再現する手順はありません。

テスト デバイスとテスト アカウントの約半数で、購入は問題なく機能することに注意してください。通常、30 秒以内に応答があり、製品が配送されます。また、Restore Transactions はこれらすべてのケースで期待どおりに機能することにも注意してください (1、2、3 はすべて成功応答を返し、4 は何も返しません)。問題 2 と 3 のため、購入プロンプトが起動された後にアプリが次に起動されたときにトランザクションの復元呼び出しを実行するようにアプリにフラグを付けるようになりました。 .

簡単な技術仕様については、Unity3D と最新バージョンの Prime31 プラグインを使用しています。私が提供したログ情報 (通常は問題 2 の場合) と、私が収集したログには購入状態の変更イベントに関する情報が表示されないため、これらは問題ではないと考えています。最初のものは、アプリに渡される前にデバイス自体によってログに記録されます。

明日クライアントのオフィスに行くと、影響を受けるデバイスのリストといくつかのログを取得できるはずです。ただし、テストするASUS Nexus 7が2つあり、そのうちの1つは常に機能し、2つ目はまだ時々エラーを表示するため、デバイスに関連しているとは思いません.

誰でもこれらの問題に光を当てることができますか? これは、Google Play でのアプリ内課金への私の最初の進出であり、最初に思ったほど単純ではありませんでした。

ありがとう

4

0 に答える 0