【问题标题】:Amazon InApp Purchase亚马逊应用内购买
【发布时间】:2014-06-12 07:16:34
【问题描述】:

当我们通过 Amazon inApp API 实现 InApp 时,我们由采购管理器调用一个函数,它是initialPurchaseUpdatesRequests(Offset offset),作为响应,我们得到 onPurchaseUpdatesResponse(PurchaseUpdatesResponse obj)。我对抵消感到困惑。如果我们是第一次调用,那么我们可以使用 Ofset.BEGINNING 并且作为响应方法,这里有一个方法 obj.getOffset() 并且文档说这将返回您发送的偏移量。现在,如果它会返回旧的偏移量,那么这意味着所有时间都将发送相同的 Offset.BEGINNING,而且我对这个偏移量是什么感到困惑?有人解释一下吗?

【问题讨论】:

    标签: java android amazon


    【解决方案1】:

    根据IAP Reference

    public Offset getOffset()

    返回一个您可以传递Offset PurchasingManager.initiatePurchaseUpdatesRequest(Offset) 如果isMore() 表示有更多结果可用。

    IAP Quick Start Guide,它说:

    如果PurchaseUpdatesResponse.isMore() 返回true,则进行递归 拨打PurchasingManager.initiatePurchaseUpdatesRequest() PurchaseUpdatesResponse.getOffset() 中返回的值。

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

    【讨论】:

    • developer.amazon.com/public/apis/earn/in-app-purchasing/… 上面是亚马逊开发者网站的文档,在 PurchaseUpdateResponse 中,他们是函数 getOffset,其描述为 Returns an Offset ,如果 isMore() 表示更多结果,您可以将其传递给 PurchasingManager.initiatePurchaseUpdatesRequest(Offset)可用。现在这个节目我们得到了我们发送的相同偏移量以及这个 isMore() 方法的用途,我在这里很困惑
    • @yasiriqbal776,文档没有说 getOffset() 会返回与您发送的相同的偏移值。
    • @yasiriqbal776,如果您还没有尝试过 Amazon Mobile App SDK 中的 SampleIAPEntitlementsApp,我也鼓励您尝试一下。只需构建并运行示例,然后在 logcat 中过滤“偏移量”。它会显示来自 PurchaseUpdatesResponse 对象的偏移值与传入的值不同。
    【解决方案2】:

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

    如果您只想检索“新”购买更新,您还可以保存最后一个偏移量并从该保存的偏移量开始进行后续的initialPurchaseUpdatesRequests(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 Mobile SDK 中的权利示例应用程序还包括说明如何使用 Offset 的示例代码。

    【讨论】:

    • here response.getOffset() 方法我在上面的解释中告诉过文档说它返回您在initiatePurchaseUpdateRequest(Ofset)中发送的偏移量;如果它返回我们发送的内容,那么它是否不使用 OFset.BEGNING ofsets。
    • onPurchaseUpdatesResponse 的 PurchaseUpdatesResponse 实例中返回的偏移量与 Offset.BEGINNING 不同。因此,当 response.isMore() 返回 true 时,您将使用与 Offset.BEGINNING 不同的偏移量调用initialPurchaseUpdatesRequest,以便获得下一组购买更新。只需将 Offset 视为分页响应中的页码。
    猜你喜欢
    • 2013-03-26
    • 2012-05-31
    • 2012-09-10
    • 2013-07-20
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多