Проверка квитанции на стороне сервера для нерасходуемых продуктов в iOS7 и устаревшая транзакцияReceipt

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

Сейчас мы работаем так: берем свойство transactionReceipt из объекта SKPaymentTransaction и отправляем его на сервер для проверки.

Из того, что я мог понять из других вопросов, кажется, что квитанция теперь хранится в одном месте, а именно:

[[NSBundle mainBundle] appStoreReceiptURL];

Здесь есть несколько вещей, которые я не понимаю:

  1. Будет ли теперь один чек на все купленные товары?
  2. Если да, то этот файл растет, растет и растет?
  3. Если я хочу отправлять на сервер отдельные чеки для отдельных товаров, как мне это сделать?
  4. Единственный способ постоянно отправлять на сервер полный файл?

Очень смущен этим, любая помощь будет принята с благодарностью.


person gillyD    schedule 03.10.2013    source источник
comment
У меня та же проблема: файл чека растет с увеличением количества покупок. Вы нашли какое-нибудь альтернативное решение??   -  person Anil Sivadas    schedule 06.07.2015


Ответы (1)


Из того, что мне удалось собрать из документации Apple.

1) На все купленные товары действует один чек. Чтобы выполнить проверку на стороне сервера, вы отправляете всю квитанцию ​​​​на свой сервер, который направляет ее в Apple для проверки. См. этот пост на форумах разработчиков Apple (начиная с комментария 13) https://devforums.apple.com/thread/193893?tstart=0

2) Нерасходники останутся в квитанции навсегда, так что да она будет расти и расти. Расходные материалы лениво удаляются из квитанции после завершения с помощью вызова finishTransaction. См. https://devforums.apple.com/message/876265#876265.

3) Способ iOS6 циклически проходить через updatedTransactions и отправлять отдельные квитанции на ваш сервер для проверки, кажется, расходится с новым дизайном iOS7. В этом сообщении на форумах разработчиков Apple предлагается «отправить весь список транзакций на сервер вместе с квитанцией. Когда квитанция будет проверена, доставить все продукты и завершить все транзакции».» https://devforums.apple.com/message/897870#897870

4) Похоже, это действительно так.

Если вы считаете, что документации по iOS7 не хватает, вы можете отправить отчет об ошибке в Apple.

person Byron    schedule 21.10.2013
comment
Спасибо за ответы! - person gillyD; 11.11.2013