apple app purchase用户升级订阅怎么办

what should I do when user upgrade subscribe in apple app purchase

现在当用户在apple purchase升级自动续订订阅产品时,apple服务器会发送一个DID_CHANGE_RENEWAL_STATUS消息到我的开发服务器。现在我已成功收到消息。但是我不知道我应该怎么做才能正确处理 DID_CHANGE_RENEWAL_STATUS 消息。我阅读文档并从互联网上搜索并告诉我苹果将在下一期生效新升级的订阅。收到 DID_CHANGE_RENEWAL_STATUS 消息后我该怎么办?

我想到了一种方法,即保存新的升级订阅记录并将新订阅的记录标记为无效,直到收到来自苹果服务器的切换消息。我应该这样做吗?

现在我通过使用产品 ID 和到期日期获得订阅产品,我必须添加另一个字段来标记新升级的产品无效。我只想知道如何以最佳方式处理 DID_CHANGE_RENEWAL_STATUS 消息。与降级自动续费产品一样,任何建议都是合适的。

这个事件只是告诉你 product_id 会改变。

如您所说,如果是 up-grade/cross-grade,它会立即改变。如果降级,它将在下一个 expires_date.

更改

要了解您是否应该更改与您的用户关联的当前产品,请查看 latest_receipt_info 的最后一个元素(按 web_order_line_item_id 排序)并检查 product_id。如果它的价值与升级后的产品相匹配,你应该改变,否则不。

如果没有改变,您将获得新产品:

  • 如果是 up-grade/cross-grade:INTERACTIVE_RENEWAL S2S 将继承 DID_CHANGE_RENEWAL_STATUS(您必须检查 latest_receipt_info.product_id 属性 , 如前所述)
  • 如果降级:由于 expires_date 将过去,您需要与 /verifyReceipt API 检查订阅是否已续订。通过查看 product_id 属性,您会发现降级。