我过去几天一直在尝试在亚马逊的应用内购买中恢复购买的商品。我成功购买了物品,现在我需要恢复卸载应用程序后购买的物品。我阅读了几个链接,包括以下链接:
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 app相同。
我认为在成功完成购买后,我可能在存储偏移方面做错了。但是,我无法理解如何在这里做事或我做错了什么,感谢您的倾听并请求帮助!
**编辑:**我将偏移设置为:
Offset offset = purchaseDataStorage.getPurchaseUpdatesOffset();
PurchasingManager.initiatePurchaseUpdatesRequest(offset);
当案例成功时,我在onGetUserIdResponse()方法中执行此操作。
当案例成功时,我将偏移值存储在onPurchaseUpdatesResponse()中:
Offset offset = response.getOffset();
purchaseDataStorage.savePurchaseUpdatesOffset(offset);
答案 0 :(得分:2)
在第一次调用或执行用户启动的还原时,您希望使用Offset.BEGINNING键值来启动PopchaseUpdatesRequest,以获取所有事务,而不仅仅是自上次查询以来发生的事务。