亚马逊InApp购买

时间:2014-06-12 07:16:34

标签: java android amazon

当我们通过Amazon inApp API实现InApp时,我们通过purchase Manager调用的一个函数是initiatePurchaseUpdatesRequests(Offset offset),作为响应,我们得到onPurchaseUpdatesResponse(PurchaseUpdatesResponse obj)。我对胶印很困惑。如果我们第一次调用那么我们可以使用Ofset.BEGINNING并且在响应方法中这里有一个方法obj.getOffset()和文档说这将返回你发送的Offset。现在,如果它将返回旧偏移,那么它意味着所有时间相同的Offset.BEGINNING将被发送,我也很困惑这个Offset是什么?有人解释一下吗?

2 个答案:

答案 0 :(得分:1)

对于特定用户,第一次调用initiatePurchaseUpdatesRequests(偏移量偏移量)时,应使用Offset.BEGINNING调用它。在onPurchaseUpdatesResponse回调中,您应检查是否有更多购买更新,并使用最后一个Offset递归调用initiatePurchaseUpdatesRequest。 (参见下面的代码示例)

如果您只想检索“新”购买更新,您还可以保存最后一个偏移量,并从该保存的偏移量开始进行后续的InitPurchaseUpdatesRequests(偏移量偏移)调用。

public void onPurchaseUpdatesResponse(final PurchaseUpdatesResponse response) {

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

    // Save offset associated to this IAP UserId.
}

Amazon Mobile SDK中的权利示例应用程序还包含说明如何使用Offset的示例代码。

答案 1 :(得分:1)

根据IAP Reference

  

public Offset getOffset()

     

返回 可以传递 Offset   如果PurchasingManager.initiatePurchaseUpdatesRequest(Offset) isMore()   表示可以获得更多结果。

IAP Quick Start Guide中,它说:

  

如果PurchaseUpdatesResponse.isMore()返回true,请进行递归   请致电PurchasingManager.initiatePurchaseUpdatesRequest()   PurchaseUpdatesResponse.getOffset()中返回的值。

@ yasiriqbal776,我想你可能误读了文档。否则,您能否提供您所指的文档的URL?