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); }
public Response PerformValidationRequest(Request request) { Response response = new Response(); PaymentechGateway server = new PaymentechGateway(); server.Url = gatewaySettings.TransactionURL; SafetechFraudAnalysisRequestElement authBean1 = new SafetechFraudAnalysisRequestElement(); NewOrderRequestElement authBean = new NewOrderRequestElement(); //Default values coming from config file. authBean1.merchantID = gatewaySettings.MerchantId; authBean1.terminalID = gatewaySettings.TerminalId; authBean1.bin = gatewaySettings.Bin; authBean1.version = gatewaySettings.Version; if (gatewaySettings.User.Length > 0) { authBean1.orbitalConnectionUsername = gatewaySettings.User; } if (gatewaySettings.Password.Length > 0) { authBean1.orbitalConnectionPassword = gatewaySettings.Password; } //Specific values per customer. BaseElementsType bs = new BaseElementsType(); FraudAnalysisType fat = new FraudAnalysisType(); bs.orderID = request.CustomerID; bs.amount = (request.Amount * 100).ToString(); bs.ccAccountNum = request.CardNumber; bs.ccExp = request.ExpireDate.ToString("yyyyMM"); bs.ccCardVerifyNum = request.CardCvv; bs.avsName = request.FirstName + " " + request.LastName; bs.avsAddress1 = request.Address1; bs.avsCity = request.City; bs.avsZip = request.ZipCode; bs.avsState = request.State; bs.comments = request.TransactionDescription; bs.avsCountryCode = request.Country; bs.customerEmail = request.Email; bs.avsPhone = request.Phone; bs.avsDestPhoneNum = request.Phone; bs.avsDestName = request.ShipToFirstName + " " + request.ShipToLastName; bs.avsDestAddress1 = request.Address1; bs.avsDestCity = request.ShipToCity; bs.avsDestCountryCode = request.ShipToCountry; bs.avsDestZip = request.ShipToZipCode; bs.customerIpAddress = request.IPAddress; fat.fraudScoreIndicator = "1"; fat.rulesTrigger = "Y"; fat.safetechMerchantID = gatewaySettings.SafetechMerchantId; fat.cashValueOfFencibleItems = (request.Amount * 100).ToString(); authBean1.baseElements = bs; authBean1.fraudAnalysis = fat; string s = Serialize(authBean1); //System.IO.File.WriteAllText(@"c:\BatchProcesses\StonedineSafetTechTest\WriteReq.txt", s); try { SafetechFraudAnalysisResponseElement responseBean1 = server.SafetechFraudAnalysis(authBean1); string s2 = Serialize(responseBean1); response.GatewayResponseRaw = s2; response.MerchantDefined1 = s; //System.IO.File.WriteAllText(@"c:\BatchProcesses\StonedineSafetTechTest\WriteRes.txt", s2); Console.WriteLine("ProcStatus: " + responseBean1.procStatus); Console.WriteLine("ApprovalStatus: " + responseBean1.approvalStatus); Console.ReadLine(); if (responseBean1.fraudAnalysisResponse.autoDecisionResponse.ToUpper().Equals("A") && Convert.ToInt32(responseBean1.fraudAnalysisResponse.riskScore) <= 50) { response.ResponseType = TransactionResponseType.Approved; } else if (!responseBean1.fraudAnalysisResponse.autoDecisionResponse.ToUpper().Equals("A")) { response.ResponseType = TransactionResponseType.Denied; } else { response.ResponseType = TransactionResponseType.Error; } response.ReasonText = responseBean1.fraudAnalysisResponse.fraudStatusCode; response.TransactionID = responseBean1.fraudAnalysisResponse.riskInquiryTransactionID; response.AvsResponse = TransactionAvsResponse.Match; } catch (System.Web.Services.Protocols.SoapException ex) { Console.WriteLine(ex.Message); response.ResponseType = TransactionResponseType.Error; Console.ReadLine(); } return(response); }
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); }
//VOIDS a transaction public Response PerformVoidRequest(Request voidRequest) { Response response = new Response(); PaymentechGateway server = new PaymentechGateway(); server.Url = gatewaySettings.TransactionURL; ReversalElement reversalEl = new ReversalElement(); //Default values coming from config file. reversalEl.adjustedAmount = string.Empty; //Should be empty for VOID, otherwise specifiy for partial refund reversalEl.bin = gatewaySettings.Bin; reversalEl.merchantID = gatewaySettings.MerchantId; reversalEl.terminalID = gatewaySettings.TerminalId; reversalEl.bin = gatewaySettings.Bin; reversalEl.version = gatewaySettings.Version; if (gatewaySettings.User.Length > 0) { reversalEl.orbitalConnectionUsername = gatewaySettings.User; } if (gatewaySettings.Password.Length > 0) { reversalEl.orbitalConnectionPassword = gatewaySettings.Password; } reversalEl.txRefIdx = voidRequest.TransactionID; reversalEl.txRefNum = voidRequest.AuthCode; reversalEl.orderID = voidRequest.InvoiceNumber.ToString(); //Perform void request try { ReversalResponseElement reversalResponse = server.Reversal(reversalEl); Console.WriteLine("ProcStatus: " + reversalResponse.procStatus); Console.WriteLine("ApprovalStatus: " + reversalResponse.approvalStatus); if (reversalResponse.respCode.Equals("00") && reversalResponse.approvalStatus.Equals("1")) { response.ResponseType = TransactionResponseType.Approved; } else if (reversalResponse.approvalStatus.Equals("0")) { response.ResponseType = TransactionResponseType.Denied; } else { response.ResponseType = TransactionResponseType.Error; } response.ReasonText = reversalResponse.procStatusMessage; response.TransactionID = reversalResponse.txRefNum; response.GatewayResponseRaw = Serialize(reversalResponse); } catch (Exception ex) { string s = ex.Message; response.ResponseType = TransactionResponseType.Error; response.GatewayResponseRaw = "Exception message: " + ex.Message; } return(response); }