您可能需要对订阅或一次性购买交易执行管理操作 并将其融入到了日常业务中。例如,您的客户服务人员可能需要 为用户办理全额退款或部分退款,或者您可能需要撤消 使用权。您可以通过 Play 管理中心管理订单,也可以 如果您想通过自己的系统管理它们,您可以使用 Google Play Developer API。
取消订阅
用户可以随时通过 Play 商店取消 Google Play 订阅; 但您还必须为用户提供取消订阅的选项 在应用中和网站上(如适用)展示
要允许用户自愿取消,最简单的方法是深层链接 Play 商店上架 以及管理订阅
您可能还需要从后端触发取消操作。
purchases.subscriptions.cancel
方法,您可以取消订阅购买。
例如,您可以使用此方法关停旧服务。
取消订阅不会发放退款,用户将继续
在当前结算周期结束前继续拥有使用权限。取消
订阅与此方法会阻止用户恢复订阅
但在 Play 商店中,但是如果用户已经通过您的应用重新注册,
不需要。
执行此操作会触发SUBSCRIPTION_CANCELED
实时开发者
通知。按照说明处理这些取消操作,
取消。
延迟结算
使用subscriptions.defer
来延长订阅的许可期。在推迟期内
该用户仍然会订阅您的内容,但我们不会向您收取额外的费用
。推迟订阅的结算时,状态信息将
会进行相应更新,您会发现该值也反映在了expiryTime
购买状态信息:
- 对于有效的周期性订阅,推迟结算可延期下个订阅期 续订日期。
- 对于预付费方案,推迟结算会延长到期时间。
以下示例说明了如何使用延迟结算:
- 将免费访问权限作为特别优惠提供给用户,例如免费一周 邀请现有订阅者填写反馈调查问卷。
- 为客户提供免费访问权限作为客户服务,例如在 并可能导致他们无法使用您的服务。
每次 API 调用的结算最短可延迟一天,最长可推迟一年。 如需进一步推迟使用权的结束时间,请再次调用 API 。
执行此操作会触发SUBSCRIPTION_DEFERRED
实时开发者
通知。请参阅订阅简介中的延迟结算订阅者的结算部分,了解如何处理这些事件。
示例:
FitnessGoals 在线媒体服务想要进行宣传, 并鼓励您在二月份定期锻炼。
他们决定为任意订阅者额外提供一个月的服务 该月至少进行了 10 次 FitnessGoal 运动 2 月。
他们跟踪挑战的结果,在 3 月 1 日,他们将
subscriptions.defer
API,针对属于的所有有效订阅购买交易 2 月份符合挑战的用户数量。这些用户可享受额外一整月的定期锻炼福利 而且用户可以告诉所有朋友 FitnessGoals 帮助他们保持健康!
办理退款和撤消订单
在很多情况下,您可能希望针对以下项目执行退款或撤消操作: 订阅内容或一次性购买交易的访问权限。
按订单 ID 全额退款
使用 orders.refund
API 提供的退款服务,您可以针对购买后三年内的任何订单办理全额退款。
orders.refund
方法会收到一个撤消参数,指示是否
并应撤消其访问权限。
如果您在发起针对订阅购买交易的退款调用发出撤消请求,
订阅会立即终止,并触发 SUBSCRIPTION_REVOKED
实时开发者通知。读取订阅生命周期管理
指南“撤消”部分
了解如何处理这些事件。
示例:
为庆祝全新世界杯开幕,电竞应用闪亮登场 “足球之非足球”决定为所有用户提供免费的虚拟球衣抽奖机会 。
“Football-Not-Soccer”使用
orders.refund
API 而不传递用于向 。
通过购买令牌撤消订阅及办理退款
在某些用例中,您可能需要撤消对用户订阅的访问权限
并提供退款。Play 结算服务提供了撤消方法,包括
退款和按比例退款(通过 subscriptionsv2.revoke
)
API。借助此端点,您可以指定 revocationContext
以确定退款的计算方式。
执行此操作会触发 SUBSCRIPTION_REVOKED
实时开发者
通知。您的应用应按照相关说明处理这些取消操作,
撤消。
示例:
- 使用购买令牌
1a2b3c4d5e6f7g8h9i0j
购买 - 软件包名称为“
com.your.app
”的应用 - 发放按比例退款的意图
HTTP POST 请求:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke
请求正文:
{
"revocationContext": {
"proratedRefund": {}
}
}
全额退款
如果您需要终止订阅并全额退还
当前结算周期,请全额退款。使用
purchases.subscriptionsv2.revoke
函数,并将 "fullRefund": {}
设为退款类型。
示例:
Maria 拥有为期 30 天的超级电影在线播放订阅服务 包月方案。Maria 遇到了一些技术问题 访问内容的源头。她在结算第 3 天联系了客户服务人员 一个周期声明,她从来没有获得过订阅。
客户服务人员在以下位置找到玛丽亚的订阅购买详情: 其系统并触发对
purchases.subscriptionsv2.revoke
的调用 申请全额退款。客户服务人员告诉 Maria,她应该全力以赴 订阅价格已退还,且她不再订阅该方案。
按比例退款
如果您需要终止订阅并部分退款
使用权时间,请按比例退款。使用
purchases.subscriptionsv2.revoke
函数,并将 "proratedRefund": {}
设为退款类型。
示例:
Maria 拥有为期 30 天的超级电影在线播放订阅服务 包月方案。她很高兴使用了该服务一段时间。 Maria 在结算周期的第 15 天联系了客户服务人员,称她 即将搬到国外, 次日。
客户服务人员在以下位置找到玛丽亚的订阅购买详情: 其系统并触发对
purchases.subscriptionsv2.revoke
的调用 申请按比例退款。客户服务人员告诉 Maria,她应该得到大约 50% 的 订阅价格已退还,用户对服务的使用权限已终止 。