订阅生命周期
概述
订阅购买会经历由自动续订、付款拒绝以及用户和开发者操作所驱动的多个生命周期状态。以下各节将解释每种状态以及触发它们之间转换的事件。
要将订阅添加到您的应用程序,请按照此页面操作;要将其集成到您的应用程序中,请使用我们的 Android Billing SDK 解决方案。
订阅生命周期中的状态和事件
当订阅状态发生变化时,您将在您的实时通知 API 中收到一个 SubscriptionNotification 事件。
此系统中的订阅生命周期包括七种不同的状态,每种状态代表订阅历程中的一个阶段。这些状态之间的转换基于特定的用户或系统事件而发生。

图 1 - 订阅生命周期
ACTIVE
说明:
订阅已成功购买,用户可以访问所有相关权益。这是订阅的主要运行状态。
-
主要特征:
- 权利已授予用户。
- 订阅期开始并正在进行计费。
-
导致转换的事件:
- 付款失败: 如果定期付款失败,订阅可能会进入 GRACE 或 HOLD 状态。
- 取消: 如果用户或开发者取消订阅,它将转换到 CANCELED 状态。用户可以按照以下步骤在 Aptoide Wallet 应用中取消订阅:Aptoide Wallet > 设置 > 管理订阅,在那里他可以取消下次付款,这会使订阅转换到 CANCELED。
- 撤销: 如果开发者明确撤销订阅,它将转换到 EXPIRED 状态。
-
转换:
- 转换到 GRACE (SUBSCRIPTION_IN_GRACE_PERIOD): 如果用户的付款方式被拒绝且已定义宽限期,订阅将进入 GRACE。
- 转换到 HOLD (SUBSCRIPTION_ON_HOLD): 当活动期结束且未定义宽限期时,订阅将直接进入 HOLD。
- 转换到 CANCELED (SUBSCRIPTION_CANCELED): 如果由用户或开发者取消,订阅将转换到 CANCELED。
- 转换到 EXPIRED (SUBSCRIPTION_REVOKED): 开发者明确撤销订阅,从而终止所有权利。
GRACE
说明:
由于付款失败,订阅处于宽限期,为用户提供了解决问题的机会。在此期间,用户保留对订阅权益的访问权。
-
主要特征:
- 系统在定义的宽限期内重试付款。
- 权利不会立即被撤销,从而提供无缝的用户体验。
-
导致转换的事件:
- 付款方式已修复: 如果用户解决了付款问题,订阅将转换回 ACTIVE。
- 未解决: 如果在宽限期结束时付款问题仍未解决,订阅将转换到 HOLD;如果开发者有直接操作,则订阅将变为 EXPIRED。
-
转换:
- 转换到 ACTIVE (SUBSCRIPTION_RENEWED): 付款问题成功解决后,订阅将续订。
- 转换到 HOLD (SUBSCRIPTION_ON_HOLD): 如果宽限期结束时仍未解决,订阅将转换到 HOLD。
- 转换到 EXPIRED (SUBSCRIPTION_CANCELED): 开发者可以在宽限期内取消订阅。在这种情况下,状态将直接更改为 EXPIRED。
- 转换到 EXPIRED (SUBSCRIPTION_REVOKED): 开发者可以撤销订阅,使其立即终止。
HOLD
说明:
由于未解决的付款问题或在宽限期结束后,订阅被暂时挂起。在此状态下,用户失去对订阅权益的访问权,但订阅尚未完全终止。
-
主要特征:
- 不向用户授予任何权利。
- 系统等待付款解决。
-
导致转换的事件:
- 付款方式已修复: 如果用户解决了付款问题,订阅将转换回 ACTIVE。
- 取消或撤销: 如果未采取任何操作,订阅将根据开发者的行为转换到 EXPIRED 或 CANCELED。
-
转换:
- 转换到 ACTIVE (SUBSCRIPTION_RENEWED): 付款解决后,订阅将续订。
- 转换到 EXPIRED (SUBSCRIPTION_REVOKED): 如果由开发者明确撤销,订阅将转换到 EXPIRED。
- 转换到 CANCELED (SUBSCRIPTION_CANCELED): 如果由开发者取消,或当挂起期结束时仍未解决,订阅将转换到 CANCELED。
CANCELED
说明:
订阅已被用户或开发者取消。但是,用户在当前计费周期结束之前保留对订阅权益的访问权。
-
主要特征:
- 在权利期结束之前,权利保持有效。
- 订阅将转换到 EXPIRED 或 ACTIVE。
-
导致转换的事件:
- 重新激活: 用户可以在权利期结束之前重新激活订阅。
- 权利期结束: 订阅转换到 EXPIRED。
-
转换:
- 转换到 ACTIVE (SUBSCRIPTION_RESTARTED): 如果由用户重新激活,订阅将再次变为 ACTIVE。要重新激活订阅,用户可以按照以下步骤操作:Aptoide Wallet > 设置 > 管理订阅,在那里他可以重新激活订阅计费,这会使订阅转换到 ACTIVE。
- 转换到 EXPIRED (SUBSCRIPTION_EXPIRED): 当权利期结束时,订阅将过期。
- 转换到 EXPIRED (SUBSCRIPTION_REVOKED): 开发者可以立即撤销订阅。
EXPIRED
说明:
订阅期已结束,用户不再有权访问订阅权益;或者订阅已被开发者明确撤销。无论计费周期或权利期如何,此操作都会立即终止订阅和所有权利。
- 主要特征:
- 权利被完全撤销。
- 订阅无法重新激活。
这是订阅的终止状态,这意味着它们无法转换到任何其他状态。
开发者合规性
为确保用户获得无缝体验并防止不当行为,开发者必须遵守维护订阅生命周期完整性的准则。本节概述了开发者维护对权利的正确访问的最佳做法。
-
遵守订阅状态和转换
- 始终遵循已定义的订阅状态转换,以避免过早或错误地移除用户访问权。
- 例如,处于 GRACE 或 CANCELED 状态的用户必须在其正当的过期期结束之前保留对权利的访问权。
-
实施健全的宽限期和挂起期
- 配置足够的宽限期和挂起期,给用户公平的机会来解决付款问题。
- 避免随意缩短这些期限,因为这可能导致不必要的订阅中断。
-
与用户清晰沟通
- 当发生付款失败、取消或状态变更时,及时通知用户。
- 提供有关如何恢复其订阅或解决付款问题的清晰说明。
-
谨慎使用撤销
- 仅在滥用、欺诈或用户请求的情况下撤销订阅。
- 撤销会立即终止用户访问权,不得用作常规取消或过期的替代方式。
-
提供透明的取消政策
- 确保用户了解取消的影响以及在计费周期结束之前如何管理权利。
- 如适用,请清楚地说明重新激活的流程。
-
维护准确的记录
- 在您的系统中存储必要的订阅相关事件,包括状态变更、付款和用户操作,以便更好地掌握每个用户的订阅状态。
- 在出错时,使用这些记录来处理争议或验证系统行为。
避免常见问题
-
过早移除访问权
- 在权利期结束之前,请勿移除处于 CANCELED 状态的用户的权利。
- 确保到 EXPIRED 的转换是有意且合理的。
-
未能通知用户
- 避免无声的状态转换。始终通知用户其订阅状态的变更,包括付款失败和取消。
-
跨状态的不一致行为
- 确保权利和访问权限与每种订阅状态始终保持一致。例如:
- 处于 GRACE 状态的用户必须在付款重试进行期间保留访问权。
- 处于 HOLD 状态的用户在付款解决之前失去访问权,但不得过早转换到 CANCELED 或 EXPIRED。
- 确保权利和访问权限与每种订阅状态始终保持一致。例如:
常见问题
订阅的宽限期是什么?
宽限期是在 Aptoide Connect 平台中创建订阅商品时定义的。
订阅一旦进入 EXPIRED 状态后能否恢复?
不能。处于 EXPIRED 状态的订阅无法恢复。为此,请为该用户发起一个新的订阅。
我如何撤销或取消订阅?
要撤销或取消订阅,请写信给我们的技术团队,以手动执行此步骤。
我如何访问我的订阅的所有状态变更?
要访问状态变更并从我们的服务接收自动更新,您需要实现一个服务器,我们将向其传达不同的状态变更。请遵循我们的实时通知文档。