管理 SaaS 订阅生命周期

商业市场在最终用户购买 SaaS 订阅后管理整个生命周期。 它使用登陆页、履行 API、操作 API 和 Webhook 作为机制来驱动实际的 SaaS 订阅激活、使用情况、更新和取消。 最终用户的账单基于Microsoft维护的 SaaS 订阅的状态。

SaaS 订阅的状态

下图显示了 SaaS 订阅的状态和适用的操作。

关系图,显示市场中软件即服务订阅的生命周期。

已购买但尚未激活(PendingFulfillmentStart

最终用户或云解决方案提供商(CSP)在商业市场中购买 SaaS 产品/服务后,发布者会收到购买通知。 然后,发布者可以在发布者端为最终用户创建和配置新的 SaaS 帐户。

若要创建帐户,请执行以下操作:

  1. 客户 选择“配置帐户”“按钮,该按钮可在Microsoft AppSource 或 Azure 门户成功购买后,该帐户可供 SaaS 产品/服务使用。 或者,客户可以使用 配置现在 按钮,这些按钮会在购买后不久收到。
  2. 然后,Microsoft在新的浏览器选项卡中,使用令牌参数(来自商业市场的购买标识令牌)打开登录页 URL,通知合作伙伴购买。

此类调用的一个示例是 https://contoso.com/signup?token=<blob>,但合作伙伴中心内此 SaaS 产品/服务的登陆页面 URL 配置为 https://contoso.com/signup。 此令牌为发布者提供唯一标识 SaaS 购买和客户的 ID。

提示

不要在登陆页 URL 中包含井号字符(#)。 否则,客户无法访问登陆页面。 当状态 PendingFulfillmentStart时,发布者有 30 天的时间解析资产。 否则,资产将失效。 由于计费周期未启动且未计费相应的购买,因此状态将更改为 未订阅。 客户不会为购买付费。

重要

登陆页面 URL 必须全天启动并运行,并且随时可以接收来自Microsoft的新呼叫。 如果登陆页面不可用,客户无法注册 SaaS 服务并开始使用它。

接下来,发布者必须通过调用 SaaS 解析 API并将 令牌输入为 参数的值,将 令牌传递回Microsoft。 由于解析 API 调用,令牌会交换以获取 SaaS 购买的详细信息,例如购买的唯一 ID、购买的产品/服务 ID 和购买的计划 ID。

在登陆页上,客户应通过 Microsoft Entra 单一登录(SSO)登录到新的或现有的 SaaS 帐户。

注意

在客户从Microsoft端启动配置过程之前,发布者不会收到 SaaS 购买的通知。

发布者应实现 SSO,以提供此流Microsoft所需的用户体验。 请确保使用多租户Microsoft Entra 应用程序,并在配置 SSO 时允许工作和学校帐户或个人Microsoft帐户。 此要求仅适用于登录页面,对于使用 Microsoft 凭据登录时重定向到 SaaS 服务的用户。 所有登录到 SaaS 服务的登录都不需要 SSO。

注意

如果 SSO 要求管理员必须向应用授予权限,合作伙伴中心中产品/服务的说明必须披露需要管理员级访问权限。 此披露符合 商业市场认证政策

登录后,客户应在发布者端完成 SaaS 配置。 然后,发布者必须调用 激活订阅 API 向 Azure 市场发送一个信号,指示 SaaS 帐户的预配已完成。 此操作将启动客户的计费周期。 如果激活订阅 API 调用未成功,则客户不会为购买付费。

显示预配方案的 A P I 调用的 关系图。

购买者和计费帐户所有者都会收到一封电子邮件,请求他们配置帐户。

注意

当状态 PendingFulfillmentStart时,发布服务器有 30 天的时间解析资产。 否则,资产将失效,因为未启动计费周期,并且不会对相应的购买进行计费。 状态更改为 未订阅。 客户不会为购买付费。

活动(订阅

活动(已订阅) 是已预配 SaaS 订阅的稳定状态。 Microsoft端进程后,激活订阅 API 调用后,SaaS 订阅将标记为 订阅。 客户现在可以在发布者端使用 SaaS 服务,并计费。

SaaS 订阅已处于活动状态时,客户可以从 Azure 门户或 Microsoft 365 管理中心选择 管理 SaaS 体验。 此操作还会导致Microsoft使用 令牌 参数调用 登陆页面 URL,就像在“激活”流中一样。 发布者应区分新购买与现有 SaaS 帐户的管理,并相应地处理此登陆页面 URL 调用。

激活通知电子邮件同时发送给购买者和计费帐户所有者。

正在更新(订阅

此操作意味着对现有活动 SaaS 订阅的更新由Microsoft和发布服务器处理。 更新通过以下方式启动:

  • 来自商业市场的客户。
  • 来自商业市场的 CSP。
  • 来自发布者的 SaaS 站点(但不适用于 CSP 进行的购买)的客户。

SaaS 订阅提供两种类型的更新:

  • 客户选择订阅的另一个计划时更新计划。
  • 当客户更改订阅的已购买许可证数时更新数量。

只能更新活动订阅。 更新订阅时,其状态在Microsoft端保持活动状态。

从商业市场启动的更新

在此流中,客户从 Azure 门户或 Microsoft 365 管理中心更改订阅计划或许可证数量。

  1. 输入更新后,Microsoft将调用发布者的 Webhook URL,该 URL 在合作伙伴中心 技术配置 页上的“连接 Webhook”字段中配置,具有适当的值,用于 操作 和其他相关参数。
  2. 发布者端应对 SaaS 服务进行所需的更改,并通过调用操作 API的 更新状态来通知Microsoft。
  3. 如果修补程序发送 失败 状态,则更新过程不会在Microsoft端完成。 SaaS 订阅保留现有计划和许可证数量。

注意

发布者应调用 PATCH 在收到 Webhook 通知后,在 10 秒时间 范围内使用失败/成功响应 更新操作 API 的状态。 如果在 10 秒内未收到操作状态 PATCH,则更改计划 自动修补为成功

下图显示了从商业市场启动的更新方案的 API 调用序列。

显示市场发起的更新的 A P I 调用的关系图。

从发布服务器启动的更新

在此流中,客户更改从 SaaS 服务本身购买的订阅计划或许可证数量。

  1. 在发布者端进行请求的更改之前,发布者代码必须调用 更改计划 API更改数量 API 或两者。
  2. Microsoft将更改应用到订阅,然后通过 连接 Webhook 通知发布者以应用相同的更改。
  3. 只有这样,发布者才能对 SaaS 订阅进行所需的更改,并通过调用操作 API更新状态来通知Microsoft。

下图显示了从发布者端启动的更新方案的 API 调用序列。

显示发布者端发起的更新的 A P I 调用的关系图。

指示计划更改的通知电子邮件同时发送给购买者和计费帐户所有者。

指示数量更改的通知电子邮件将同时发送给购买者和计费帐户所有者。

已暂停(暂停

此状态表示未收到客户的 SaaS 服务的付款。 Microsoft在 SaaS 订阅状态中通知发布者此更改。 通知是通过调用 webhook 完成的,操作 参数设置为 Suspended

发布者可能会或可能不会对发布者端的 SaaS 服务进行更改。 我们建议发布者向挂起的客户提供此信息,并限制或阻止客户访问 SaaS 服务。 付款可能从未收到过。

注意

Microsoft在自动取消订阅之前为客户提供 30 天的宽限期。 30 天宽限期结束后,Webhook 会收到 Unsubscribe 操作。

当订阅处于 挂起 状态时:

  • 合作伙伴或 ISV 必须使 SaaS 帐户保持可恢复状态,以便可以还原完整功能,而不会丢失数据或设置。
  • 如果宽限期内收到付款,或者请求在宽限期结束时取消预配订阅,合作伙伴或 ISV 应期望请求恢复订阅。 Webhook 机制发送这两个请求。

在发布者采取任何操作之前,订阅状态更改为 Microsoft端的暂停。 只能暂停活动订阅。

一封通知电子邮件,指示状态更改为 暂停 将同时发送给购买者和计费帐户所有者。

在暂停 30 天之后,向购买者和计费帐户所有者发送有关暂停后取消的电子邮件。

恢复(暂停

此操作表示客户的付款方式再次有效。 已为 SaaS 订阅支付费用,并恢复订阅。 在本例中:

  1. Microsoft调用 webhook,操作 参数设置为 恢复 值。
  2. 发布者确保订阅在发布者端再次完全正常运行。
  3. 恢复过程成功,客户将再次针对 SaaS 订阅计费。

只能恢复暂停的订阅。 暂停的 SaaS 订阅在恢复时仍处于 暂停 状态。 此操作完成后,订阅的状态将变为“活动”

在从暂停状态过渡到恢复状态后,向购买者和计费所有者发送电子邮件。

续订(订阅

Microsoft在一个月或一年订阅期限结束时自动续订 SaaS 订阅。 自动续订设置的默认值为所有 SaaS 订阅 true。 活动 SaaS 订阅将继续定期续订。 Microsoft为续订事件提供仅限通知的 Webhook 通知。 客户可以通过 Microsoft 365 管理门户关闭 SaaS 订阅的自动续订。 在这种情况下,SaaS 订阅会在当前计费期限结束时自动取消。 客户还可以随时取消 SaaS 订阅。

仅自动续订活动订阅。 订阅在续订过程中保持活动状态,如果自动续订成功。 续订后,订阅期限的开始日期和结束日期将更新为新术语的日期。

如果由于付款问题而自动续订失败,订阅将 暂停,并且发布者会收到通知。

续订提醒电子邮件将同时发送给计费帐户的购买者和计费帐户的所有者,在每年/多年续订日期之前 30 天。

已取消(未订阅

在显式客户或 CSP 操作执行取消订阅后,订阅将达到此状态。 他们从发布者站点、Azure 门户或 Microsoft 365 管理中心取消订阅。 订阅也会隐式取消,因为未支付到期费用,并在处于 暂停 状态 30 天后取消。

发布者收到取消 Webhook 调用后,他们应保留客户数据以请求至少七天进行恢复。 只有这样才能删除客户数据。

SaaS 订阅可以在生命周期中的任何时间点取消。 取消订阅后,无法重新激活订阅。

取消电子邮件将同时发送给购买者和计费帐户的所有者。

视频教程

  • 在 .NET 中构建简单的 SaaS 发布者门户
  • 使用 SaaS 产品/服务 REST 履行 API