Подписки ios in-app - когда изменяется original_transaction_id?
Когда есть подписка на автообновление, рассмотрите следующую модельную ситуацию:
- пользователь покупает подписку на 1 месяц, скажем, в январе
- отменяет обновление
- затем ждет до марта ( > 1 месяц) и снова покупает ту же подписку
Возвращает ли AppStore (при подтверждении получения) новый original_transaction_id
для новой покупки? Или перефразировать, может ли original_transaction_id
использоваться для группировки квитанций для определения интервалов, когда у пользователя была активная подписка?
Потому что в песочнице, когда есть подобранная ситуация, она возвращает всегда original_transaction_id
из ПЕРВОЙ покупки данной подписки, независимо от того, были ли у некоторых интервалов время, когда у пользователя не было активной подписки. Когда было несколько попыток подписки с интервалами между ними, когда срок ее действия истек, проверка квитанции о песочнице возвращает original_purchase_date
первой покупки и expires_date
последней покупки.
Моя проблема заключается в том, чтобы протестировать ее в живой среде, мне придется подождать более месяца, чтобы истекать срок подписки, чтобы проверить точное поведение.
Ответы
Ответ 1
Я поддерживаю производственное приложение с подпиской в течение нескольких лет.
Насколько я вижу, original_transaction_id
не меняется в том случае, если вы упомянули.
Кроме того, original_transaction_id
относится к группе подписки, а не к каждому product_id.
Так же и в следующих случаях.
- Пользователь запускает подписку, останавливает автоматическое продление и истекает, затем снова запускает подписку.
- Пользователь запускает подписку и отменяет ее, но начинает снова.
- Пользователь запускает подписку и обновляет или понижает до подписки в той же группе.
Но это не гарантированный результат, поэтому вам лучше подготовиться в случае изменения original_transaction_id.
Ответ 2
Original_transaction_id (все квитанции в цепочке продлений для автоматической возобновляемой подписки имеют одинаковое значение для этого поля.)
Expires_date is (Дата истечения срока подписки, выраженная в миллисекундах с 1 января 1970 года, 00:00:00 GMT.)
Ссылка: https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW12
Почему вы хотите протестировать его в реальном сценарии, когда вы можете протестировать в нем смоделированную среду согласно рекомендациям Apple по адресу https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/TestingInAppPurchases.html?