你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

管理 SaaS 订阅生命周期

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

SaaS 订阅的状态

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

Diagram showing the life cycle of a software as a service subscription in the marketplace.

已购买但尚未激活 (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 中不要包含井号字符 (#)。 否则,客户将无法访问登陆页面。

重要

登陆页 URL 必须每天不间断打开并运行,并且随时可以接收来自 Microsoft 的新调用。 如果登陆页不可用,则客户无法注册并开始使用 SaaS 服务。

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

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

注意

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

发布者应实现 SSO,以提供 Microsoft 所需的用户体验来完成此流。 配置 SSO 时,请确保使用多租户 Azure AD 应用程序,并允许使用工作和学校帐户或个人 Microsoft 帐户。 此要求仅适用于登陆页,适用于使用 Microsoft 凭据登录时重定向到 SaaS 服务的用户。 并非每次登录到 SaaS 服务都需要执行 SSO。

注意

如果 SSO 要求管理员必须授予对某个应用的权限,则合作伙伴中心内的产品/服务说明必须披露需要管理员级别的访问权限。 披露此信息的目的是为了符合商业市场认证策略

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

Diagram showing the A P I calls for a provisioning scenario.

活动(已订阅)

“活动(已订阅)”是已预配的 SaaS 订阅的稳定状态。 在 Microsoft 端处理完激活订阅 API 调用后,SaaS 订阅将标记为“已订阅”。 现在,客户可以在发布者端使用该 SaaS 服务,并开始产生费用。

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

正在更新(已订阅)

此操作表示 Microsoft 和发布者正在处理对现有活动 SaaS 订阅的更新。 可通过以下方式发起这种更新:

  • 客户从商业市场发起。
  • 云解决方案提供商从商业市场发起。
  • 客户从发布者的 SaaS 站点发起(但不适用于云解决方案提供商进行的购买)。

可对 SaaS 订阅进行两种类型的更新:

  • 当客户选择订阅的另一个计划时更新计划。
  • 当客户更改订阅的购买座席数量时更新数量。

只能更新活动订阅。 当订阅正在更新时,其在 Microsoft 端的状态仍保持为“活动”状态。

从商业市场发起的更新

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

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

注意

收到 Webhook 通知后的 10 秒时限内,发布者应调用 PATCH 来更新操作状态 API 并返回失败/成功响应。 如果在 10 秒内未收到操作状态 PATCH,则更改计划将自动修补为“成功”。

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

Diagram showing the A P I calls for a marketplace initiated update.

从发布者发起的更新

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

  1. 在发布者端进行请求的更改之前,发布者代码必须调用更改计划 API 和/或更改数量 API

  2. Microsoft 将应用对订阅所做的更改,然后通过“连接 Webhook”通知发布者应用相同的更改。

  3. 只有在应用这些更改后,发布者才能对 SaaS 订阅进行所需的更改,并在更改完成后调用更新操作状态 API 来通知 Microsoft。

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

Diagram showing the A P I calls for a publisher side initiated update.

已暂停(已暂停)

此状态表示尚未收到客户的 SaaS 服务付款。 Microsoft 会向发布者通知 SaaS 订阅状态的此项更改。 该通知是在将 action 参数设置为 Suspended 的情况下,通过调用 Webhook 发出的 。

发布者不一定可以在发布者端对 SaaS 服务进行更改。 我们建议发布者向订阅已暂停的客户提供此信息,并限制或阻止客户访问 SaaS 服务。 有可能永远收不到付款。

注意

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

当订阅处于“已暂停”状态时:

  • 合作伙伴或 ISV 必须使 SaaS 帐户保持可恢复状态,以便可以还原完整功能,且不丢失任何数据或设置。
  • 合作伙伴或 ISV 应该预料到在宽限期收到付款后,客户会请求恢复订阅,同时也要预料到在宽限期结束后客户请求取消预配订阅。 这两个请求都将通过 Webhook 机制发送。

在发布者采取任何措施之前,订阅状态在 Microsoft 端将更改为“已暂停”。 只能暂停处于活动状态的订阅。

已恢复(已暂停)

此操作指示客户的付款方式再次生效,已经为 SaaS 订阅付款,并且订阅正在恢复。 在这种情况下:

  1. Microsoft 会在将 action 参数设置为 Reinstate 值的情况下调用 Webhook 。
  2. 发布者需确保订阅在发布者端完全恢复正常运行。
  3. 发布者调用修补操作 API 并返回成功状态。
  4. 恢复过程成功,再次向客户计收 SaaS 订阅费。

如果发送修补命令时出现失败状态,则恢复过程不会在 Microsoft 端完成,并且订阅将保持“已暂停”状态 。

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

已续订(已订阅)

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

只会自动续订处于活动状态的订阅。 在续订过程中以及在自动续订成功后,订阅将保持活动状态。 续订后,订阅期限的开始和结束日期将更新为新期限的日期。

如果由于付款问题而导致自动续订失败,订阅将变为“已暂停”状态,发布者将收到通知。

已取消(已取消订阅)

当客户或云解决方案提供商在发布者站点、Azure 门户或 Microsoft 365 管理中心显式执行了订阅取消操作时,订阅将进入此状态。 如果在处于“已暂停”状态 30 天后客户仍未支付逾期款项,则也可能会隐式取消其订阅。

在发布者收到取消 Webhook 调用后,他们应将客户数据至少保留七天,以备按请求予以恢复。 只有在保留期过后,才能删除客户数据。

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

后续步骤

视频教程