Android InApp Purchase:getPurchases返回空响应

Mah*_*iya 6 android billing in-app-purchase in-app-billing android-billing

我有一个应用程序,其中包含4个ManagedIn App Purchase和使用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
} 
Run Code Online (Sandbox Code Playgroud)

有没有人经历过类似的事情?我错过了什么吗?

任何帮助表示赞赏!

Mah*_*iya 8

我的客户给我的代码是由前一位开发人员编写的.在参考文档并检查源代码后,我确定了原因.

文档说:

如果您使用的是版本3 API,则还可以在应用程序中使用托管项目.您通常会对可以多次购买的物品(例如游戏中的货币,燃料或魔法咒语)实施消费.购买后,在您使用该商品之前,通过向Google Play发送消费请求,无法再次购买被管理商品.

以前的开发商实际上consuming是购买,使其再次可用于购买.由于我的InApp购买是Managed没有必要打电话consume.

我删除了consume the product一切正常的电话后.

这是文档的链接.