public async Task <string> TokenizeCard(string panNumber = "4111111111111111", string expirationMonth = "12", string expirationYear = "2018", string cvv = null) { payTcs = new TaskCompletionSource <string>(); if (CanPay) { var cardClient = new BTCardClient(apiClient: braintreeClient); var card = new BTCard(panNumber, expirationMonth, expirationYear, cvv); cardClient.TokenizeCard(card, (BTCardNonce tokenizedCard, Foundation.NSError error) => { if (error == null) { OnTokenizationSuccessful?.Invoke(this, tokenizedCard.Nonce); payTcs.TrySetResult(tokenizedCard.Nonce); } else { OnTokenizationError?.Invoke(this, error.Description); payTcs.TrySetException(new Exception(error.Description)); } }); } else { OnTokenizationError?.Invoke(this, "Platform is not ready to accept payments"); payTcs.TrySetException(new Exception("Platform is not ready to accept payments")); } return(await payTcs.Task); }
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)); } } }); }