Я создаю приложение для iOS с подпиской на автообновление.Я читал много учебников и документации, но я немного запутался в том, как обращаться с определенными сценариями.
Вот как работает мое приложение:
- Пользователь устанавливает приложение
- Пользователь создает аккаунт в потоке регистрации
- Пользователю предлагается выбрать план и оплатить в потоке регистрации
- Квитанция об оплате загружена на мой сервер, и я активирую его аккаунт в своембаза данных.
- Мой сервер регулярно опрашивает конечную точку
/verifyReceipt
, чтобы обновить учетную запись пользователя или отключить ее, в зависимости от того, какая последняя информация от Apple.(или используйте новое уведомление об обновлении статуса от Apple, оба служат одной и той же цели для получения последней информации о подписке на моем сервере)
Через месяц после возобновления подписки я знаю, что транзакция появится на SKPaymentQueue
на устройстве пользователя.По этой причине во многих руководствах / документах рекомендуется, чтобы AppDelegate
реализовывал протокол SKPaymentTransactionObserver
, чтобы вы могли обрабатывать транзакции в любое время.
Но я не использовал AppDelegate
.Я использовал контроллер представления при регистрации, когда пользователь выбирает свои планы по реализации SKPaymentTransactionObserver
.
. Я считаю, что, поскольку я получаю информацию о бэкэнде, мне нужно заботиться о транзакциях, которые будут отображатьсяв очереди у клиента каждый месяц, когда продлевается подписка?Разве я не могу просто проигнорировать эти транзакции, или мне нужно будет позвонить по ним queue.finishTransaction
?
Я также прочитал некоторые вещи о восстановлении транзакций, когда пользователь удаляет приложение и переустанавливает или получает новый телефон,Опять же, мне нужно беспокоиться об этом?Поскольку я все еще должен знать о подписке на бэкэнде, и все, что пользователь должен сделать, когда он получает новый телефон, - войти в свою учетную запись для моей службы, и он проверит бэкэнд, чтобы увидеть, активна ли его подписка.
Полагаю, мой более важный вопрос: если у вас есть бэкэнд для обработки подписок IAP с автоматическим продлением, можете ли вы игнорировать некоторые вещи, происходящие на клиенте с очередью платежей, потому что эта функция была создана для приложений, которые неесть бэкэнд.