lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

应用内购买结算概览

本文介绍了您需要了解的应用内购买结算基本组件和功能,以便将应用内购买结算功能添加到您的应用中。

:请务必遵守目标国家/地区(您要在这些国家/地区分发应用)的适用法律。 例如,在欧盟国家,不公平商业行为指令的相关法律禁止直接规劝儿童购买广告产品或者劝说其父母或其他成年人为儿童购买广告产品。 请参阅欧盟消费者保护机构的立场,详细了解此主题及其他主题。

In-app Billing API

您的应用会通过相应 API (由设备上安装的 Google Play 应用提供)来访问应用内购买结算服务。 然后,Google Play 应用会在您的应用和 Google Play 服务器之间传送购买结算请求和响应。 实际上,您的应用从不直接与 Google Play 服务器通信。 而是通过进程间通信 (IPC) 向 Google Play 应用发送购买结算请求并接收 Google Play 应用发来的响应。此外,您的应用也不管理其与 Google Play 服务器之间的任何网络连接。

应用内购买结算只能在您通过 Google Play 发布的应用中实现。 要完成应用内购买请求,Google Play 应用必须能够通过网络访问 Google Play 服务器。

应用内购买结算版本 3 是最新版本,依然具有非常广泛的兼容性,可用于各种 Android 设备。 运行 Android 2.2(API 级别 8)或更高版本且安装了最新版本的 Google Play 应用的设备(绝大多数有效设备)都支持使用应用内购买结算版本 3。

版本 3 的功能

应用内购买结算版本 3 提供以下功能:

  • 您的应用通过简化的 API 发送请求,让用户可以轻松地向 Google Play 请求商品详情并订购应用内商品。 API 可以根据用户对商品的所有权快速恢复商品。
  • API 会在购买完成时将订单信息同步传送至设备。
  • 所有购买都是托管的(也就是说,Google Play 负责跟踪用户对应用内商品的所有权)。 用户无论何时都只能拥有同一应用内商品的一个副本而不能拥有多个副本。
  • 您可以消耗所购商品。消耗后,此商品将切换回未被拥有状态,且可被用户从 Google Play 中再次购买。
  • API 支持订阅

如需了解有关其他版本的应用内购买结算的详情,请参阅版本说明

应用内商品

应用内商品是您在应用内向用户出售的数字商品。 包括游戏内货币、旨在改善用户体验的应用功能升级以及应用中的新增内容。

应用内购买结算只能用于销售数字内容,而不能用于销售实体商品、个人服务或任何需要进行实物交付的商品/服务。 与明码标价的应用不同,在用户购买应用内商品后,系统不会提供退款窗口。

Google Play 不提供任何形式的内容交付。您需要自行负责在应用中出售的数字内容的交付。 应用内商品始终仅与一个应用明确关联。 也就是说,在一个应用中不能购买为另一个应用发布的应用内商品,即使这两个应用来自相同的开发者也是如此。

商品类型

应用内购买结算支持多种商品类型,因此您可灵活选择如何通过您的应用获利。 无论是哪种商品,您均能通过 Google Play Developer Console 进行定义。

您可以为应用内购买结算应用指定以下两类商品:托管的应用内商品订阅。 Google Play 会针对每位用户处理和跟踪您应用中的应用内商品和订阅的所有权。详细了解应用内购买结算版本 3 支持的商品类型。

Google Play Developer Console

在 Developer Console 上,您不仅能发布应用内购买结算应用,还能管理在您应用中可以购买的各种应用内商品。

对于与您的应用相关联的数字商品(包括一次性商品和定期订阅),您可以为其创建商品列表。 对于每件商品,您都可以定义下列信息:

  • 唯一商品 ID(也称为 SKU)。
  • 商品类型。
  • 定价。
  • 说明。
  • Google Play 应如何处理和跟踪用户对该商品的购买。

如果您以相同价格出售多个应用或应用内商品,可以添加定价模板,从集中的位置来管理这些价格。 使用定价模板时,您可以在提供的价格中包含地方税,或者您也可以提供价格并让系统为这些价格添加地方税。 您可以对定价模板中的价格进行更改(例如更新一些国家/地区的汇率),您的更改会应用到与此模板关联的应用和应用内商品。

您还可以创建测试帐户,授权这些帐户测试尚未发布的应用。

要了解如何使用 Developer Console 配置您的应用内商品和商品列表,请参阅管理应用内购买结算

Google Play 购买流程

Google Play 使用的结账后端服务与用于应用购买的服务相同,因此您的用户将获得一致且熟悉的购买流程体验。

重要说明:您必须有 Google Payments 商家帐号才能在 Google Play 上使用应用内购买结算服务。

购买开始时,您的应用需要针对相应的应用内商品发送购买结算请求。 然后,Google Play 会处理此次交易的所有结账详情,包括请求和验证付款方式以及处理财务交易。

结账流程完成后,Google Play 会向您的应用发送购买详情,例如订单号、订单日期和时间以及所付价格。 您的应用从不需要处理任何财务交易,这些事宜完全由 Google Play 负责。

示例应用

为了帮助您将应用内购买结算集成到应用中,Android SDK 提供了一个示例应用,向您演示如何在应用内销售应用内商品和订阅。

适用于 Version 3 API 的 TrivialDrive 示例演示了如何使用 In-app Billing Version 3 API 在赛车游戏中实现应用内商品和订阅购买。 该应用不仅演示了如何发送应用内购买结算请求以及处理来自 Google Play 的同步响应, 还演示了如何通过此 API 记录商品的消耗情况。 版本 3 示例包括多种工具类,非常便于处理应用内购买结算操作和执行自动签名验证。

建议:请务必在发布应用前混淆其中的代码。 如需了解详细信息,请参阅安全性和设计

迁移注意事项

In-app Billing Version 2 API 已于 2015 年 1 月关闭。如果您现有的应用内购买结算实现使用的是 API 版本 2 或更低版本,则必须迁移到应用内购买结算版本 3

迁移后,托管和未托管的商品处理方式如下:

  • 您之前在 Developer Console 中定义的托管商品和订阅仍能使用版本 3。
  • 对于您已经为现有应用定义的非托管商品,如果您使用 Version 3 API 针对这些商品发起购买请求,这些商品将被视为托管商品。 您无需在 Developer Console 中为这些商品创建新的商品条目,且能使用相同的商品 ID 来管理这些商品。