Потеря подключения до получения квитанции о покупке от Apple Покупка в приложении

Я реализовал покупку в приложении в своем приложении. Итак, что я делаю, так это то, что после того, как пользователь завершает оплату в магазине приложений, управление переходит к

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions

затем я обновляю квитанцию ​​​​о покупке на нашем сервере. Остальные операции выполняет сервер.

Но один из наших пользователей столкнулся с проблемой, когда он завершил платеж, но потерял подключение к Интернету до того, как был вызван вышеуказанный метод. В результате наше приложение не знает о платеже.

Я знаю, что квитанция хранится в устройстве. Но правильно ли отправлять квитанцию ​​​​на сервер с устройства каждый раз, когда пользователь использует приложение?


person Prajyot    schedule 27.02.2018    source источник


Ответы (1)


Ну, что я сделал, чтобы избежать этого, так это сохранить чек (например, логическое значение: transactionInProgress), когда транзакция начинается, и когда я отправляю данные на сервер, я меняю значение на «NO».

Таким образом, в следующий раз, когда приложение подключается. просто проверьте, был ли проверен transactionInProgress, если это так, то транзакция выполнялась, и вы можете получить квитанцию, которая должна быть сохранена SKPaymentTransactions, используя

NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
if (!receipt) { /* No local receipt -- handle the error. */ }
person Geet    schedule 27.02.2018