Автообновляемая ошибка подписки
Я работаю над приложением Newsstand, у которого есть подписка с автообновлением, которая обновляется через каждые 12 месяцев. Проблема заключается в том, что уже подписанный пользователь пытается снова приобрести подписку. Согласно документам, фреймворк StoreKit должен вернуться SKPaymentTransactionStateRestored
если пользователь уже подписан, но возвращается SKPaymentTransactionStateFailed
в методе делегата StoreKit:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
шаги:
- Купить подписку на автоматическое продление
- После успешной покупки удалите и переустановите приложение еще раз.
- Снова приобретите подписку на автоматическое продление с тем же идентификатором Apple и паролем или попробуйте приобрести ту же подписку на другом устройстве, используя тот же Apple Id.
Я сомневаюсь, что вместо восстановления предыдущей покупки, он делает новый запрос на покупку и обновляет период подписки соответственно.
Это не приложение на основе учетной записи, поэтому я не могу сохранить и проверить период подписки на сервере.
1 ответ
Вы должны добавить две кнопки в ваше приложение:
- Покупка - просто куплю автообновление подписки
- Восстановить - попытаться восстановить существующую подписку с помощью
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]
Вы можете написать некоторые объяснения в своем пользовательском интерфейсе для пользователя, например, "если вы уже приобрели эту подписку, просто нажмите" Восстановить "
Этот метод был изобретен во время трех или четырех отклонений от Apple, потому что "пользователь должен иметь возможность восстановить свою подписку", "пользователь не должен получать запрос пароля, если он этого не ожидает" (он запрашивает пароль при восстановлении завершенных транзакций), и так далее.