Извините за миллионный вопрос о подписках на iTunes, но у меня все еще есть некоторые сомнения.
В основном я использую автоматически возобновляемые подписки в своем приложении и хочу убедиться, что все правильно понял. Вот список шагов, которые я придумал:
Правильны ли эти шаги? И если да, то почему в документе Apple говорится:
В большинстве случаев ваше клиентское приложение iOS не требует изменений. Фактически, ваше клиентское приложение теперь стало проще, так как вы можете использовать тот же код для восстановления автоматически возобновляемых подписок, что и для восстановления нерасходуемых продуктов. Это описано в разделе «Восстановление транзакций». Ваше приложение получает отдельную транзакцию для каждого периода времени, когда подписка была продлена; ваше приложение должно проверять каждую квитанцию отдельно.
На мой взгляд, вместо этого требуется некоторый код для обработки всех упомянутых мною случаев. Или я совершенно ошибаюсь. Я?
Плюс, как мне узнать о дате окончания подписки? Я могу' Я не могу найти способ получить эту информацию где угодно. Должен ли я сохранить это в своей базе данных?
Обновление:
Я понял несколько вещей с тех пор, как опубликовал этот вопрос. Не стесняйтесь поправлять меня, если я ошибаюсь.
Прежде всего, я предполагаю, что я должен хранить продолжительность подписки где-то в моей собственной базе данных, потому что, как указано в документации Apple, вы не можете получить ее каким-либо образом через веб-службы Apple. Фактически, каждая продолжительность подписки имеет свой идентификатор продукта, поэтому у вас должен быть способ преобразовать идентификатор продукта в длину подписки.
Кроме того, Сильвиан опубликовал подробности о своей реализации автоматического продления подписки, так что, по крайней мере, я знаю, что мое мышление не было слишком ошибочным.
Теперь единственная проблема заключается в следующем: как мне узнать, что у пользователя есть действующая подписка? Я мог бы сохранить эту информацию на своем сервере, да, но как мне связать пользователя с завершенной транзакцией? Стоит ли сохранять UDID устройства?