public override void UpdatedTransactions(SKPaymentQueue queue, SKPaymentTransaction[] transactions) { foreach (SKPaymentTransaction transaction in transactions) { try { switch (transaction.TransactionState) { case SKPaymentTransactionState.Purchased: _inAppPurchases.CompleteTransaction(transaction); SKPaymentQueue.DefaultQueue.FinishTransaction(transaction); break; case SKPaymentTransactionState.Failed: _inAppPurchases.FailedTransaction(transaction); SKPaymentQueue.DefaultQueue.FinishTransaction(transaction); break; case SKPaymentTransactionState.Restored: _inAppPurchases.RestoreTransaction(transaction); SKPaymentQueue.DefaultQueue.FinishTransaction(transaction); break; default: break; } } catch (Exception e) { _inAppPurchases._errorSubject.OnNext(e); } } }
public override void UpdatedTransactions(SKPaymentQueue queue, SKPaymentTransaction[] transactions) { foreach (var transaction in transactions.Where(x => x != null)) { this.Log().Debug("UpdatedTransactions: " + transaction.TransactionState); try { switch (transaction.TransactionState) { case SKPaymentTransactionState.Purchased: _inAppPurchases.CompleteTransaction(transaction); SKPaymentQueue.DefaultQueue.FinishTransaction(transaction); break; case SKPaymentTransactionState.Failed: _inAppPurchases.FailedTransaction(transaction); SKPaymentQueue.DefaultQueue.FinishTransaction(transaction); break; case SKPaymentTransactionState.Restored: _inAppPurchases.RestoreTransaction(transaction); SKPaymentQueue.DefaultQueue.FinishTransaction(transaction); break; case SKPaymentTransactionState.Deferred: _inAppPurchases.DeferedTransaction(); SKPaymentQueue.DefaultQueue.FinishTransaction(transaction); break; } } catch (Exception e) { _inAppPurchases._errorSubject.OnNext(e); } } }