android 亚马逊InApp购买

bd1hkmkf  于 2023-03-16  发布在  Android
关注(0)|答案(2)|浏览(151)

当我们通过Amazon inApp API实现InApp时,我们通过采购经理调用initiatePurchaseUpdatesRequests(Offset offset)函数,得到onPurchaseUpdatesResponse(PurchaseUpdatesResponse obj)作为响应。
我对偏移量感到困惑。如果我们是第一次调用,那么我们可以使用Ofset.BEGINNING,并在响应中使用方法obj.getOffset()。文档中说这将返回您应该发送的Offset
如果它将返回旧的偏移量,则意味着每次将发送相同的Offset.BEGINNING
还有,我一开始就对Offset是什么感到困惑。
有人能澄清这些问题吗?

ajsxfq5m

ajsxfq5m1#

根据IAP参考:
public Offset getOffset()
返回一个Offset,如果isMore()指示有更多结果可用,则您***可以将该Offset传递***给PurchasingManager.initiatePurchaseUpdatesRequest(Offset)
在IAP快速入门指南中,它说:
如果PurchaseUpdatesResponse.isMore()返回true,则使用PurchaseUpdatesResponse.getOffset()中返回的值递归调用PurchasingManager.initiatePurchaseUpdatesRequest()
@yasiriqbal776,我想您可能误读了文档。否则,您能否提供您所指文档的URL?

rseugnpd

rseugnpd2#

对于特定用户,第一次调用initiatePurchaseUpdatesRequests(Offset offset)时,应使用Offset.BEGINNING调用它。在onPurchaseUpdatesResponse回调中,应检查是否有更多购买更新,并使用最后一个Offset递归调用initiatePurchaseUpdatesRequest。(示例请参见下面的代码)
如果只想检索“新”采购更新,还可以保存最后一个偏移量,并从该保存的偏移量开始进行后续initiatePurchaseUpdatesRequests(Offset offset)调用。

public void onPurchaseUpdatesResponse(final PurchaseUpdatesResponse response) {

    //...
    Offset offset = response.getOffset();
    if (response.isMore()) {
        PurchasingManager.initiatePurchaseUpdatesRequest(offset);
    }

    // Save offset associated to this IAP UserId.
}

Amazon移动的SDK中的授权示例应用程序还包括演示如何使用Offset的示例代码。

相关问题