public override Response PerformRequest(Request request)
        {
            Response response = new Response();

            if (gatewaySettings == null)
            {
                //Load settings if they have not been loaded
                OrbitalChasePayment.GetSettings();
            }
            PaymentechGateway server = new PaymentechGateway();

            server.Url = objProvider.transactionUrl;
            NewOrderRequestElement authBean = new NewOrderRequestElement();

            //Default values coming from config file.
            authBean.merchantID   = objProvider.MerchantId;
            authBean.terminalID   = objProvider.TerminalId;
            authBean.industryType = objProvider.IndustryType;
            authBean.bin          = objProvider.Bin;

            //Specific values per customer.
            authBean.orderID         = request.InvoiceNumber;
            authBean.transType       = request.RequestType.ToString();
            authBean.amount          = (request.Amount * 100).ToString();
            authBean.ccAccountNum    = request.CardNumber;
            authBean.ccExp           = request.ExpireDate;
            authBean.ccCardVerifyNum = request.CardCvv;
            authBean.avsName         = request.FirstName + " " + request.LastName;
            authBean.avsAddress1     = request.Address1;
            authBean.avsCity         = request.City;
            authBean.avsZip          = request.ZipCode;
            authBean.avsCountryCode  = request.Country;
            authBean.customerPhone   = request.Phone;
            authBean.customerName    = request.FirstName + " " + request.LastName;
            authBean.customerEmail   = request.Email;


            try
            {
                NewOrderResponseElement responseBean =
                    server.NewOrder(authBean);
                Console.WriteLine("ProcStatus: " +
                                  responseBean.procStatus);
                Console.WriteLine("ApprovalStatus: " +
                                  responseBean.approvalStatus);

                if (responseBean.respCode.Equals("00") && responseBean.approvalStatus.Equals("1"))
                {
                    response.ResponseType = TransactionResponseType.Approved;
                }
                else if (responseBean.approvalStatus.Equals("0"))
                {
                    response.ResponseType = TransactionResponseType.Denied;
                }
                else
                {
                    response.ResponseType = TransactionResponseType.Error;
                }
                response.ReasonText    = responseBean.respCodeMessage;
                response.TransactionID = responseBean.txRefNum;
                response.AuthCode      = responseBean.authorizationCode;
                response.AvsResponse   = TransactionAvsResponse.Match;
            }
            catch (System.Web.Services.Protocols.SoapException ex)
            {
                Console.WriteLine(ex.Message);
                response.ResponseType = TransactionResponseType.Error;
            }
            return(response);
        }
Пример #2
0
        protected Response BuildRequest(Request request)
        {
            Response          response = new Response();
            PaymentechGateway server   = new PaymentechGateway();

            server.Url = gatewaySettings.TransactionURL;
            NewOrderRequestElement authBean = new NewOrderRequestElement();

            //Default values coming from config file.
            authBean.merchantID   = gatewaySettings.MerchantId;
            authBean.terminalID   = gatewaySettings.TerminalId;
            authBean.industryType = gatewaySettings.IndustryType;
            authBean.bin          = gatewaySettings.Bin;
            authBean.version      = gatewaySettings.Version;
            authBean.transType    = gatewaySettings.RequestType;
            if (gatewaySettings.User.Length > 0)
            {
                authBean.orbitalConnectionUsername = gatewaySettings.User;
            }
            if (gatewaySettings.Password.Length > 0)
            {
                authBean.orbitalConnectionPassword = gatewaySettings.Password;
            }
            //Specific values per customer.
            authBean.orderID         = request.InvoiceNumber;
            authBean.amount          = (request.Amount * 100).ToString();
            authBean.ccAccountNum    = request.CardNumber;
            authBean.ccExp           = request.ExpireDate.ToString("yyyyMM");
            authBean.ccCardVerifyNum = request.CardCvv;
            authBean.avsName         = request.FirstName + " " + request.LastName;
            authBean.avsAddress1     = request.Address1;
            authBean.avsCity         = request.City;
            authBean.avsZip          = request.ZipCode;
            authBean.avsCountryCode  = request.Country;
            authBean.customerPhone   = request.Phone;
            authBean.customerName    = request.FirstName + " " + request.LastName;
            authBean.customerEmail   = request.Email;

            response.GatewayRequestRaw = Serialize(authBean);

            try
            {
                NewOrderResponseElement responseBean =
                    server.NewOrder(authBean);

                Console.WriteLine("ProcStatus: " +
                                  responseBean.procStatus);
                Console.WriteLine("ApprovalStatus: " +
                                  responseBean.approvalStatus);

                if (responseBean.respCode.Equals("00") && responseBean.approvalStatus.Equals("1"))
                {
                    response.ResponseType = TransactionResponseType.Approved;
                }
                else if (responseBean.approvalStatus.Equals("0"))
                {
                    response.ResponseType = TransactionResponseType.Denied;
                }
                else
                {
                    response.ResponseType = TransactionResponseType.Error;
                }
                response.ReasonText         = responseBean.respCodeMessage;
                response.TransactionID      = responseBean.txRefNum;
                response.AuthCode           = responseBean.authorizationCode;
                response.MerchantDefined1   = responseBean.txRefIdx;
                response.GatewayResponseRaw = Serialize(responseBean);
            }
            catch (Exception ex)
            {
                string s = ex.Message;
                response.ResponseType = TransactionResponseType.Error;

                response.GatewayResponseRaw = "Exception message: " + ex.Message;
            }
            return(response);
        }