Для моих незавершенных транзакций из-за прерываний (входящий звонок и т. Д.) Я получаю обновления при повторном запуске приложения, когда добавляю наблюдателя в очередь платежей.Но как мне узнать, какая транзакция отправляется по проводам?Я пробовал это
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchasing:
//Show a loading View
NSLog(@"Purchase Ongoing");
break;
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
break;
}
}
-(void) completeTransaction:(SKPaymentTransaction *) transaction
{
NSString *productIdentifier = transaction.originalTransaction.payment.productIdentifier;
NSLog (productIdentifier);
//this line doesn't log anything. I run it in debug mode and I see productIdentifier as InvalidCFString (0x0). I guess it's nill.
}
Это потому, что я не смог правильно завершить транзакцию до того, как мое приложение было убито.После убийства я получаю сообщение о том, что ваша покупка в приложении была успешной от Apple.Просто я не смог завершить транзакцию до того, как мое приложение было убито.В то время транзакция продолжалась.Попытка принудительно завершить транзакцию до того, как приложение будет убито, приводит к сбою приложения, говорящему «Не удается завершить текущую транзакцию», поскольку я еще не получил уведомление SKPaymentTransactionStatePurchased.
Теперь, когда я перезапускаюсь, я получаю некоторый ответ, ноЯ не могу прочитать его и разблокировать необходимые мне функции, так как сумма уже была списана с учетной записи пользователя itunes.Как с этим справиться?
Заранее спасибо.