如何在 Amazon API 中恢复购买?

Posted

技术标签:

【中文标题】如何在 Amazon API 中恢复购买?【英文标题】:How to restore purchases in Amazon API? 【发布时间】:2014-01-17 13:18:07 【问题描述】:

过去几天我一直在尝试恢复在亚马逊应用内购买中购买的商品。购买物品成功,现在需要在卸载应用后恢复购买的物品。我阅读了几个链接,还包括以下链接:

Tracking In-App Purchases Using PurchaseUpdates

这个链接有一些很好的信息,在阅读了以下链接后:

How do I easily restore purchases using the Amazon API?

我知道我需要使用 onPurchaseUpdatesResponse() 来完成这里的事情,但问题是我得到了

    Set<Receipt> receipts = response.getReceipts();
    Set<String> revokedSkus = response.getRevokedSkus();

在 onPurchaseUpdatesResponse() 方法中都是空的。我可以在 AmazonSDKTester 应用中看到购买的商品,以及通过以下方式获取的 userId:

    response.getUserId();

与 AmazonSDKTester 应用程序中的相同。

我认为我在成功购买后存储偏移量可能做错了。但是,我无法理解如何在这里做事或我做错了什么,感谢您的收听,请帮助!

**编辑:**我将偏移设置为:

        Offset offset = purchaseDataStorage.getPurchaseUpdatesOffset();
        PurchasingManager.initiatePurchaseUpdatesRequest(offset);

当案例成功时,我在 onGetUserIdResponse() 方法中执行此操作。

当案例成功时,我将偏移值存储在 onPurchaseUpdatesResponse() 中:

Offset offset = response.getOffset();
purchaseDataStorage.savePurchaseUpdatesOffset(offset);

【问题讨论】:

您使用的是 PurchasingManager.initiatePurchaseUpdatesRequest(Offset.BEGINNING) 吗?注意参数值。 @DrC 请阅读我的问题的编辑版本,感谢您的快速回复,非常感谢。 【参考方案1】:

在第一次调用或执行用户启动的恢复时,您希望使用 Offset.BEGINNING 键值来启动PurchaseUpdatesRequest 以获取所有事务,而不仅仅是自上次查询以来发生的事务。

【讨论】:

感谢您的回复,现在我收到非空收据,并且已撤销的 skus 为空。这里还有两个问题 1) 何时调用撤销的 skus。 2) 调用 PurchasingManager.initiatePurchaseUpdatesRequest(Offset.BEGINNING); 的最佳位置是什么 当我没有为用户记录偏移量时(基本上,第一次运行),我在响应用户请求(按钮)和 onGetUSerIdResponse 时调用它。 感谢您的回答,确实帮助解决了我的问题。有一个伟大的新年。新年快乐!!!

以上是关于如何在 Amazon API 中恢复购买?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Amazon IAP API 验证购买

如何在应用内购买中恢复购买?

如何在应用内购买中恢复购买?

如何与亚马逊购买的商品互动?

如何恢复消耗品应用内购买?

如何使用 php 在 Amazon api 中访问 10 多个项目的详细信息?