#ios #in-app-purchase #receipt-validation
#iOS #покупка в приложении #получение-проверка
Вопрос:
Для Apple при покупке в приложении, похоже, мы должны наблюдать за очередью транзакций:
for (SKPaymentTransaction *transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased:
...
}
но нам также нужно подтвердить получение (проанализировав содержимое в [[NSBundle mainBundle] appStoreReceiptURL]];
). Но тогда… можем ли мы просто воспользоваться ярлыком, чтобы напрямую просмотреть квитанцию? В чем разница?
Ответ №1:
Чтобы подтвердить квитанцию, вы должны создать пользовательский сервер и отправить квитанцию на сервер. Также квитанция содержит все транзакции, и вы должны найти в ней последнюю транзакцию, это не очень простой способ показать пользователю какое-либо сообщение о покупке. Я использую транзакции для статистики и для быстрой информации, а квитанцию для подтверждения покупки.
Также вы можете использовать квитанцию для двойной проверки покупки, если квитанция не содержит соответствующей транзакции, вы можете ограничить доступ к содержимому.
Комментарии:
1. Спасибо. Знаете ли вы, что в случае транзакций с автоматическим возобновлением (скажем, ежемесячно) квитанция содержит 1 транзакцию всего или 1 в месяц?
2. В моем приложении есть автоматически возобновляемая подписка, и квитанция содержит разные транзакции за разные периоды (любое продление — это покупка). Если вам нужно определить активный период, вы должны проверить все транзакции и рассчитать период: apple.co/2I39Y29
3. Спасибо! было очень сложно найти информацию, тонны документов только для этого … сумасшедший