private void OnPurchaseSuccess(SKPayment id) { if (_actionSource != null) _actionSource.TrySetResult(true); }
public override bool ShouldAddStorePayment(SKPaymentQueue queue, SKPayment payment, SKProduct product) { return(onShouldAddStorePayment?.Invoke(queue, payment, product) ?? false); }
private void OnPurchaseError(SKPayment id, Exception e) { if (_actionSource != null) _actionSource.TrySetException(e); }
public void PurchaseProduct(string appStoreProductId) { SKPayment payment = SKPayment.PaymentWithProduct(products[0]); SKPaymentQueue.DefaultQueue.AddPayment(payment); }
Task <SKPaymentTransaction> PurchaseAsync(string productId) { var tcsTransaction = new TaskCompletionSource <SKPaymentTransaction>(); Action <SKPaymentTransaction, bool> handler = null; handler = new Action <SKPaymentTransaction, bool>((tran, success) => { if (tran?.Payment == null) { return; } // Only handle results from this request if (productId != tran.Payment.ProductIdentifier) { return; } // Unsubscribe from future events paymentObserver.TransactionCompleted -= handler; if (success) { tcsTransaction.TrySetResult(tran); return; } var errorCode = tran?.Error?.Code ?? -1; var description = tran?.Error?.LocalizedDescription ?? string.Empty; var error = PurchaseError.GeneralError; switch (errorCode) { case (int)SKError.PaymentCancelled: error = PurchaseError.UserCancelled; break; case (int)SKError.PaymentInvalid: error = PurchaseError.PaymentInvalid; break; case (int)SKError.PaymentNotAllowed: error = PurchaseError.PaymentNotAllowed; break; case (int)SKError.ProductNotAvailable: error = PurchaseError.ItemUnavailable; break; case (int)SKError.Unknown: error = PurchaseError.GeneralError; break; case (int)SKError.ClientInvalid: error = PurchaseError.BillingUnavailable; break; } tcsTransaction.TrySetException(new InAppBillingPurchaseException(error, description)); }); paymentObserver.TransactionCompleted += handler; var payment = SKPayment.CreateFrom(productId); SKPaymentQueue.DefaultQueue.AddPayment(payment); return(tcsTransaction.Task); }
public void Purchase() { SKPayment payment = SKPayment.PaymentWithProduct(this.details); SingleManager.PaymentQueue.AddPayment(payment); }
public override bool ShouldAddStorePayment(SKPaymentQueue queue, SKPayment payment, SKProduct product) { return(true); }
bool OnShouldAddStorePayment(SKPaymentQueue queue, SKPayment payment, SKProduct product) { // true in app purchase is initiated, false cancels it. // you can check if it was already purchased. return(true); }
private void OnPurchaseSuccess(SKPayment id) { _actionSource?.TrySetResult(true); }
private void OnPurchaseError(SKPayment id, Exception e) { _actionSource?.TrySetException(e); }
// // kick off the upgrade transaction // public void PurchaseProUpgrade() { SKPayment payment = SKPayment.PaymentWithProduct(InAppPurchaseProUpgradeProductId); SKPaymentQueue.DefaultQueue.AddPayment(payment); }
bool OnShouldAddStorePayment(SKPaymentQueue queue, SKPayment payment, SKProduct product) { SettingsService.IsPro = true; SettingsService.NeedsProSync = true; return(true); }