9

Я реализую сценарий автоматической возобновляемой подписки, где проверка подлинности квитанции будет обрабатываться моим кодом на стороне сервера. Следуя за Apple documentation, я получаю данные квитанции от NSBundle и передаю эти данные на свой сервер, которые свяжутся с Apple, чтобы подтвердить получение и сообщить об этом приложению.iOS автоматически возобновляемые подписки: потоки проверки чеков

Теперь мои вопросы, связанные с необходимыми потоками, связанными с проверкой поступления:

  1. Если пользователь покупает подписку, моя квитанция будет автоматически обновляться с информацией от этой покупки? Если да, необходимо ли подтверждать это получение сразу после покупки или я должен немедленно «разблокировать» приложение?

  2. В каких ситуациях моя квитанция будет отсутствовать от NSBundle? Если это произойдет, я полагаю, что я должен использовать SKReceiptRefreshRequest для обновления чека и отправить его на сервер для проверки.

  3. Если пользователь устанавливает приложение на другом устройстве и восстанавливает его покупки restoreCompletedTransactions автоматически получаю квитанцию ​​одновременно? Полагаю, мне нужно проверить валидность после восстановления, чтобы убедиться, что есть активная подписка, правильно?

  4. Когда мой сервер пытается проверить квитанцию ​​и что квитанция недействительна, что должно произойти со стороны приложения? Обновить квитанцию ​​(которая будет запрашивать у пользователя учетные данные) и передать ее снова на сервер для новой повторной проверки?

+0

Руи, вы уже разобрались в этом? Было бы неплохо, если бы вы (или кто-то другой) могли бы дать ответ на этот вопрос. –

ответ

7

Если пользователь покупает подписку, моя квитанция будет автоматически обновляться с информацией от этой покупки?

Да, квитанция по существу является файлом, хранящимся на устройстве, после покупки файл квитанции обновляется и добавляется с последней транзакцией.

Если да, необходимо ли подтверждать это получение сразу после покупки или я должен немедленно «разблокировать» приложение?

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

В каких ситуациях моя квитанция будет отсутствовать в NSBundle?

Если в середине покупки пользователь теряет связь, данные квитанции могут не полностью загрузиться, что приведет к неполному квитанции. Я подозреваю, что есть другие сценарии, но я не встречал ни одного из них сам.

Если это произойдет, я полагаю, что я должен использовать SKReceiptRefreshRequest, чтобы обновить квитанцию ​​и отправить ее на сервер для проверки.

Да, но имейте в виду, что это просто обновит файл квитанции, вам нужно будет снова позвонить appStoreReceiptURL, чтобы получить квитанцию ​​из файла.

Если пользователь устанавливает приложение на другом устройстве и восстанавливает свои покупки restoreCompletedTransactions, я автоматически получаю квитанцию ​​одновременно?

Файл получения будет обновлен, но вам нужно будет позвонить appStoreReceiptURL, чтобы получить квитанцию.

Я полагаю, что мне нужно проверить квитанцию ​​после восстановления, чтобы убедиться, что есть активная подписка, правильно?

Yup, хорошая идея.

Когда мой сервер пытается проверить квитанцию ​​и что квитанция недействительна, что должно произойти со стороны приложения? Обновить квитанцию ​​(которая будет запрашивать у пользователя учетные данные) и передать ее снова на сервер для новой повторной проверки?

Я бы сказал пользователю, что вы не верите, что квитанция действительна и предоставляет возможность повторить попытку. Вызовите SKReceiptRefreshRequest, отправьте квитанцию ​​на свой сервер еще раз. Показывать параметр снова, если он впоследствии не удался.

Если пользователь совершил мошенническую покупку, я сомневаюсь, что они будут жаловаться вам или Apple.

Смежные вопросы