应用内购买概述
使用应用内购买(IAP) API,您的应用可以在应用内呈现、处理和履行数字内容和订阅的购买。亚马逊支持适用于Android应用和网页应用的IAP API。本页概括介绍IAP API。
什么是应用内购买(IAP)?
通过应用内购买(IAP),应用的用户可以在应用中购买各类数字商品,如游戏中的额外生命或优质内容的订阅。
下面是一些可能会用到IAP的案例说明:
- 为您的应用创建“免费增值”模式,其中,应用本身是免费的,但对高级服务或功能收费。
- 允许您的客户购买商品来增强他们的游戏体验,例如货币、额外的移动次数或生命。
- 允许用户购买此内容的访问权,从而解锁奖励关卡或迷你游戏。
- 使客户能够订阅应用中提供的内容。
IAP API处理有关购买流程、付款、向应用提供收据以及管理可购买内容的权限的详细信息,这样您就不必自己对以上功能进行编程。
亚马逊在IAP中的角色
亚马逊应用商店是IAP API工作流程中不可或缺的组成部分。亚马逊运行购买工作流程,从客户决定购买商品时开始,到亚马逊为应用提供购买收据或状态代码(如果购买失败)时结束。您不需要提供购买对话、交易超时逻辑或“感谢”对话。亚马逊应用商店负责交易的全过程。
用户发起购买后,亚马逊应用商店客户端应用会显示包含亚马逊品牌的用户界面来完成交易。此应用提供了购买工作流程各个方面的用户界面:
- 可购买商品的显示逻辑。
- 执行购买。
- 处理任何先决条件或错误情况。
如果购买未成功,亚马逊应用商店会向客户显示相关消息;而您的应用则不应向客户显示消息。例如,如果客户的档案中没有有效的信用卡,则亚马逊应用商店会将客户重定向到某个页面,他们可以在其中更新其付款信息。不要向客户提供有关购买流程的确认或其他插屏对话框。
下表总结了在实现IAP时您的应用和亚马逊应用商店之间的责任划分:
责任 | 您的应用 |
亚马逊 |
---|---|---|
向客户提供应用内可购买商品的目录。 | ||
解锁可购买功能。 | ||
管理购买流程。 | ||
执行付款处理。 | ||
处理与亚马逊平台的安全通信,包括付款安全性。 | ||
核实权利并验证购买收据。 | ||
管理自动续订订阅的计费。 | ||
管理撤销权利的计费。 | ||
先验证订阅和权利的收据,然后再向用户提供内容。 | ||
下载远程交付的内容。 | ||
显示并使用已下载的数字商品。 | ||
跟踪客户购买和消费品清单。 | ||
注意: 亚马逊不提供对应用内购买商品的退款。 |
IAP组件
如果您不熟悉IAP的使用,请先熟悉以下组件,在实现IAP的功能时会涉及它们全部:
名称 | 描述 | 文档 |
---|---|---|
IAP API | 您的应用将使用IAP API来实现和履行应用内购买。 | Android应用: IAP入门 网页应用: 适用于网页应用的IAP API 有关网页应用的更多信息,请参阅网页应用程序开发概述。 |
IAP API参考 | IAP API列表和描述。 | Android应用: Appstore SDK API参考 网页应用: 网页应用IAP API参考 有关网页应用的更多信息,请参阅网页应用程序开发概述。 |
亚马逊应用商店 | 处理付款处理、警报、履行和其他后端功能。 | 不适用 |
App Tester | 先在本地测试您的应用,再发布到亚马逊应用商店。 | IAP测试概述 |
Receipt Verification Service (RVS) | 验证交易收据的有效性。RVS支持沙盒环境和生产环境。 | IAP应用的收据验证 |
动态应用测试服务 | 在生产环境中选定一组用户并对应用进行Beta测试。 | 了解动态应用测试 |
购买类型
规划IAP实现时,需要定义应用将向用户提供商品的类型。还要确定您想要如何交付用户购买的商品。本部分简要介绍IAP支持的购买类型。
有关哪些商品可购买,哪些不可购买的信息,请参阅分销协议。
可购买商品的类型
IAP包括三种不同类别的可购买商品:
- 消费品: 先进行购买,然后在应用中使用,如额外生命、额外移动次数或游戏内货币。可多次购买。
- 权利: 一次性购买,用于访问应用或游戏中的功能或内容。
- 订阅: 允许在一段有限的时间内访问一组优质内容或功能。
内容类型和交付流程
IAP支持三种基本交付流程:
- 立即可用的内容
- 可交付内容
- 待定购买
立即可用的内容
在购买后,会解锁立即可用的内容或以其他方式将其提供给客户。在此模式下,应用已具备所有需要的条件,以使客户在购买后可以立即使用可购买商品。使用此模式,您可以使用所有三种类型的可购买商品。
应用应包含每个可购买商品的唯一标识符(SKU),能够向客户提供目录,并在应用中提供交易成功后解锁可购买商品的逻辑。
步骤 | 组件 | 任务 |
---|---|---|
步骤1 | 应用 | 应用启动应用内购买流程。应用调用IAP API来管理购买。 |
步骤2 | IAP API | IAP API与用户交互以完成购买。IAP API向应用返回购买收据。 |
步骤3 | 应用 | 应用使用收据来解锁购买的本地内容。 |
可交付内容
可交付内容允许您向客户提供新内容。在此模式下,您的应用将从服务器下载新内容并将其提供给客户。可交付商品通常是订阅商品。
您的应用应包含每个可购买商品的唯一标识符(SKU),能够向客户提供目录,并在应用中提供交易成功后下载、保存并提供已下载内容的逻辑。
步骤 | 组件 | 任务 |
---|---|---|
步骤1 | 应用 | 应用启动应用内购买流程。应用调用IAP API来管理购买。 |
步骤2 | IAP API | IAP API与用户交互以完成购买。IAP API向应用返回购买收据。 |
步骤3 | 应用 | 应用向应用服务器发送收据,以启动内容交付。 |
步骤4 | 应用服务器 | 应用服务器向用户提供内容。 |
待定购买
待定购买不会立即提供给客户。在这种模式下,在客户发起购买后,还需要完成额外的步骤,您的应用才可以批准购买。当您的应用仍处于待定状态时,不应将购买授予客户。您可以通过此模式来使用消费品和权利。
待定购买流程和可交付内容流程之间的区别在于,您的应用在创建应用时调用enablePendingPurchases()
,并且在应用收到onPurchaseResponse()
中的PurchaseResponse.RequestStatus.PENDING
时,不会向客户授予权利。
步骤 | 组件 | 任务 |
---|---|---|
步骤1 | 应用 | 应用启动应用内购买流程。应用调用enablePendingPurchases() 和purchase() API以发起交易。 |
步骤2 | IAP API | IAP API与用户交互以请求购买。IAP API向应用返回PENDING 状态。 |
步骤3 | IAP API | 如果客户批准交易,IAP API将通过实时通知(RTN)或getPurchaseUpdates() 向应用返回购买收据。 |
步骤4 | 应用或应用服务器 | 应用或应用服务器向用户提供内容。 |
有关如何实现待定购买的详细信息,请参阅实现待定购买。
SKU
SKU(技术上表示库存单位)是每个不同可购买商品的唯一标识符。它对您(具体来说是您在开发者门户上注册的开发者账户)来说是唯一的并且是一个(最多)150个字符长度的任意结构字符串,可包含字符a-z、A-Z、0-9、下划线、句点和破折号,并且区分大小写。可购买商品与SKU一一对应。您的应用将通过PurchasingManager帮助程序类将SKU值传递给客户端。通过SKU,客户端知道客户试图购买什么,并相应地管理购买流程。
确保您定义的每个可购买商品都具有唯一的SKU。SKU在您的开发者账户中是唯一的。为多个应用提交SKU时,要确保其中没有重叠。
必须先通过开发者门户对SKU进行配置,然后才能使用它。有关如何配置SKU的信息,请参阅常见问题解答的开发者门户部分。
应用提交过程
在将集成了IAP的应用提交到应用商店之前,需要先创建并提交该应用的应用程序内商品。直到应用和应用程序内商品都已提交后,亚马逊应用商店才会测试您的应用。
使用开发者控制台来创建和管理应用的可购买商品目录。请参阅提交单个应用程序内商品。
您还可以同时创建或修改多个应用程序内商品。请参阅用于IAP批量提交的CSV文件。
提交应用后,如果您决定添加或编辑可购买商品,则需要将新的/更改的商品和应用本身重新提交到亚马逊应用商店。
Last updated: 2023年7月14日