2015-12-11 3 views
0

Я застрял в решении проблемы с покупками в приложении с использованием инфраструктуры StoreKit для Mac OS. Проблема заключается в следующем:StoreKit несколько транзакций

1) Я называю метод addPayment при покупке начал

2) Тогда updatedTransactions метод, называемый дважды государственной транзакции SKPaymentTransactionStatePurchasing. И после второго вызова [[SKPaymentQueue defaultQueue] .transactions count] возвращает 2.

3) Когда покупка завершена обновленными транзакциями, называемыми в третий раз с транзакционным состоянием SKPaymentTransactionStatePurchased. И [[SKPaymentQueue defaultQueue] .transactions count] возвращает 3.

4) Затем я завершаю транзакцию с состоянием SKPaymentTransactionStatePurchased. Но в defaultQueue все еще остаются две транзакции с SKPaymentTransactionStatePurchasing. Они живы, пока приложение не прекратится. Когда я снова запускаю приложение, проблема повторяется.

Почему так много транзакций только для одного вызова addPayment? И как эта проблема может быть решена?

+0

Вы должны показать какой-либо код, или вы можете проверить мой ответ на этот вопрос, какие швы похожи на ваши. http://stackoverflow.com/questions/34167286/in-app-purchase-ios-sending-more-transactions-than-needed/34241584#34241584 – crashoverride777

ответ

0

Убедитесь вызвать метод finishTransaction после любого из ниже состояния транзакции:

1) SKPaymentTransactionStatePurchased

2) SKPaymentTransactionStateFailed

3) SKPaymentTransactionStateRestored

[[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 

Вызов finishTransaction: на транзакция удаляет ее из очереди.

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