6

4 つのアプリ内購入を含み、ManagedIn App Billing API v3 を使用するアプリがあります。購入は正常に機能します。購入を復元するために、電話をかけるとgetPurchases(...)、所有している SKU が表示されません。

以下はコード スニペットです。

Bundle ownedItems = mService.getPurchases(3, getPackageName(), "inapp", null);
int response = ownedItems.getInt("RESPONSE_CODE");
alert("response " + response);
ArrayList ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
ArrayList purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
ArrayList signatureList = ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE");
String continuationToken = ownedItems.getString("INAPP_CONTINUATION_TOKEN");

alert("ownedSkus " + ownedSkus);
for (int i = 0; i < purchaseDataList.size(); ++i) {
    String purchaseData = (String) purchaseDataList.get(i);
    String signature = (String) signatureList.get(i);
    String sku = (String) ownedSkus.get(i);

    alert("PURACHSED ITEM " + i + " === " + sku);

    // do something with this purchase information
    // e.g. display the updated list of products owned by user
} 

誰かが似たようなことを経験したことがありますか? 何か不足していますか?

どんな助けでも大歓迎です!

4

1 に答える 1

8

私のクライアントが私にくれたコードは、前の開発者によって書かれました。ドキュメントを参照してソースコードを確認した後、この原因を特定しました。

ドキュメントには次のように記載されています。

バージョン 3 API を使用している場合は、アプリケーション内で管理対象アイテムを使用することもできます。通常、複数回購入できるアイテム (ゲーム内通貨、燃料、魔法の呪文など) の消費を実装します。購入した管理対象アイテムは、Google Play に消費リクエストを送信してアイテムを消費するまで、再度購入することはできません。

以前の開発者は実際consumingに購入したため、再び購入できるようになりました。InApp Purchase だったので、Managed電話する必要はありませんでしたconsume

すべての呼び出しを削除した後、正常に機能しconsume the productました。

ここにドキュメントからのリンクがあります。

于 2013-10-08T08:09:19.007 に答える