Ejemplo n.º 1
0
 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);
        }
Ejemplo n.º 3
0
        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);
        }