Подписка на автообновление среды iOS - PullRequest
25 голосов
/ 07 ноября 2011

У меня есть следующие вопросы относительно автоматически обновляемых подписок iOS

a) Действительно ли подписки с автообновлением автоматически обновляются в среде песочницы? Кажется, проблема в том, что подписки не обновляются автоматически, хотя в документации говорится, что даже в среде с песочницей это должно происходить 6 раз.

б) Нужно ли вызывать restoreCompletedTransactions для получения нового чека для автоматически продленной подписки, или -paymentQueue: updatedTransactions: метод, автоматически вызываемый iOS? (Я полагаю, он автоматически вызывается при запуске и вращении вне фона)

в) Как вы обрабатывали одну и ту же подписку на нескольких устройствах? Это можно сделать с помощью restoreCompletedTransactions, но при его вызове у пользователя будет запрашиваться пароль, поэтому его не очень удобно вызывать при каждом запуске приложения.

Ответы [ 2 ]

28 голосов
/ 07 декабря 2011

а) Автоматически обновляемые подписки несовместимы в среде песочницы.Иногда подписка продлевается несколько раз (около 5) до окончания.В других случаях он вообще не будет обновляться.

b) (только квитанции об операциях iOS6) Вам не нужно звонить restoreCompletedTransactions, чтобы проверить статус подписки , если you 'сохраняя предыдущие квитанции (желательно на вашем сервере).Просто возьмите любой чек подписки, который вы сохранили для этого пользователя, и отправьте его в App Store для проверки.Они ответят latest_receipt_info, включая expires_date, который вы можете использовать для определения текущего статуса подписки.

c) Вам следует новым пользователям *1013* предложить «Восстановить предыдущие покупки» вв какой момент вы вызываете restoreCompletedTransactions.Затем отправьте одну из этих квитанций (предпочтительно с вашего сервера) в App Store для проверки, чтобы получить расшифрованные сведения о транзакции.Ищите ключ original_transaction_id в информации о получении.Он всегда будет содержать идентификатор самого первого раза, когда этот пользователь инициировал подписку с вами.Если вы сравните этот идентификатор с другими в вашей системе, вы сможете определить, какие устройства имеют общую учетную запись Apple.(Поскольку Apple не позволяет вам видеть Apple ID пользователя, это лучший способ идентифицировать учетную запись, которая охватывает несколько устройств).

Аналогично этому вопросу: Срок действия автоматического обновления iOS истек вконец текущего периода подписки

10 голосов
/ 18 февраля 2016

В дополнение к этому, похоже, что строка в документации Apple неверно истолкована

Обновление происходит с ускоренной скоростью, и автоматически обновляемые подписки обновляются максимум шесть раз в день. Это позволяет вам проверить, как ваше приложение обрабатывает продление подписки, истечение срока подписки и историю подписок с пробелами.

Похоже, это означает, что все подписки в день будут обновляться только 6 раз. Вместо каждой подписки будет продлен 6 раз, прежде чем отменить. Это бросило меня на некоторое время.

Кажется, это также происходит в течение 24 часов. Не обновляется в данное время. Например, я сделал подписку в 11 утра, которая не возобновлялась. Я сделал еще один в 2 часа дня, который продлен 6 раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...