メインコンテンツまでスキップ

订阅生命周期

概述

订阅购买会经历由自动续订、付款拒绝以及用户和开发者操作所驱动的多个生命周期状态。以下各节将解释每种状态以及触发它们之间转换的事件。

要将订阅添加到您的应用程序,请按照此页面操作;要将其集成到您的应用程序中,请使用我们的 Android Billing SDK 解决方案

订阅生命周期中的状态和事件

当订阅状态发生变化时,您将在您的实时通知 API 中收到一个 SubscriptionNotification 事件。

此系统中的订阅生命周期包括七种不同的状态,每种状态代表订阅历程中的一个阶段。这些状态之间的转换基于特定的用户或系统事件而发生。

图 1 - 订阅生命周期

图 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

说明:
订阅期已结束,用户不再有权访问订阅权益;或者订阅已被开发者明确撤销。无论计费周期或权利期如何,此操作都会立即终止订阅和所有权利。

  • 主要特征:
    • 权利被完全撤销。
    • 订阅无法重新激活。

这是订阅的终止状态,这意味着它们无法转换到任何其他状态。


开发者合规性

为确保用户获得无缝体验并防止不当行为,开发者必须遵守维护订阅生命周期完整性的准则。本节概述了开发者维护对权利的正确访问的最佳做法。

  1. 遵守订阅状态和转换

    • 始终遵循已定义的订阅状态转换,以避免过早或错误地移除用户访问权。
    • 例如,处于 GRACE 或 CANCELED 状态的用户必须在其正当的过期期结束之前保留对权利的访问权。
  2. 实施健全的宽限期和挂起期

    • 配置足够的宽限期和挂起期,给用户公平的机会来解决付款问题。
    • 避免随意缩短这些期限,因为这可能导致不必要的订阅中断。
  3. 与用户清晰沟通

    • 当发生付款失败、取消或状态变更时,及时通知用户。
    • 提供有关如何恢复其订阅或解决付款问题的清晰说明。
  4. 谨慎使用撤销

    • 仅在滥用、欺诈或用户请求的情况下撤销订阅。
    • 撤销会立即终止用户访问权,不得用作常规取消或过期的替代方式。
  5. 提供透明的取消政策

    • 确保用户了解取消的影响以及在计费周期结束之前如何管理权利。
    • 如适用,请清楚地说明重新激活的流程。
  6. 维护准确的记录

    • 在您的系统中存储必要的订阅相关事件,包括状态变更、付款和用户操作,以便更好地掌握每个用户的订阅状态。
    • 在出错时,使用这些记录来处理争议或验证系统行为。

避免常见问题

  • 过早移除访问权

    • 在权利期结束之前,请勿移除处于 CANCELED 状态的用户的权利。
    • 确保到 EXPIRED 的转换是有意且合理的。
  • 未能通知用户

    • 避免无声的状态转换。始终通知用户其订阅状态的变更,包括付款失败和取消。
  • 跨状态的不一致行为

    • 确保权利和访问权限与每种订阅状态始终保持一致。例如:
      • 处于 GRACE 状态的用户必须在付款重试进行期间保留访问权。
      • 处于 HOLD 状态的用户在付款解决之前失去访问权,但不得过早转换到 CANCELED 或 EXPIRED。

常见问题

订阅的宽限期是什么?

宽限期是在 Aptoide Connect 平台中创建订阅商品时定义的。

订阅一旦进入 EXPIRED 状态后能否恢复?

不能。处于 EXPIRED 状态的订阅无法恢复。为此,请为该用户发起一个新的订阅。

我如何撤销或取消订阅?

要撤销或取消订阅,请写信给我们的技术团队,以手动执行此步骤。

我如何访问我的订阅的所有状态变更?

要访问状态变更并从我们的服务接收自动更新,您需要实现一个服务器,我们将向其传达不同的状态变更。请遵循我们的实时通知文档。