private void PurchaseProduct(SKProduct product, int quantity) { if (product == null) throw new ArgumentNullException("InAppPurchaseManager: Product is not valid."); try { if (observer == null) { observer = new PaymentTransactionObserver(this); SKPaymentQueue.DefaultQueue.AddTransactionObserver(observer); } if (quantity > 1) { SKMutablePayment payment = SKMutablePayment.PaymentWithProduct(product); payment.Quantity = quantity; SKPaymentQueue.DefaultQueue.AddPayment(payment); } else { SKPayment payment = SKPayment.PaymentWithProduct(product); SKPaymentQueue.DefaultQueue.AddPayment(payment); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); OnPurchaseFailed(new InAppPurchaseException("Error executing in-app purchase.", 0, ex)); } }
public override void RestorePurshases() { if (observer == null) { observer = new PaymentTransactionObserver(this); SKPaymentQueue.DefaultQueue.AddTransactionObserver(observer); } SKPaymentQueue.DefaultQueue.RestoreCompletedTransactions(); }