public ActionResult Payment(PaymentVM paymentVM) { if (ModelState.IsValid) { var authNetAccountInfo = new AuthorizeNetAccount() { AuthNetLoginID = "82P856deAj", AuthNetTransKey = "48PbEFXx332B2qL3", IsTestMode = true }; var response = AuthorizeCreditCard.Payment(authNetAccountInfo, paymentVM); return(View("PaymentResponse", response)); } return(View()); }
public static PaymentResponseVM Payment(AuthorizeNetAccount authInfo, PaymentVM payment) { if (authInfo.IsTestMode) { ApiOperationBase <ANetApiRequest, ANetApiResponse> .RunEnvironment = AuthorizeNet.Environment.SANDBOX; } else { ApiOperationBase <ANetApiRequest, ANetApiResponse> .RunEnvironment = AuthorizeNet.Environment.PRODUCTION; } PaymentResponseVM paymentResponse = new PaymentResponseVM(); ApiOperationBase <ANetApiRequest, ANetApiResponse> .MerchantAuthentication = new merchantAuthenticationType() { name = authInfo.AuthNetLoginID, ItemElementName = ItemChoiceType.transactionKey, Item = authInfo.AuthNetTransKey, }; var creditCard = new creditCardType { cardNumber = payment.CardNumber.ToString(), expirationDate = payment.ExpirationDate.ToString(), cardCode = payment.SecurityCode.ToString() }; var billingAddress = new customerAddressType { firstName = payment.FirstName, lastName = payment.LastName, company = payment.Company, address = payment.Address, city = payment.City, state = payment.State, zip = payment.Zip.ToString(), email = payment.Email }; var paymentType = new paymentType { Item = creditCard }; var transactionRequest = new transactionRequestType { transactionType = transactionTypeEnum.authOnlyTransaction.ToString(), amount = payment.Amount, payment = paymentType, billTo = billingAddress }; var request = new createTransactionRequest { transactionRequest = transactionRequest }; createTransactionResponse response = new createTransactionResponse(); try { createTransactionController controller = new createTransactionController(request); controller.Execute(); response = controller.GetApiResponse(); } catch (Exception ex) { paymentResponse.ErrorMessage = ex.Message; return(paymentResponse); } if (response != null) { if (response.messages.resultCode == messageTypeEnum.Ok) { if (response.transactionResponse.messages != null) { paymentResponse.TransactionID = response.transactionResponse.transId; paymentResponse.ResponseCode = response.transactionResponse.responseCode; paymentResponse.MessagesCode = response.transactionResponse.messages[0].code; paymentResponse.MessageDescription = response.transactionResponse.messages[0].description; paymentResponse.AuthorizationCode = response.transactionResponse.authCode; } else { if (response.transactionResponse.errors != null) { paymentResponse.ErrorCode = response.transactionResponse.errors[0].errorCode; paymentResponse.ErrorMessage = response.transactionResponse.errors[0].errorText; } } } else { if (response.transactionResponse != null && response.transactionResponse.errors != null) { paymentResponse.ErrorCode = response.transactionResponse.errors[0].errorCode; paymentResponse.ErrorMessage = response.transactionResponse.errors[0].errorText; } else { paymentResponse.ErrorCode = response.transactionResponse.errors[0].errorCode; paymentResponse.ErrorMessage = response.transactionResponse.errors[0].errorText; } } } return(paymentResponse); }
public static IPaymentProvider CreateProvider(PaymentProviderType type, string providerXML) { IPaymentProvider provider = null; switch (type) { case PaymentProviderType.EPayAccount: provider = new ePayAccount(); break; case PaymentProviderType.NationalBankcardSystem: provider = new NationalBankcardAccount(); break; case PaymentProviderType.AuthorizeNetAccount: provider = new AuthorizeNetAccount(); break; case PaymentProviderType.USAePayAccount: provider = new USAePayAccount(); break; case PaymentProviderType.LitleCorpAccount: provider = new LitleCorpAccountAccount(); break; case PaymentProviderType.PayPalProFlowAccount: provider = new PayPalProFlowAccount(); break; case PaymentProviderType.OrbitalChasePaymentechAccount: provider = new OrbitalChasePaymentechAccount(); break; case PaymentProviderType.PayPalAdaptivePayment: provider = new PayPalAdaptivePaymentAccount(); break; case PaymentProviderType.PayPalExpressCheckout: provider = new PayPalExpressCheckoutAccount(); break; case PaymentProviderType.PayPalDirectPayment: provider = new PayPalDirectPayment(); break; case PaymentProviderType.DataPakAccount: provider = new DataPakAccount(); break; case PaymentProviderType.PaymentX: provider = new PaymentX(); break; case PaymentProviderType.Cielo: provider = new Cielo(); break; default: break; } if (provider == null) { throw new ApplicationException("Provider " + type.ToString() + " is not implemented"); } provider.Initialize(XElement.Parse(providerXML)); return(provider); }