ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode

Как реализовать Auto-Renewable в iOS?

Стоит задача реализовать приложение с возобновляемой подпиской. За подпиской прячем цифровой контент. Цифровой контент поставляется с сервера

Хотелось бы реализовать без аккаунтов (логина и пароля). т е на iPhone активировал подписку, сервер поставляет контент.

Возникли вопросы по реализации
1) Как с моего сервера напрямую проверить или активна подписка?
2) Что отправлять на сервер в качестве ID? UDID не вариант, если я открою приложение с iPad - там UDID другой, а вот подписка возобновится. Нужно что-то привязанное к Apple ID. Может быть есть идентификационный номер подписки?
3) ID подписки будет одинаковым для всех устройств iOS, привязанных к одному Apple ID? Или подписка действует только на одно устройство?
4) Как это все организовать в действующую систему? Я пока вижу такой вариант: пользователь активирует подписку, устройство стучит на сервер и говорит что подписка активированна. Передает что-то, что выступает как ID. Сервер создает пользователя и поставляет по этому ID контент. Каждый раз перед тем как отправить контент - сервер проверяет у Apple или подписка активна и оплачена. Если я зайду с планшета - опять отправлю что-то типа ID (который в идеале совпадает с iPhone) и получу контент
  • Вопрос задан
  • 1324 просмотра
Решения вопроса 1
maestrro712
@maestrro712
 iOS Developer
Все 4 пункта вам поможет сделать онлайн-валидация чека покупки. Вкратце это выглядит так:

1. Приложение получает у iOS чек прилоложения (receipt). При получении его желательно обновить.
2. Приложение отправляет receipt на ваш сервер.
3. Ваш сервер делает запрос в AppStore с этим receipt и shared secret.
4. AppStore возвращает вам json, в котором есть информация о всех покупках в этом приложении пользователя с этим Apple id.
5. В полученной информации нас интересуют:
а) original_purchase_date - дата оформления подписки
б) purchase_date - дата последней оплаты
в) is_trial_period - показывает, что пользователь пользует пробный период
г) cancellation_date - если не равно null, покупка была отменена
6. PROFIT!

Подробно процесс по шагам описан здесь: https://developer.apple.com/library/content/releas...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы