开发人员控制台

适用于网页应用的IAP API - API参考


适用于网页应用的IAP API - API参考

Amazon Services库

Amazon Services库包含以下方法:

  • AmazonIapV2.addListener(listener)
    • 在使用此类之前,必须注册观察器
    • 需要在onLoad()生命周期方法中调用此方法
  • AmazonIapV2.purchase(sku)
    • 此方法用于发起特定SKU的购买
    • 此方法适用于所有类型的可购买商品
    • 用户显示界面使用为SKU配置的信息来确定客户购买流程
    • 您可随时从应用中调用此方法
  • AmazonIapV2.getProductData(skus)
    • 此方法用于检索一整套SKU的商品数据
    • 此方法适用于所有类型的可购买商品
    • 您可随时从应用中调用此方法
    • 参数skus是SKU字符串数组
  • AmazonIapV2.getPurchaseUpdates(options)
    • 此方法用于跨设备同步以前购买和撤销的权利。
    • 请在活动的onStart()或onResume()方法中实现getPurchaseUpdates()。此外,为防止过度履行订单,请根据receiptId对收据删重。要了解对于消费品、权利和订阅,实现该方法有何具体差异,请参阅以下内容。
    • 消费品​: 对于消费品,getPurchaseUpdates()方法返回未履行和已取消的购买收据。在IAP 2.0中实现getPurchaseUpdatesResponse()时,请注意以下事项:
      • 请在应用中添加逻辑来处理从getPurchaseUpdates()返回的购买收据的履行问题。相应的PurchaseUpdatesResponse()回调随时可能会发生,包括在您的应用打开时,所以请谨慎引用可能不可用的用户界面(UI)元素或对象。
      • 使用boolean reset参数而非offset参数。将reset设置为true可返回所有购买收据,设置为false可返回自上次调用getPurchaseUpdates()之后新生成的购买收据。
    • 权利:对于权利和订阅,onPurchaseUpdatesResponse()返回已取消和仍有效的购买收据。可使用receipt.isCanceled()检查购买是否取消。在IAP 1.0中,对PurchaseUpdatesResponse对象调用getRevokedSkus(),可返回已取消权利和订阅的收据。
    • 订阅: 与权利相同。
  • AmazonIapV2.getUserData()
    • 此方法用于检索当前登录用户的应用特定ID
    • 需要在onLoad()方法中调用此方法
  • AmazonIapV2.notifyFulfillment(receiptId, fulfillmentResult)
    • IAP 2.0提供了新的API,可用于跟踪购买的履行状态。要跟踪购买的履行状态,请实现notifyFulfillment() API。在履行商品后,实现此调用,来将购买状态发送给亚马逊。
    • 在履行商品后,如果您没有使用FULFILLED状态调用notifyFulfillment(),交付将保持挂起状态。在这种情况下,您下次调用getPurchaseUpdates()时,将通过onPurchaseUpdatesResponse()回调继续进行交付尝试。​最终,如果亚马逊未收到使用此API对履行进行的明确确认,则可能会取消订单。
    • 如果您无法履行商品,请使用UNAVAILABLE状态。​随时可以从您的应用中使用UNAVAILABLE状态调用notifyFulfillment()。
    • 此调用是不可变的。如果通过notifyFulfillment()将订单标记为FULFILLED或UNAVAILABLE,则无法再次更改状态

响应对象

每次通过Amazon Services发出调用,适用于registerObserver()的相应响应处理程序会收到响应。每次响应都会使用响应对象。下面详细介绍这些响应:

  • GetUserIdResponse - 为当前登录到亚马逊客户端的用户提供应用特定的UserID
  • PurchaseUpdatesResponse - 将偏移传递到发起请求后,提供收据和已撤销SKU的分页列表。收据会以无序的形式成组返回。
  • ItemDataResponse - 提供以SKU为键的商品数据。
  • PurchaseResponse - 提供应用内发起的购买状态。对开发者而言,任何与购买有关的错误都是不可见的,您无需在应用中对错误进行任何处理;这归应用内购买API管理。

购买处理程序

