public void BuyBeer (BeerPaymentViewModel beerPaymentModel) { PaymentViewModel judoModel = new PaymentViewModel () { Amount = beerPaymentModel.GetSubTotal (), Currency = "GBP", ConsumerReference = "ImHereForTheBeer01", Card = new CardViewModel () }; JudoSuccessCallback successCallback = SuccessPayment; JudoFailureCallback failureCallback = FailurePayment; if (String.IsNullOrEmpty (Client.Instance.PaymentToken.CardToken)) { Judo.Instance.Payment (judoModel, successCallback, failureCallback); } else { TokenPaymentViewModel tokenModel = new TokenPaymentViewModel () { Amount = beerPaymentModel.GetSubTotal (), Currency = "GBP", ConsumerReference = "ImHereForTheBeer01", Token = Client.Instance.PaymentToken.CardToken, ConsumerToken = Client.Instance.PaymentToken.ConsumerToken, LastFour = Client.Instance.PaymentToken.CardLastfour, CardType = (CardType)Client.Instance.PaymentToken.CardType }; Judo.Instance.TokenPayment (tokenModel, successCallback, failureCallback); } }
PaymentViewModel GetCardViewModel () { var cardPayment = new PaymentViewModel { Amount = 4.5m, ConsumerReference = consumerRef, Currency = "GBP", // Non-UI API needs to pass card detail Card = new CardViewModel { CardNumber = cardNumber, CV2 = cv2, ExpireDate = expiryDate, PostCode = addressPostCode, CountryCode = ISO3166CountryCodes.UK } }; return cardPayment; }
/// <summary> /// Process a RegisterCard /// </summary> /// <param name="registerCard">TokenPaymentViewModel to pass Amount and Token detail</param> /// <param name="success">Callback for success transaction</param> /// <param name="failure">Callback for fail transaction</param> /// <param name="navigationController">Navigation controller from UI this can be Null for non-UI Mode API</param> public static void RegisterCard (PaymentViewModel registerCard, SuccessCallback success, FailureCallback failure, UINavigationController navigationController) { var innerModel = registerCard.Clone (); if (UIMode && navigationController == null) { var error = new JudoError { Exception = new Exception ("Navigation controller cannot be null with UIMode enabled.") }; failure (error); } else { _judoSdkApi.RegisterCard(innerModel, success, failure, navigationController); } }