功能"/>
谷歌平台添加订阅专用功能
订阅需使用 Android Play 管理中心进行配置。配置订阅后,您可以将 Google Play 结算服务添加到您的应用,以启用订阅的购买流程。订阅具有 Google Play 结算服务概览中提到的许多特性(例如结算周期、宽限期、免费试订等)。在阅读本节之前,您应该熟悉这些概念。
如需了解详情,请观看最新的订阅视频。
此外,在阅读本页的其余部分之前,您还应该启用实时开发者通知。借助实时开发者通知,您可以主动响应状态更改,提高互动度并减少用户流失。要启用这些通知,请参阅实时开发者通知。
您应该尝试在总体 Google Play 结算服务解决方案中考虑多个订阅用例。
- 使用实时开发者通知处理与订阅相关的状态更改。
- 暂停订阅。
- 用户可以在订阅被取消时(但在订阅期结束之前)手动重新订阅。
- 提供试订促销代码。
- 用户可以升级或降级订阅(例如从个人方案升级为家庭方案)。
- 退还订阅费用。
- 撤消订阅。
- 取消订阅。
- 恢复订阅。
- 延迟结算,向用户提供一段时间的免费订阅服务。
- 赢回客户。
您可以结合使用 Google Play 结算库、Google Play Developer API 和实时开发者通知来处理这类用例。
使用实时开发者通知处理与订阅相关的状态
实时开发者通知是一种服务器推送通知,让您能够监控订阅的状态变化(如 SUBSCRIPTION_PURCHASED
或 SUBSCRIPTION_RECOVERED
)。借助实时开发者通知,您可以主动响应状态更改,提高互动度并减少用户流失。如需启用这些通知,请参阅实时开发者通知。
如果您启用了实时开发者通知,则安全后端服务器会收到专门提醒您订阅状态发生变化的通知。您在收到实时开发者通知后必须调用 Developer API 来获取完整状态信息并更新您自己的后端状态。此类通知仅会告知您订阅状态发生变化;而不会提供订阅状态的完整信息。
检查 Developer API 时,您应始终执行以下操作:
- 如果
expiryTimeMillis
是在将来,则始终授予权限。 - 如果
autoRenewing = false
,请尝试让用户重新注册,因为订阅将到期后结束。 - 如果
paymentState = 0
,请使用订阅中心深层链接将用户发送到订阅中心以解决其付款问题。
将来,我们可能会添加影响用户权限的其他状态变化(例如,在订阅过期后重新激活订阅)。为确保您的集成为这些功能做好准备,请务必通过调用 Developer API 并采取上述操作来处理任何未定义的通知。
用户处于宽限期 - SUBSCRIPTION_IN_GRACE_PERIOD
宽限期会持续一段时间,具体取决于您在 Google Play 管理中心内的应用内商品设置。Google Play 会在宽限期内尝试续订订阅。要提醒用户付款问题,请在应用中显示一条消息,告诉用户如何修正付款方式。否则,用户的订阅将会失效。例如,“为防止您的帐号发生中断,请转到 Google Play 订阅设置以修正您在 Google Play 上的付款方式。”此消息将链接到 Google Play 订阅设置,以便用户修正其付款方式。
如需确定用户处于宽限期的时长,请调用 Google Play Developer API。Google Play 会动态扩大 expiryTimeMillis
值,直到宽限期已过。在此时间段内,您应查看用户的订阅是否已取消、续订或暂停。您应该在 expiryTimeMillis
过后查看用户的当前订阅状态,以获取订阅的最新状态。
JSON 响应的内容取决于订阅的状态,如以下代码段所示。例如,如果您在宽限期内查询订阅(付款方式有误),则 expiryTimeMillis
会动态更新为未来时间戳,并且 paymentState
会设置为 0:
{ "kind": "androidpublisher#subscriptionPurchase", ... "expiryTimeMillis": timestamp_in_future, "autoRenewing": true, ... "paymentState": 0 # Payment pending }
如果您在成功续订后查询订阅(付款方式已更新),则 expiryTimeMillis
会设置为将来的时间戳,并且 paymentState
会设置为 1:
{ "kind": "androidpublisher#subscriptionPurchase", ... "expiryTimeMillis": timestamp_in_future, "autoRenewing": true, ... "paymentState": 1 # Payment received }
如果您在宽限期过后查询订阅,您将发现订阅处于暂停状态(如果您在 Google Play 管理中心启用了帐号保留功能)或被取消(如果您未在 Google Play 管理中心启用帐号保留功能)。有关 SUBSCRIPTION_ON_HOLD
和 SUBSCRIPTION_CANCELLED
的示例 JSON 响应,请参阅帐号保留 - SUBSCRIPTION_ON_HOLD
部分。</
更多推荐
谷歌平台添加订阅专用功能
发布评论