Подтвердить что ты не робот

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

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

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

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

[[NSBundle mainBundle] appStoreReceiptURL];

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

  • Есть ли еще одна квитанция для всех приобретенных продуктов?
  • Если да, то этот файл растет, растет и растет?
  • Если я хочу отправить единичные квитанции для отдельных продуктов на сервер, как я могу?
  • Это единственный способ отправить полный файл на сервер все время?

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

4b9b3361

Ответ 1

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

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

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

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

4) Это действительно так.

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