Прямо сейчас, когда я отправляю квитанцию на сервер песочницы (sandbox.itunes.apple.com) для одной транзакции, я возвращаю информацию обо всех связанных с транзакциями с учетной записью Apple. Это ожидаемое поведение? Кто-нибудь еще переживает это?Сервер для песочницы для покупки приложений, возвращающий несколько транзакций для одной квитанции
Сервер для песочницы для покупки приложений, возвращающий несколько транзакций для одной квитанции
ответ
Я нашел ответ на мой вопрос здесь: iOS Server Side Validation - receipt types
Это ожидаемое поведение.
Да, квитанция содержит информацию обо всех транзакциях, сделанных приложением. Но вы должны рассмотреть очень важный вопрос:
в-приложение покупки квитанция расходуемого продукта добавляется в квитанции, когда покупка сделана. Он хранится в квитанции до , и ваше приложение завершает эту транзакцию. После этого момента он будет удален из квитанции при следующем обновлении квитанции, например, , когда пользователь совершит другую покупку, или если ваше приложение явно обновляет квитанцию.
Квитанция о покупке в приложении для нерасходуемого продукта, подписка на автоматическое возобновление, подписка на возобновление подписки или бесплатная подписка остается в квитанции на неопределенный срок.
Когда состояние транзакции обновлено, он уведомит объект, зарегистрированный как SKPaymentTransactionObserver, путем вызова метода - paymentQueue: updatedTransactions:. После этого вы должны посмотреть состояние транзакции, и если оно «куплено», вы должны сделать приобретенный товар доступным для пользователя. –
Обновленная версия SKPaymentTransaction содержит много информации о транзакции, включая SKPayment, которая имеет идентификатор продукта и другие полезные свойства. –
После того, как ваш сервер получит ответ от Apple, вы должны проанализировать весь ответ и соответствующим образом обновить модель своего сервера. Вы не можете получить только измененную часть квитанции. –