2

アプリでは、Billing v3は複数のシナリオで応答コード(BILLING_RESPONSE_RESULT_USER_CANCELED:1)-1005を返します。

購入フローを起動すると、GooglePlayのようなUIが開きます。このUIでエラーが発生するたびに、たとえば、ネットワークの切断/タイムアウト/アイテムが利用できない/アイテムがすでに購入されているなど、エラーを示すダイアログがポップアップ表示されます。[ OK]をクリックすると、応答コード:User Cancelled(1)が常にOnActivityResultIntentextrasに返されます。Android開発者のサイトのリファレンスによると、これはユーザーがアクティビティ/ダイアログをキャンセルした場合にのみ発生するはずですが、私は明らかにしていません。

さまざまなエラーを分離して、アプリで個別に処理したいと思います。単一のエラーコードが返されることは役に立ちません。誰かがまだそれに直面しましたか?解決策はありますか?

4

2 に答える 2

1

記録として、これはGooglePlayクライアントの問題のようです。Googleはバージョン4.0以降としてGPクライアントへのアップデートの展開を開始しており、バグは修正されているようです。

于 2013-05-03T20:59:52.660 に答える
0

TrivialDriveデモは、onActivityResult()コールバックの値Activity.RESULT_CANCELEDをテストし、それが返された値である場合、ユーザーがキャンセルしたと想定します。

そのアクティビティ結果のresponseCodeがBILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED(= 7)の場合、Activity.RESULT_CANCELEDは、アイテムがすでに所有されているため、アプリ内課金サービスが購入を許可しないことを意味するため、これは誤った仮定です。この応答コードは私のために働いています。

ただし、その可能性がなくなると、ユーザーがキャンセルしたと見なすのが安全であることがわかりました。ただし、最近、GoogleがBILLING_RESPONSE_RESULT_USER_CANCELED応答コードを直接テスト可能で信頼できるものにしたかどうかを確認していません。

于 2014-07-13T04:07:52.760 に答える