Android InApp Purchase:getPurchases 返回空响应

Posted

技术标签:

【中文标题】Android InApp Purchase:getPurchases 返回空响应【英文标题】:Android InApp Purchase: getPurchases returns empty response 【发布时间】:2013-09-26 13:29:51 【问题描述】:

我有一个应用程序,其中包含 4 个 Managed In App Purchases 并使用 In App Billing API v3。购买工作正常。为了恢复购买,当我拨打getPurchases(...) 时,它不会显示任何拥有的 SKU。

下面是sn-p的代码:

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
 

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

感谢任何帮助!

【问题讨论】:

我也有同样的问题。服务响应 OK,INAPP_PURCHASE_ITEM_LIST 和 INAPP_PURCHASE_DATA_LIST 都是空的。但是,如果我尝试购买一种产品,它会给我一个错误“您已经拥有此商品”。 我发布了我的答案,请看一下。 在我的情况下,我正在使用消耗品并且得到了空的购买和“已经拥有”的消息......无论如何,谢谢你的回复,至少,你填写一个答案:P @Sisso - 我面临着完全相同的问题:消耗品,列表是空的,但它给了我错误“你已经拥有这个项目” - 你解决了吗? @Sisso 和@swalkner - 你们看过我的回答了吗?我发布了解决方案。你是在调用consume 方法吗? 【参考方案1】:

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

文档说:

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

之前的开发者实际上是 consuming 购买,这使得它再次可供购买。由于我的 InApp Purchase 是 Managed,因此无需致电 consume

在我删除对consume the product 的调用后,一切正常。

这是来自文档的link。

【讨论】:

谢谢!!你拯救了我的一天

以上是关于Android InApp Purchase:getPurchases 返回空响应的主要内容,如果未能解决你的问题,请参考以下文章

InApp Purchase 内容在多个移动平台(iOS 和 Android)上的兼容性。

iOS首次inapp-purchase必须提交二进制文件进行沙盒测试

应用程序中的颤动-flutter_inapp_purchase-IOS App Store 拒绝-性能:应用程序完整性

Inapp Purchase:我们可以在itunes connect中动态添加一堆产品吗?

使用新的 InApp Purchase 更新 App Store 中的现有应用程序

无法以美元为InApp Purchase添加价格,在瑞士获得开发者帐户的选项是德国