如何处理自动续订订阅重新订阅?

How to handle auto renewable subscription resubscribe?

我正在我的 iOS 应用程序中实施自动续订订阅。在沙盒模式下,每月订阅会在 5 分钟后自动续订。我在 appDelegate 中添加了事务观察器。因此,当应用程序重新启动时,更新的事务方法被调用并且我收到以下日志。

购买的支付商店产品il_pkg1_1month_2 付款商店产品购买交易ID可选(“1000000792969469”) 购买的支付商店产品 il_pkg1_1month_2 付款商店产品购买交易ID可选(“1000000792972183”) 购买的支付商店产品 il_pkg1_1month_2 付款商店产品购买交易ID可选(“1000000792976003”) 购买的支付商店产品 il_pkg1_1month_2 付款商店产品购买交易ID可选(“1000000792978690”) 购买的支付商店产品 il_pkg1_1month_2 付款商店产品购买交易ID可选(“1000000792982052”)

我的问题是

1) 当应用程序打开并更新交易时,不会调用此方法。这是正确的行为吗?

  1. 我计划在调用此方法时(在服务器端)实施收据验证。所以假设当我打开应用程序并且交易自动更新多个 times.Do 我需要为每笔交易或仅最新一笔交易实施验证收据?如果应用已打开且交易已自动续订,如何验证收据?

3)我在同一个订阅组中有 3 种计划。我无法在沙盒模式下 upgrade/downgrade,是否可以在沙盒模式下测试 upgrade/downgrade?

4) 订阅过期后,如果我从管理订阅页面更新订阅,则会调用更新的交易方法,但我得到的交易与之前相同 renewal.Even 交易到期日期与续订前相同。这是正确的行为吗,我需要做任何额外的事情吗?

如有任何帮助,我们将不胜感激。

  1. 这是预期的行为,另请注意,后续的每次购买都有一个 original_transaction_id,因此您可以分辨出最初的购买是什么。

  2. 每当您调用服务器收据验证时,您都会发送应用程序当前拥有的收据数据,Apple 始终returns 最新的收据信息。因此,您可以随时致电 Apple 来验证订阅是否仍处于活动状态,或者任何后续转换以验证是否发生了重新订阅。您还可以将应用收据中的数据存储在服务器上,以便不时仅在服务器端检查,以验证订阅是否仍然有效且未被取消。

  3. 我认为您以前可以在沙盒中 upgrade/downgrade,如果不能从设备设置中的沙盒帐户编辑页面,请尝试允许 downgrade/upgrade 购买你的应用程序。至少我相信它应该可以使用 Xcode 12 App Store 配置本地 StoreKit 测试。

  4. 我不确定您看到的这种行为是否正常,如果您在订阅失效后订阅,它应该像新购买一样 - 但仍然会有 original_transaction_id原始订阅。