public override void GetNoncenBrainTree(BrainTreeCard brainTreeCard, Action <object> action) { BTAPIClient BTAPIClient = new BTAPIClient(brainTreeCard.Token); BTCardClient BTCardClient = new BTCardClient(BTAPIClient); BTCard BTCard = new BTCard(); BTCard.Number = brainTreeCard.CardNumber; BTCard.Cvv = brainTreeCard.Cvv; BTCard.PostalCode = brainTreeCard.PostalCode; BTCard.ExpirationYear = brainTreeCard.ExpirationDate.ToString("yyyy"); BTCard.ExpirationMonth = brainTreeCard.ExpirationDate.ToString("MM"); BTCard.ShouldValidate = false; BTCardClient.TokenizeCard(BTCard, (arg1, arg2) => { if (arg1 != null && !string.IsNullOrEmpty(arg1.Nonce)) { if (action != null) { action(arg1.Nonce); } } else { if (action != null) { action(new Exception(arg2.LocalizedFailureReason + "\n" + arg2.LocalizedDescription)); } } }); }
async Task <CreditCardData> SetupCreditCard() { try { var token = Shared.APIs.IAccounts.GetPaymentGatewayToken(); BrainTreeCard brainTreeCard = new BrainTreeCard(); brainTreeCard.Token = token; brainTreeCard.CardNumber = creditCardNumberEntry.Text.Replace(" ", ""); brainTreeCard.ExpirationDate = DateTime.ParseExact(EntryMMYY.Text, FormatDate, null); brainTreeCard.PostalCode = EntryPostalCode.Text; brainTreeCard.Cvv = EntryCvv.Text; var tcs = new TaskCompletionSource <CreditCardData>(); mAppServices.GetNoncenBrainTree(brainTreeCard, async(obj) => { if (obj is string && !string.IsNullOrEmpty(obj as string)) { try { var paymentNonce = obj as string; CreditCardData paymentAccountData = new CreditCardData(); paymentAccountData.PaymentNonce = paymentNonce; tcs.SetResult(paymentAccountData); } catch (Exception ex) { var notificator = DependencyService.Get <IToastNotificator>(); await notificator.Notify(ToastNotificationType.Error, AppResources.PaymentMethodTitle, ex.Message, TimeSpan.FromSeconds(5)); System.Diagnostics.Debug.WriteLine("Exception occured When Add Payment Method : " + ex.Message); tcs.SetCanceled(); } } else { tcs.SetCanceled(); } }); return(await tcs.Task); } catch (Exception ex) { var notificator = DependencyService.Get <IToastNotificator>(); await notificator.Notify(ToastNotificationType.Error, AppResources.PaymentMethodTitle, ex.Message, TimeSpan.FromSeconds(5)); System.Diagnostics.Debug.WriteLine("Exception occured When Add Payment Method : " + ex.Message); } return(null); }
public override void GetNoncenBrainTree(BrainTreeCard brainTreeCard, Action <object> action) { try { BraintreeFragment mBraintreeFragment = BraintreeFragment.NewInstance(MainActivity, brainTreeCard.Token); PaymentMethodNonceListener paymentMethodNonceListener = new PaymentMethodNonceListener(); paymentMethodNonceListener.Callback += (sender, e) => { if (e is PaymentMethodNonce) { string nouce = (e as PaymentMethodNonce).Nonce; action(nouce); } else { if (action != null) { action(e); } } }; mBraintreeFragment.AddListener(paymentMethodNonceListener); var cardBuilder = new CardBuilder() .CardNumber(brainTreeCard.CardNumber) .Cvv(brainTreeCard.Cvv) .PostalCode(brainTreeCard.PostalCode) .ExpirationDate(brainTreeCard.ExpirationDate.ToString("MM/yyyy")); cardBuilder.Validate(false); Card.Tokenize(mBraintreeFragment, cardBuilder); } catch (Exception e) { ExceptionHandler.Catch(e); } }