После успешной покупки я сохраняю квитанцию + идентификатор транзакции в NSUserDefaults
. Та же информация отправляется на сервер для ведения учета.
Позже (по запросу), когда пользователь захочет загрузить контент с моего собственного сервера, мое приложение отправит на сервер квитанцию + идентификатор транзакции. Он найдет сохраненную квитанцию по идентификатору транзакции, отправленную из приложения, и проверит как сохраненные, так и новые квитанции в Apple. Если некоторые ключи совпадают, предоставьте загружаемый контент.
Однако в настоящее время достать NSUserDefaults
и извлечь квитанцию + идентификатор транзакции несложно. Даже если я помещу информацию в связку ключей, можно получить квитанцию из интернет-соединения.
Теперь, если у кого-то будет квитанция + идентификатор транзакции, он сможет отправить запрос на мой сервер и получить контент с любого ПК. Как я могу исправить эту логику без использования криптографии?