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

时间:2013-09-25 09:11:47

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

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

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

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

因为在沙盒中,当存在这样的模拟情况时,无论是否存在用户未进行有效订阅的某些间隔,它都会从第一次购买订阅时返回original_transaction_id。当多次购买订阅时,其间隔时间,沙箱收据验证返回首次购买的original_purchase_date,以及上次购买的expires_date

我的问题是,要在实时环境中测试它,我必须等待一个多月才能让订阅过期以测试确切的行为。

2 个答案:

答案 0 :(得分:1)

我已经维护了一个具有订阅功能的生产应用程序。

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

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

因此,在以下情况下它保持不变。

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

但这不是可以保证的结果,因此,最好在original_transaction_id更改的情况下做好准备。

答案 1 :(得分:-2)

Original_transaction_id是(自动续订订阅的续订链中的所有收据对此字段都具有相同的值。)

Expires_date是(订阅的到期日期,表示为自1970年1月1日00:00:00 GMT以来的毫秒数。)

参考:https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW12

为什么要根据苹果在https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/TestingInAppPurchases.html的指南测试模拟环境时,在真实场景中进行测试?