6

我有一个包含 4 个ManagedIn App Purchases 并使用 In 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 回答