ios应用程序内订阅 - original_transaction_id何时更改?

Hox*_*Hox 14 in-app-purchase ios in-app-billing

如果有自动续订订阅,请考虑以下型号情况:

  • 用户购买1个月订阅,比如1月份
  • 取消续订
  • 然后等到3月(> 1个月)并再次购买相同的订阅

AppStore是否(在收据验证时)返回original_transaction_id新购买的新内容?或者改写,可original_transaction_id用于分组收据以确定用户有效订阅的时间间隔?

因为在沙箱中,当存在这样的模拟情况时,它总是original_transaction_id从第一次购买给定订阅返回,无论是否存在用户没有活动订阅的某些间隔.当有多次购买订阅时,其间隔时间,到期时,沙盒收据验证返回original_purchase_date首次购买,以及expires_date最后一次购买.

我的问题是,要在实时环境中测试它,我将不得不等待一个多月才能让订阅到期以测试确切的行为.

tak*_*aka 10

我维护了一个订阅的生产应用程序好几年了。

据我所知,original_transaction_id在你提到的那种情况下不会改变。

而且,original_transaction_id属于订阅组,不是每个product_id。

所以在以下情况下它保持不变。

  • 用户开始订阅,停止自动续订并过期,然后再次开始订阅。
  • 用户开始订阅并取消订阅,但重新开始。
  • 用户开始订阅并升级或降级为同一组内的订阅。

但这不是保证的结果,因此您最好做好准备,以防 original_transaction_id 发生变化。

  • 我从 Apple 开发者技术支持处得到了这样的回复:“如果应用程序验证了 appStoreReceipt 并且还支持服务器到服务器通知,那么对于收据中的“相同”周期,应用程序进程可以使用original_transaction_id 来匹配收据中的项目。服务器通知已验证的 appStoreReceipt。但是,我不会依赖于今天和一年后的original_transaction_id 保持不变。” (2认同)