public Transaction_Result Refund(Refund_Details details) { try { var gateway = newClient(); Result <Transaction> Tresult; if (details.Amount.HasValue) { Tresult = gateway.Transaction.Refund(details.TransactionIndex, details.Amount.Value); } else { Tresult = gateway.Transaction.Refund(details.TransactionIndex); } Transaction_Result result = formatResult(null, Tresult); return(result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Refund(Refund_Details details) { try { var xmlString = getRefundXML(userID, details.TransactionIndex, "NA", details.Amount.Value.ToString("F2")); var xml = PostXMLTransaction("https://www.vcs.co.za/vvonline/ccxmlauth.asp", xmlString); XmlNode authResponse = xml.GetElementsByTagName("RefundResponse").Item(0); var responseNode = authResponse.SelectNodes("Response").Item(0); var refNode = authResponse.SelectNodes("Reference").Item(0); var addResNode = authResponse.SelectNodes("AdditionalResponseData").Item(0); var approved = responseNode.InnerText.Contains("APPROVED") && !responseNode.InnerText.Contains("NOT"); var result = new Transaction_Result { isApproved = approved, ApprovalCode = approved ? responseNode.InnerText : "", TransactionIndex = refNode.InnerText, ProcessorCode = addResNode.InnerText, FullRequest = xmlString, FullResponse = xml.OuterXml, hasServerError = false, ErrorCode = !approved ? responseNode.InnerText : "", ErrorText = addResNode.InnerText }; return(result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Refund(Refund_Details details) { try { var gateway = newClient(); object[] arrResults = gateway.fProcess( "01", //GatewayID MerchantUID, //MerchantUID PaymentApplicationUID, //ApplicationUID "4", //4 Credit Request //Action details.TransactionIndex, //TransactionIndex "", //Terminal "", //Mode "", //MerchantReference details.Amount.HasValue ? details.Amount.Value.ToString("F2") : "", //Amount "", //Currency "", //CashBackAmount "", //CardType "", //AccountType "", //CardNumber "", //CardHolder "", //CCVNumber "", //ExpiryMonth "", //ExpiryYear "", //Budget - 0 Straight, 1 budget "", //BudgetPeriod "", //AuthorizationNumber "", //PIN "", //DebugMode "", //eCommerceIndicator "", //verifiedByVisaXID "", //verifiedByVisaCAFF "", //secureCodeUCAF "", //UCI "", //IP Address "", //Shipping Country Code, "" //Purchase Items ID ); var results = formatResult(arrResults); string cardnumber = details.CardNumber; string last4digits = ""; if (!String.IsNullOrEmpty(cardnumber)) { Regex rgx = new Regex(@"[^\d]"); cardnumber = rgx.Replace(cardnumber, String.Empty); //removes dashes spaces, etc last4digits = cardnumber.Substring(details.CardNumber.Length - 4); } var stringwriter = new System.IO.StringWriter(); var serializer = new XmlSerializer(details.GetType()); serializer.Serialize(stringwriter, details); var fullrequest = stringwriter.ToString(); if (!String.IsNullOrEmpty(cardnumber)) { fullrequest = fullrequest.Replace(cardnumber, last4digits); } if (!String.IsNullOrEmpty(details.CVV)) { fullrequest = fullrequest.Replace(details.CVV, "***"); } results.FullRequest = fullrequest; return(results); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Refund(Refund_Details details) { try { var gateway = newClient(); DoTransactionResponseMessage gateWayResult = gateway.doTransaction( "ONE_ZERO", SafeKey, transactionType.CREDIT, authenticationType.NA, new additionalInfo { merchantReference = "REFUND-" + details.TransactionIndex, payUReference = details.TransactionIndex }, null, new basket { amountInCents = (details.Amount * 100).ToString(), currencyCode = details.CurrencyCode }, null, new creditCard[] { new creditCard { amountInCents = (details.Amount * 100).ToString(), } }, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ); var results = gateWayResult; if (results.successful) { return(new Transaction_Result { isApproved = true, ApprovalCode = results.resultCode, ResultCode = results.resultCode, ResultText = results.resultMessage, TransactionIndex = results.payUReference, hasServerError = false, FullRequest = getXmlString(details), FullResponse = getXmlString(results) }); } else { return(new Transaction_Result { isApproved = false, hasServerError = false, ErrorCode = results.resultCode, ErrorText = results.resultMessage, FullResponse = getXmlString(results), FullRequest = getXmlString(details) }); } } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Refund(Refund_Details details) { try { var xmlString = getRefundXML(PayGateID, Password, details.TransactionIndex, details.Amount.HasValue ? (details.Amount * 100).ToString() : ""); var xml = GatewayUtils.PostXMLTransaction(url, xmlString); XmlNode protocol = xml.GetElementsByTagName("protocol").Item(0); XmlNode errorNode = protocol.SelectNodes("errorrx").Item(0); var reqXmlDoc = new XmlDocument(); reqXmlDoc.LoadXml(xmlString); var reqstringwriter = new System.IO.StringWriter(); reqXmlDoc.Save(reqstringwriter); var respstringwriter = new System.IO.StringWriter(); xml.Save(respstringwriter); if (errorNode == null) { XmlNode successNode = protocol.SelectNodes("refundrx").Item(0); string transactionID = successNode.Attributes.GetNamedItem("tid").Value; //The unique reference number assign by PayGate to the original transaction. string customerReference = successNode.Attributes.GetNamedItem("cref").Value; //This is your reference number for use by your internal systems. Must be different per transaction string status = successNode.Attributes.GetNamedItem("stat").Value; //Transaction status. string statusDesc = successNode.Attributes.GetNamedItem("sdesc").Value; //Transaction status description. string resultCode = successNode.Attributes.GetNamedItem("res").Value; //Result Code string resultDesc = successNode.Attributes.GetNamedItem("rdesc").Value; //Result Code description. return(new Transaction_Result { TransactionIndex = transactionID, isApproved = status != "0" && status != "2", ApprovalCode = statusDesc, ResultCode = resultCode, ResultText = resultDesc, FullRequest = reqstringwriter.ToString(), FullResponse = respstringwriter.ToString() }); } else { string errorCode = errorNode.Attributes.GetNamedItem("ecode").Value; string errorDesc = errorNode.Attributes.GetNamedItem("edesc").Value; return(new Transaction_Result { isApproved = false, hasServerError = false, ErrorCode = errorCode, ErrorText = errorDesc, }); } } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Refund(Refund_Details details) { throw new NotImplementedException(); }
public Transaction_Result Refund(Refund_Details details) { string qs = getRefundQS(CompanyID, Outlet, details.TransactionIndex, details.Amount.Value.ToString("F2"), Username, Password, details.CardNumber, details.ExpYear.ToString(), details.ExpMonth.ToString(), details.CVV); return(PostManagerTransaction("https://manager.setcom.co.za/captures2s.cfm", qs)); }