Предоставление контента для моего предмета, не подлежащего расходуемому, происходит не сразу после покупки, а по требованию, когда пользователь хочет загрузить контент. У сервера также есть процедура проверки чеков, поэтому мне нужно сохранить квитанцию, чтобы позже показать серверу для проверки и загрузки контента.Срочное получение транзакции
Я знаю, что для iOS 7.0 мне не нужно хранить квитанцию, потому что мои квитанции о покупке iAP находятся в самой квитанции о приеме, что нетрудно разобрать и получить эту информацию.
Но для iOS 6.1 или более ранней версии я могу сохранить квитанцию от транзакции в NSUserDefaults, так что позже, когда мне нужно, например, загрузить некоторый контент с самообслуживающего сервера, я могу использовать эту квитанцию для проверки этой конкретной загрузки на сервере (и то сервер отправит его на яблоко)? Является ли это законной, безопасной и общепринятой практикой хранить квитанцию?
Так что, если кто-то украдет квитанцию из 'NSUserDefaults', он может отправить ее на мой сервер и загрузить контент, который я пытался защитить. Или я чего-то не хватает? Также я не понимаю логику сохранения чека на моем сервере. Тогда что я должен держать на устройстве? что отправить с устройства на сервер, чтобы убедиться, что предоставление контента аутентифицировано? Я был бы признателен за ваши мысли выше. – Pablo
Я не думаю, что кто-то может украсть квитанцию, потому что все они связаны с этим идентификатором Apple конкретного пользователя. Кроме того, поскольку ваш расход, не потребляемый по требованию, предоставляется по требованию, я предполагаю, что вы храните данные о покупке каждого пользователя на своем сервере. Когда вы сохраняете квитанцию на своем сервере, всякий раз, когда пользователь пытается загрузить контент, вы можете проверить квитанцию, связанную с этим контентом, в качестве дополнительного уровня безопасности для вас. Это единственная причина, по которой я предложил сохранить ее на вашем сервере. –
Даже если квитанция подключена к Apple ID, имея только данные квитанции (украденные с помощью iFunbox, даже если устройство не взломанно) дадут плохим парням возможность отправить его на мой сервер для аутентификации. Нет, я не храню информацию о покупке. Мой сервер используется только как прокси-сервер между устройством и сервером проверки Apple. Я понимаю, что вы имеете в виду, просто проверьте, что квитанция действительна, проверяя дату покупки и другие поля. Но все же мы приходим к первому вопросу, когда квитанция сама украдена. Загружаемый контент можно загрузить даже с iDevice, а с ПК, используя HTTP (S) запрос. – Pablo