public async Task <IResult <ITransactionResult> > HandlePKPayment(PKPayment payment, string customerRef, NSDecimalNumber amount, ApplePaymentType type, JudoFailureCallback failure) { try { CardPaymentModel paymentmodel = new CardPaymentModel { JudoId = JudoConfiguration.Instance.JudoId, ClientDetails = _clientService.GetClientDetails(), UserAgent = _clientService.GetSDKVersion() }; var test = payment.Token.PaymentData.ToString(NSStringEncoding.UTF8); JObject jo = JObject.Parse(test.ToString()); PKPaymentModel pkModel = new PKPaymentModel() { JudoId = JudoConfiguration.Instance.JudoId, YourPaymentReference = "paymentRef12343", YourConsumerReference = customerRef, Amount = amount.ToDecimal(), ClientDetails = _clientService.GetClientDetails(), UserAgent = _clientService.GetSDKVersion(), PkPayment = new PKPaymentInnerModel() { Token = new PKPaymentTokenModel() { PaymentData = jo, PaymentInstrumentName = payment.Token.PaymentInstrumentName, PaymentNetwork = payment.Token.PaymentNetwork } } }; Task <IResult <ITransactionResult> > task = null; if (type == ApplePaymentType.Payment) { task = _judoAPI.Payments.Create(pkModel); } else if (type == ApplePaymentType.PreAuth) { task = _judoAPI.PreAuths.Create(pkModel); } if (task == null) { var judoError = new JudoError() { Exception = new Exception("Judo server did not return response. Please contact customer support") }; failure(judoError); } return(await task); } catch (Exception e) { Console.WriteLine(e.InnerException.ToString()); var judoError = new JudoError() { Exception = e }; failure(judoError); return(null); } }
public Task <IResult <ITransactionResult> > Create(PKPaymentModel pkPreAuth) { var validationError = Validate <PKPaymentModel, ITransactionResult>(PKPaymentValidator, pkPreAuth); return(validationError ?? PostInternal <PKPaymentModel, ITransactionResult>(CREATE_PREAUTH_ADDRESS, pkPreAuth)); }