在Windows Store应用程序中,在续订时间之前确定用户对自动续订首选项的更改

时间:2019-09-24 07:57:55

标签: uwp windows-store-apps windows-store in-app-subscription auto-renewing

此问题与Microsoft Store的Get subscriptions for User API中提供的有关用户订阅的详细信息一致。

enter image description here 参考上图,用户在第0天购买了monthly auto renewing订阅计划,该计划预计将在第30天由商店更新。我们每6个小时运行一次更新工作,这些工作会在下一个即将到期的工作中进行选择6个小时左右。

因此,在第29天的某个地方,我们的续签工作将运行,以检查商店是否已经向用户收取了续签费用。作业运行时可能会出现不同的方案状态:

  1. 用户的订阅已经续订了下一个周期。
  2. 商店尚未尝试续订用户的订阅(不太可能)。
  3. 用户已选择关闭下一个周期的续订。
  4. 商店无法向用户收费,正在重试计费。
  5. 开发者取消了用户的订阅(有或没有退款)。

根据文档,有两个有趣的属性可以帮助我们识别上述情况:

  1. recurrenceState
  2. expirationTime

根据我们的理解,我们针对以下情况提出了该表格:

Case #             Recurrence State           Expiration Time

   1                  Active                     Day 60

   2                  Active                     Day 30

   3                  Active                     Day 30

   4                  InDunning                  Day 30

   5                  Canceled                   Less than day 30

问题

  1. 有没有办法区分情况2和情况3?

  2. 此外,我们可能会选择忽略情况2,因为这种情况极不可能发生。但是我们仍然需要进行日期计算以区分情况1和情况3,因为这两个日期都是从当前日期算起的未来日期。有没有比依靠日期计算更好的方法了?

  3. 案例2不太可能,因为Microsoft Store在续订日期之前14天开始向用户收费。如果计费失败,它将进入状态4。现在,假设商店在第14天向用户收费,而他在第20天(对于下一个周期)关闭了订阅,Microsoft将向用户退款以及该状态如何反映在API响应中。

PS:

  1. 如果我们必须检查日期是从当前日期过去还是未来,那么我们仍然很好。

  2. 在第30天之后运行的续签作业将无法选择候选人,因为如果直到30天才续签,我们的下游系统将自动取消订阅。更改下游系统中的逻辑。

0 个答案:

没有答案