如何通过 GetSubscriptionsForUser API 确定 Microsoft Store 订阅购买中的自动续订偏好更改?

How to determine auto renewal preference change in Microsoft Store Subscription purchases through GetSubscriptionsForUser API?

我们希望使用此 API https://docs.microsoft.com/en-us/windows/uwp/monetize/get-subscriptions-for-a-user 从续订作业中调用,以确定用户的订阅是否已续订或未按预期延长我们系统中的许可证。我们要检测以下场景:

  1. 用户订阅成功续订下一个周期。
  2. 由于计费失败,用户的订阅未能成功续订(当前有效)
  3. 由于计费失败(已过期),用户的订阅未能成功续订
  4. 用户选择退出续订且订阅已过期。
  5. 用户选择退出下一次续订,但当前订阅​​有效。

我们可以根据文档确定状态 1-4,但如何确定 #5。根据recurrenceState的值属性:

,我们对四种状态有如下理解
  1. 用户订阅成功续订下一个周期 - Active
  2. 由于计费失败(当前有效),用户的订阅未能成功续订 - InDunning
  3. 由于计费失败(已过期),用户的订阅未能成功续订 - Failed
  4. 用户选择退出续订且订阅已过期 - InActive
  5. 用户选择退出下一次续订但当前订阅​​有效 - ?

根据您的描述,场景5相当于:订阅有效,用户有权使用当前周期的服务。订阅暂时未达到终止状态

无论自动续订选项是打开还是关闭,状态都不应更改。所以场景5的状态也是Active

响应包含一个 autoRenew 字段。如果 autoRenew 字段设置为 false 并且 状态为 Active,则会导致进入#5 场景。