2017-02-20 8 views
0

Apple предлагает использовать SKPaymentQueue.default(). FinishTransaction (транзакция) только тогда, когда App предоставляет функциональность. Итак, в случае, когда transactionStatus == .purchased Я отправляю запрос на мой сервер. Но что делать, если я получаю некоторый сбой (или сетевые сбои)? Я хочу отклонить текущую транзакцию. Но если я сделаю SKPaymentQueue.default(). FinishTransaction (transaction) Я завершу транзакцию, что означает успешную оплату (но это не так)Отклонить транзакцию в StoreKit

Как я могу отклонить транзакцию здесь?

+0

Если вы не можете завершить транзакцию, просто не называйте 'finishTransaction'. Транзакция по-прежнему будет находиться в состоянии ожидания и снова будет представлена ​​вашему наблюдателю. С точки зрения пользователя я бы посоветовал вам дать некоторую обратную связь и дать пользователю возможность повторить попытку или сообщить им, что позднее они должны использовать кнопку «восстановить», чтобы повторить попытку. – Paulw11

ответ

0

Метод SKPaymentQueue.default(). FinishTransaction (transaction) просто удалит транзакцию из очереди транзакций, не завершая транзакцию. Правильный способ удалить транзакцию из очереди транзакций по мере ее отказа & больше не требуется для выполнения транзакции.

Вы также можете найти тот же подход к внедрению в образце Apple storeKit. Вы можете проверить по пути к файлу: iOSInAppPurchases/iOSInAppPurchases/StoreObserver.m

 Смежные вопросы

  • Нет связанных вопросов^_^