SKPaymentTransaction expires_date, похоже, механизм автоматического обновления не работает в песочнице

Я почти справился с автоматическим продлением подписки в своем приложении, но происходит одна странная вещь - она ​​не продлевается автоматически.

У меня есть кнопка, которая добавляет SKPayment к моему продукту и дает мне квитанцию ​​с его SKPaymentTransaction, которая действительно активна.

Затем я сохраняю этот чек и пытаюсь снова отправить его в Apple, чтобы проверить дату истечения срока действия. И он возвращает мне дату моей первой покупки, а не последней, в ней expiredate. И когда заканчивается период подписки (через пять минут в песочница), он просто возвращает мне 21002

Но если я снова продлю его вручную, новые квитанции сообщают мне обновленную дату истечения срока действия, я снова сохраняю ее, и все идет по кругу.

И, да, original_purchase_date одинаков в обоих рецептах.

Может быть, я просто не понимаю, как работает проверка срока годности?


person Nikita Pestrov    schedule 31.03.2012    source источник


Ответы (2)


Если вы хотите сэкономить несколько часов своей жизни, вот ключ, на поиски которого я потратил несколько часов (не буквально):

Автоматическое продление прекращается через некоторое время в песочнице

Некоторые люди говорят, что это происходит после 6 раз (30 минут для подписки montky), а затем вы начинаете получать 21006-е, вам нужно снова выкупить его, и, даже после выкупа, он больше не будет автоматически продлеваться - у вас есть чтобы создать нового тестового пользователя для повторного тестирования этой части приложения.

Я сам это почувствовал, и ребята на яблочных форумах говорят, что сталкивались с такой же проблемой.

https://devforums.apple.com/thread/105350

На самом деле, я искал немного больше и нашел в Руководстве для разработчиков Apple iTunes Connect, но я не читал его раньше, поэтому это принесло мне столько головной боли.

person Nikita Pestrov    schedule 31.03.2012

В моем случае автопродление срабатывает два раза, потом начинаю видеть 21006. Вчера у того же пользователя вообще не работало (купил один раз, просрочен после первого срока годности). Apple говорит, что вам не нужно создавать нового тестового пользователя, что может быть правдой — по крайней мере, в моем случае использование того или иного пользователя не имеет значения, похоже, это решение песочницы.

Я также слышал слухи о том, что (по крайней мере, в рабочей среде) вы действительно должны получить новую транзакцию при обновлении (с восстановленным состоянием), но я никогда не видел, чтобы это происходило в песочнице, и я не могу найти соответствующую информацию в программировании покупок в приложении. Руководство.

person Katlu    schedule 30.08.2012