IOS 自动续订订阅通知处理

时间:2021-01-21 12:07:16

标签: ios in-app-purchase subscription in-app-subscription

美好的一天!我正在尝试为自动续订订阅实施通知,但我不清楚整个系统的某些部分。你能帮忙吗?

首先,当用户创建订阅时,我会从用户的设备收到收据,验证它并在数据库中创建一个包含所有需要信息的记录。现在,通知正在发送到服务器。

  1. INITIAL_BUY 通知 - 什么时候来,为什么?我刚收到设备的收据,经过验证,我很高兴。为什么我需要它?

  2. 如果我错了,请纠正我,这部分对我来说不清楚,当用户 UPGRADES 订阅级别时,我收到 oldSubscription 的取消通知和收据newSubscription 的新购买,对吗? 所以理论上的问题是 - 如果在我的服务器端,oldSubscription 中可用的内容和 newSubscription 中可用的内容与我获得 CANCEL 时< em>oldSubscription 我只是拒绝用户访问 oldSubscription 内容,当我收到客户的回执时,我创建了 newSubscription 以访问新内容,对吗?

  3. DOWNGRADECROSSGRADE。据我所知,我得到了 DID_CHANGE_RENEWAL_PREFDID_CHANGE_RENEWAL_STATUS。因此,我将在此订阅的通知中收到 auto_renew_status,当支付期限到期时,我会从用户设备收到有关新购买信息的收据?或者我必须弄清楚如何仅通过DID_CHANGE_RENEWAL_PREFDID_CHANGE_RENEWAL_STATUS通知来处理DOWNGRADECROSSGRADE

谢谢

1 个答案:

答案 0 :(得分:1)

服务器收据验证的问题在于不仅有一种方法。实现这一点的可能性无穷无尽,这取决于您使用订阅的用例以及您希望应用和服务器之间的通信方式。

在您的第二段中是这些可能性的第一个示例:只有当您以这种方式实施时,您的服务器才会从设备获取收据。此外,也许您仅根据通知而不是发送回执来更新数据库。你看,这完全取决于你 ;-)

关于您的问题:

1)

<块引用>

发生在用户最初购买订阅时。

documentation

  1. 理论上这是正确的,但您描述的用例不是升级。如果更好的订阅不包含较低订阅的内容,那就太奇怪了。

  2. 降级或跨级没有太多需要处理的事情。通知只会告诉您下次自动续订会有变化。因为,在下一次自动续订之前,用户仍然有资格访问更好的内容。更好的订阅到期后,您将收到一个普通的 DID_RENEW,其中包含降级或跨级产品 ID。