iOS 6 In App Purchases — доступ к данным о завершенных транзакциях без использования «restoreCompletedTransactions», для которого требуется пароль пользователя.

У меня есть приложение, которое использует подписки с автоматическим продлением. Мне нужно получить доступ к завершенным транзакциям, чтобы определить, есть ли у пользователя действующая подписка или нет. Я понимаю, что «restoreCompletedTransactions» сделает это за вас, однако он раздражающе требует, чтобы пользователь повторно ввел свой пароль iTunes.

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


person JimmyJammed    schedule 12.03.2013    source источник


Ответы (1)


вы хотите сохранить данные квитанции и ваш общий секрет, если вы хотите знать, действителен ли пользователь или нет, вы хотите отправить данные квитанции и ваш общий секрет на сервер Apple, и Apple ответит на последнюю квитанцию ​​​​и статус последней квитанция о том, что статус равен «0», тогда пользователь действителен, или же, если статус «21006», эта квитанция действительна, но срок действия подписки истек. Когда этот код состояния возвращается на ваш сервер, данные квитанции также декодируются и возвращаются как часть ответа. подтвердить эту ссылку

person MANCHIKANTI KRISHNAKISHORE    schedule 12.03.2013
comment
Да, я пришел к такому выводу. Моя идея состоит в том, чтобы хранить данные квитанции в NSUserDefaults для идентификатора продукта в качестве ключа. Затем проверьте с Apple, чтобы получить последние данные в ответ. Мой вопрос: безопасно ли хранить общий секрет в приложении? Какие потенциальные проблемы это может вызвать, если кто-то взломает устройство и получит доступ к этому общему секретному паролю? - person JimmyJammed; 12.03.2013
comment
developer.apple.com/library/ios/#releasenotes/StoreKit/ перейдите по этой ссылке, как только загрузите файл-компаньон в правом верхнем углу в файле .h #define ITC_CONTENT_PROVIDER_SHARED_SECRET @ваш секрет здесь здесь вы хотите ввести свой общий секрет это было предоставлено яблоком - person MANCHIKANTI KRISHNAKISHORE; 12.03.2013