SKPayment не будет удалена из очереди платежей по умолчанию - PullRequest
0 голосов
/ 03 января 2012

У меня проблема в том, что, хотя я звоню [[SKPaymentQueue defaultQueue] finishTransaction: transaction];, платеж не будет удален из очереди по умолчанию.

Я установил платежный сервер в очереди платежей по умолчанию.Когда мой наблюдатель платежа подключается к очереди платежей по умолчанию, он вызывает метод наблюдателей

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

и вынуждает транзакцию «выкупаться» (не восстанавливается !!).кто-нибудь поможет?

Ответы [ 2 ]

1 голос
/ 03 января 2012

Хорошо, я понял.

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

Итак, что мне помогло, так это то, что в методе:

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

после покупки транзакции я удаляю транзакцию из очереди, указанной в методе делегата.

Вот и все!Возможно очередь была все еще от покупки, которую я не закончил.

Может, кому-то это поможет !!

0 голосов
/ 04 января 2012

finishTransaction: метод не работает во время покупки.(вызывая addPayment: ~actionState будет иметь значение «SKPaymentTransactionStatePurchaced» или «SKPaymentTransactionStateFailed»)

Транзакции в очереди по умолчанию не будут обрабатываться, даже если приложение завершено.При отсутствии наблюдателя транзакции очередь по умолчанию приостанавливает все транзакции.При наличии наблюдателя транзакции очередь по умолчанию возобновляет все транзакции.Вот почему причина «повторной покупки».

Я думаю, что нет возможности отменить транзакции.

Вы должны отключить userInteractionEnabled во всех контроллерах во время покупки.

Делает этопомогает вам?Извините за мой дешевый английский.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...