您必须实现以下响应处理程序并在registerObserver方法中向Amazon Services库注册它们:

  • onSdkAvailable(onAvailableResponse) - 调用于在您可用代码调用应用内购买服务时。
  • onGetUserIdResponse(userIdResponse) - 为响应GetUserId而调用。
  • onItemDataResponse(itemDataResponse) - 为响应GetItemData而调用。data.itemData以SKU为键,是itemData对象的散列表。
  • onPurchaseResponse(purchaseResponse) - 为报告购买操作的状态而调用。purchaseResponse.purchaseRequestStatus包含响应的状态。如果还未传递购买响应,应用会话就关闭了,将调用此函数,以使应用产生新的会话,来注册购买处理程序。
  • onPurchaseUpdateResponse(data) - 使用已授予用户权利的列表,可调用此程序。data.receipts包含以SKU为键的散列表,其中包括已授予用户的IAP的收据。data.revokedSkus具有用户无法再使用的SKU的列表。

API参考: AmazonInAppPurchasing

成员

ItemDataStatus

getItemData()的响应代码

  • INVALID_INPUT
  • SUCCESSFUL
  • FAILED
  • SUCCESSFUL_WITH_UNAVAILABLE_SKU

ItemType

可通过亚马逊应用内购买API进行的购买类型。

此枚举包含以下值:

  • CONSUMABLE
  • ENTITLEMENT
  • SUBSCRIPTIONS

Offset

用于从头开始查找购买更新的帮助程序值。

属性:

  • BEGINNING - 默认值为NULL

PurchaseStatus

收据的状态

  • INVALID_INPUT
  • SUCCESSFUL
  • FAILED
  • INVALID_SKU
  • ALREADY_ENTITLED

PurchaseUpdatesStatus

getPurchaseData()的响应代码

  • INVALID_INPUT
  • SUCCESSFUL
  • FAILED

UserIdStatus

getUserId()的响应代码

  • SUCCESSFUL
  • FAILED

方法

getItemData(skus)

获取SKU列表的商品数据。

参数:

名称 类型 描述
skus ​数组 检索其商品信息的SKU列表

getPurchaseUpdates(reset)

获取用户的收据。对于options,将reset设置为false可仅返回自上次调用此方法以来的新收据。将reset设置为true可返回此用户的所有收据。

参数:

名称 类型 描述
reset 布尔值。传入键/值对,例如{reset: true} 设置为false可仅返回自上次调用此方法以来的新收据。设置为true可返回此用户的所有收据。

getUserId()

请求用户ID。当结果可用时,这将触发对onGetUserIdResponse的调用。

purchaseItem(sku)

发起对给定SKU的购买

参数:

名称 类型 描述
sku 请求的SKU

registerObserver()

注册回调处理程序来处理来自亚马逊应用内购买API的异步响应。

需要一份将调用函数的散列表。

  • onSdkAvailable
  • onGetUserIdResponse
  • onItemDataResponse
  • onPurchaseResponse
  • onPurchaseUpdatesResponse

类型定义

onGetUserIdResponse(event)

为响应getUserId而调用

event对象的结构为:

  • requestId
  • getUserIdRequestStatus
  • userId

参数:

名称 类型 事件
event 请求的SKU

onItemDataResponse(event)

为响应getItemData而使用需要的商品数据进行调用。

event对象的结构为:

  • requestId
  • itemDataRequestStatus
  • itemData (数组)
    • sku
    • price
    • title
    • itemType
    • description
    • smallIconUrl

    onPurchaseResponse(event)

    为响应purchaseItem而使用收据进行调用。

    event对象的结构为:

    • requestId
    • userId
    • purchaseRequestStatus
    • receipt
      • sku
      • itemType
      • purchaseToken
      • subscriptionPeriod(对于非订阅收据为null)
        • startDate
        • endDate

onPurchaseUpdatesResponse(event)

为响应getPurchaseUpdates而使用收据进行调用。

event对象的结构为:

  • requestId
  • purchaseUpdatesRequestStatus
  • receipts (数组)
    • sku
    • itemType
    • purchaseToken
    • subscriptionPeriod(对于非订阅收据为null)
      • startDate
      • endDate
  • revokedSkus (字符串数组)
  • offset
  • isMore

onSdkAvailable()

在可进一步调用API时调用。这是registerObserver方法的回调。registerObserver。