iOS сохраняет физический чек приложения в связке ключей?

Я хотел бы сохранить физический чек о покупке в приложении в цепочке для ключей и, таким образом, разрешить его репликацию между устройствами, когда у пользователя установлена ​​цепочка для ключей на разных устройствах.

Мой вопрос: как сохранить квитанцию ​​​​(NSData) в цепочке для ключей?

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

Любая помощь будет очень признательна.


person NeilMortonNet    schedule 01.06.2014    source источник
comment
Что это за покупка? Расходуемый, нерасходуемый или по подписке? Для нерасходуемых материалов и подписки вам необходимо предоставить функцию восстановления покупки в своем приложении с помощью API-интерфейсов покупки в приложении.   -  person Paulw11    schedule 02.06.2014
comment
@ Paulw11 Спасибо за ответ. Это непродлеваемая подписка, поэтому квитанция снова недоступна в App Store с использованием API. Таким образом, я могу сохранить дату подписки, но если я хочу проверить действительность квитанции (и проверить, не была ли она отменена), мне нужна оригинальная квитанция, чтобы я мог проверить ее на более позднем этапе. Следовательно, я сохраняю фактическую квитанцию ​​​​из пакета приложений в связке ключей.   -  person NeilMortonNet    schedule 02.06.2014
comment
Если это непродлеваемая подписка, вам не нужно беспокоиться об отмене подписки — подписки действительны до даты окончания. Отмена просто предотвращает автоматическое продление, что не является проблемой в вашем случае. Служба поддержки Apple может отменить подписку и вернуть деньги в случае, если клиент совершит ошибку (например, в случае неправильной покупки), но я бы подумал, что это происходит довольно редко. Вы можете посмотреть MKStoreKit - он хранит информацию о покупке в Keychain, но я не думаю, что он хранит фактическую квитанцию.   -  person Paulw11    schedule 02.06.2014
comment
@Paulw11 Интересно. Спасибо. Так что, в конце концов, тогда было бы нормально просто сохранить дату истечения срока действия? Другая причина, по которой я хранил квитанцию, заключалась в том, чтобы проверить целостность / действительность покупки, т. Е. Я могу проверить покупку онлайн и узнать, было ли взломано приложение.   -  person NeilMortonNet    schedule 02.06.2014
comment
Да, мошенничество является серьезной проблемой, но в этом случае серверный подход более безопасен.   -  person Paulw11    schedule 02.06.2014


Ответы (1)


Я использовал SSKeychain со встроенной возможностью синхронизации. Используя SSKeychain, затем можно преобразовать данные квитанции в строку, которая может быть сохранена как пароль в цепочке для ключей и, следовательно, преобразована обратно в данные на любом из пользовательских устройств и проверить действительность квитанции.

person NeilMortonNet    schedule 04.06.2014
comment
Как получить квитанцию ​​и как проверить ее действительность? - person Ace Green; 17.10.2015
comment
Вы заметили какие-либо проблемы с производительностью при таком подходе? Не слишком ли большой чек для хранения в связке ключей? - person Oleksii Nezhyborets; 22.06.2018