public Transaction_Result Sale(Sale_Details details) { try { Transaction_Result authResult = Auth(details); if (!authResult.isApproved) { authResult.ErrorText = "Authorisation Error - " + authResult.ErrorText; return(authResult); } Transaction_Result captureResult = Capture(new AuthCapture_Details { TransactionIndex = authResult.TransactionIndex }); if (!captureResult.isApproved) { captureResult.ErrorText = "Capture Error - " + authResult.ErrorText; return(captureResult); } captureResult.TransactionIndex = authResult.TransactionIndex; return(captureResult); } 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(); 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 Sale(Sale_Details details) { try { if (string.IsNullOrWhiteSpace(details.ProviderToken) && paymentOptions.PaymentTokenize_requires_CVV) { throw new FormatException("Gateway cannot process untokenised cards, as CVV is required"); } XElement root = new XElement("DemandRequest"); XElement elem_userID = new XElement("UserId", userID); XElement elem_ref = new XElement("Reference", details.ProviderToken); XElement elem_desc = new XElement("Description", details.ProductDescription); XElement elem_amount = new XElement("Amount", details.Amount); XElement elem_m1 = new XElement("m_1", details.CustomerIdentifier); XElement elem_m2 = new XElement("m_2", details.transactionID); XElement elem_m3 = new XElement("m_3", details.accountID); XElement elem_m4 = new XElement("m_4", details.ExtRef); root.Add(elem_userID, elem_ref, elem_desc, elem_amount, elem_m1, elem_m2, elem_m3, elem_m4); var xmlString = root.ToString(); var xml = PostXMLTransaction("https://www.vcs.co.za/vvonline/ccxmldemand.asp", "?xmlMessage=" + xmlString); XmlNode authResponse = xml.GetElementsByTagName("DemandResponse").Item(0); var responseNode = authResponse.SelectNodes("Response").Item(0); var refNode = authResponse.SelectNodes("Reference").Item(0); var addResNode = authResponse.SelectNodes("AdditionalResponseData").Item(0); var resCodeNode = authResponse.SelectNodes("ResponseCode").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 = resCodeNode.InnerText, FullRequest = xmlString, FullResponse = xml.OuterXml, hasServerError = false, ErrorCode = !approved ? responseNode.InnerText : "", ErrorText = addResNode.InnerText, ProviderToken = details.ProviderToken }; return(result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
private Transaction_Result formatResult(object[] arrResults) { Transaction_Result results = new Transaction_Result(); foreach (string result in arrResults) { results.FullResponse += result; //unpack result array int delimiter = result.IndexOf("||"); string resultDefn = result.Substring(0, delimiter); string resultValue = result.Substring(delimiter + 2); if (resultDefn == "Result") { switch (resultValue) { case ("0"): { //successful results.isApproved = true; } break; case ("1"): { //successful with warning results.isApproved = true; } break; case ("-1"): { //fail results.isApproved = false; } break; } } if (resultDefn == "Error") { results.ErrorText += resultValue + " || "; } if (resultDefn == "TransactionIndex") { results.TransactionIndex = resultValue; } } results.hasServerError = false; return(results); }
public Transaction_Result Auth(Sale_Details details) { try { var xmlString = getAuthXML ( userID, details.ExtRef, "NA", details.Amount.ToString("F2"), details.CustomerFirstName + " " + details.CustomerLastName, details.CardNumber, details.CardExpiryMonth.ToString(), details.CardExpiryYear.ToString(), details.CardCCV, "", details.CurrencyCode ); var xml = PostXMLTransaction("https://www.vcs.co.za/vvonline/ccxmlauth.asp", xmlString); XmlNode authResponse = xml.GetElementsByTagName("AuthorisationResponse").Item(0); var responseNode = authResponse.SelectNodes("Response").Item(0); var refNode = authResponse.SelectNodes("Reference").Item(0); var addResNode = authResponse.SelectNodes("AdditionalResponseData").Item(0); var resCodeNode = authResponse.SelectNodes("ResponseCode").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 = resCodeNode.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 Sale(Sale_Details details) { try { //var icharge = newClient(); //nSoftwareUtils.fill_SaleRequest(ref icharge, details, false); //icharge.Sale(); //var result = nSoftwareUtils.parse_SaleResponse(ref icharge); var gateway = newClient(); TransactionRequest request = new TransactionRequest { Amount = details.Amount, OrderId = details.ExtRef, CreditCard = new TransactionCreditCardRequest { Number = details.CardNumber, ExpirationDate = formatExpiryDate(details.CardExpiryMonth, details.CardExpiryYear), CardholderName = details.CustomerFirstName + " " + details.CustomerLastName, CVV = details.CardCCV, }, Customer = new CustomerRequest { FirstName = details.CustomerFirstName, LastName = details.CustomerLastName, Phone = details.CustomerPhone, Email = details.CustomerEmail }, Options = new TransactionOptionsRequest { SubmitForSettlement = true }, }; Result <Transaction> Tresult = gateway.Transaction.Sale(request); Transaction_Result result = formatResult(request, Tresult); return(result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Void(Void_Details details) { try { var gateway = newClient(); Result <Transaction> Tresult = gateway.Transaction.Void(details.TransactionIndex); Transaction_Result result = formatResult(null, Tresult); return(result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
internal static Transaction_Result parse_Response(ref Icharge icharge) { var result = new Transaction_Result { isApproved = icharge.Response.Approved, ApprovalCode = icharge.Response.Code, ResultCode = icharge.Response.Code, ResultText = icharge.Response.Text, TransactionIndex = icharge.Response.TransactionId, ProcessorCode = icharge.Response.ProcessorCode, FullRequest = icharge.Config("RawRequest"), FullResponse = icharge.Config("RawResponse"), hasServerError = false, ErrorCode = icharge.Response.ErrorCode, ErrorText = icharge.Response.ErrorText }; return(result); }
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 }); } }
private Transaction_Result formatResult(object[] arrResults) { Transaction_Result results = new Transaction_Result(); XmlDocument xdoc = new XmlDocument(); var root = xdoc.CreateElement("response"); xdoc.AppendChild(root); foreach (string result in arrResults) { if (result == null) { continue; } //unpack result array int delimiter = result.IndexOf("||"); string resultDefn = result.Substring(0, delimiter); string resultValue = result.Substring(delimiter + 2); var elem = xdoc.CreateElement(resultDefn); elem.InnerText = resultValue; root.AppendChild(elem); if (resultDefn == "Result") { switch (resultValue) { case ("0"): { //successful results.isApproved = true; } break; case ("1"): { //successful with warning results.isApproved = true; } break; case ("-1"): { //fail results.isApproved = false; } break; } } if (resultDefn == "Error") { results.ErrorText += resultValue + " || "; } if (resultDefn == "TransactionIndex") { results.TransactionIndex = resultValue; } } results.hasServerError = false; var stringwriter = new System.IO.StringWriter(); xdoc.Save(stringwriter); results.FullResponse = stringwriter.ToString(); return(results); }
public void runTests() { var ran = new Random(); // classes var sale_details_visa_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4111 1111 1111 1111", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4242424242424242", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4111 1111 1111 1111", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5100080000000000", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5404000000000001", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5100080000000000", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_amex_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "370000200000000", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.AMERICAN_EXPRESS, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_amex_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "374200000000004", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.AMERICAN_EXPRESS, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_amex_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "370000200000000", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.AMERICAN_EXPRESS, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_diners_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "362135898197781", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.DINERS_CLUB, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; //mygate diners decline card does not work i.e. it approves //var sale_details_diners_fail = new Sale_Details { accountID = -1, customerID = -1, transactionID = -1, InvoiceNumber = "test1", CardNumber = "360569309025904", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.DINERS_CLUB, Amount = 1, CurrencyCode = "ZAR", CurrencyCodeNumeric = "840", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_diners_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "362135898197781", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.DINERS_CLUB, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; LoginTest(); // Store Payment Method // Revoke Payment Method // 3D Secure // Verify Card // AUTH var auth_tr = Auth(sale_details_visa_success).testApproved("Auth"); Auth(sale_details_visa_fail).testNotApproved("Auth"); Auth(sale_details_visa_fail_expiry).testNotApproved("Auth"); Auth(sale_details_master_success).testApproved("Auth"); Auth(sale_details_master_fail).testNotApproved("Auth"); Auth(sale_details_master_fail_expiry).testNotApproved("Auth"); Auth(sale_details_amex_success).testApproved("Auth"); Auth(sale_details_amex_fail).testNotApproved("Auth"); Auth(sale_details_amex_fail_expiry).testNotApproved("Auth"); Auth(sale_details_diners_success).testApproved("Auth"); //Auth(sale_details_diners_fail).testNotApproved("Auth"); //-mygate diners decline card does not work i.e. it approves Auth(sale_details_diners_fail_expiry).testNotApproved("Auth"); //CAPTURE var capture_tr = Capture(new AuthCapture_Details { Amount = 500, CurrencyCode = "ZAR", TransactionIndex = auth_tr.TransactionIndex }).testApproved("Capture"); //SALE var sale_tr = Sale(sale_details_visa_success).testApproved("Sale"); //REFUND Transaction_Result refund_tr = Refund(new Refund_Details { Amount = 500, CurrencyCode = "ZAR", TransactionIndex = sale_tr.TransactionIndex }).testApproved("Refund"); //VOID var auth_tr_2 = Auth(sale_details_visa_success).testApproved("Auth Void"); var void_tr = Void(new Void_Details { Amount = 500, CurrencyCode = "ZAR", TransactionIndex = auth_tr_2.TransactionIndex }).testApproved("Void"); // Credit // NOT IMPLEMENTED }
public Transaction_Result Sale(Sale_Details details) { try { Transaction_Result auth_result = Auth(details); if (auth_result.isApproved) { Transaction_Result capture_result = Capture(new AuthCapture_Details { Amount = details.Amount, TransactionIndex = auth_result.TransactionIndex }); if (capture_result.isApproved) { var authDoc = new XmlDocument(); authDoc.LoadXml(auth_result.FullRequest); var captureDoc = new XmlDocument(); captureDoc.LoadXml(capture_result.FullRequest); var mergedDoc = new XmlDocument(); var root = mergedDoc.CreateElement("Requests"); mergedDoc.AppendChild(root); var authNode = mergedDoc.CreateElement("AuthRequest"); root.AppendChild(authNode); var captureNode = mergedDoc.CreateElement("CaptureRequest"); root.AppendChild(captureNode); foreach (XmlNode node in authDoc.ChildNodes[1]) { var imported_node = mergedDoc.ImportNode(node, true); authNode.AppendChild(imported_node); } foreach (XmlNode node in captureDoc.ChildNodes[1]) { var imported_node = mergedDoc.ImportNode(node, true); captureNode.AppendChild(imported_node); } //authNode.InnerXml = authDoc.InnerXml; //captureNode.InnerXml = captureDoc.InnerXml; var stringwriter = new System.IO.StringWriter(); mergedDoc.Save(stringwriter); capture_result.FullRequest = stringwriter.ToString(); return(capture_result); } else { capture_result.ResultText = "Capture Error || " + auth_result.ResultText; capture_result.FullRequest = auth_result.FullRequest + capture_result.FullRequest; return(capture_result); } } auth_result.ResultText = "Authorisation Error || " + auth_result.ResultText; return(auth_result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public void runTests() { var ran = new Random(); var sale_details_payu_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5471196125289392", CardExpiryMonth = 10, CardExpiryYear = 2020, CardCCV = "698", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_payu_expired = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5420287453066155", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "327", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; //var sale_details_payu_cvv = new Sale_Details { accountID = -1, customerID = -1, transactionID = -1, InvoiceNumber = "test1", CardNumber = "5471196125289392", CardExpiryMonth = 10, CardExpiryYear = 2020, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", CurrencyCodeNumeric = "840", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; LoginTest(); // Store Payment Method // Revoke Payment Method // 3D Secure // Verify Card // AUTH var auth_tr = Auth(sale_details_payu_success).testApproved("Auth"); Auth(sale_details_payu_expired).testNotApproved("Auth"); //Auth(sale_details_payu_cvv).testNotApproved("Auth"); //CAPTURE var capture_tr = Capture(new AuthCapture_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = auth_tr.TransactionIndex }).testApproved("Capture"); //SALE var sale_tr = Sale(sale_details_payu_success).testApproved("Sale"); //REFUND Transaction_Result refund_tr = Refund(new Refund_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = sale_tr.TransactionIndex }).testApproved("Refund"); // Credit // NOT IMPLEMENTED //VOID var auth_tr_void = Auth(sale_details_payu_success).testApproved("Auth"); var void_tr = Void(new Void_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = auth_tr_void.TransactionIndex }).testApproved("Void"); }
public void runTests() { var ran = new Random(); // classes var sale_details_visa_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4000000000000002", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4000000000000036", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_nofunds = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4000000000000028", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4000000000000002", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5200000000000015", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5200000000000023", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; LoginTest(); // Store Payment Method // Revoke Payment Method // 3D Secure // Verify Card // AUTH var auth_tr = Auth(sale_details_visa_success).testApproved("Auth"); Auth(sale_details_visa_fail).testNotApproved("Auth"); Auth(sale_details_visa_nofunds).testNotApproved("Auth"); Auth(sale_details_visa_fail_expiry).testNotApproved("Auth"); Auth(sale_details_master_success).testApproved("Auth"); Auth(sale_details_master_fail).testNotApproved("Auth"); //CAPTURE var capture_tr = Capture(new AuthCapture_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = auth_tr.TransactionIndex }).testApproved("Capture"); //SALE sale_details_visa_success.ExtRef = "test" + ran.Next(); var sale_tr = Sale(sale_details_visa_success).testApproved("Sale"); //REFUND Transaction_Result refund_tr = Refund(new Refund_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = sale_tr.TransactionIndex }).testApproved("Refund"); // Credit // NOT IMPLEMENTED //VOID // NOT IMPLEMENTED }
private Transaction_Result formatResult(Request request, Result <Transaction> Tresult) { Transaction_Result result; if (Tresult.IsSuccess()) { Transaction transaction = Tresult.Target; result = new Transaction_Result { isApproved = true, ApprovalCode = transaction.ProcessorAuthorizationCode, ResultCode = transaction.ProcessorResponseCode, ResultText = Tresult.Message, TransactionIndex = transaction.Id, ProcessorCode = transaction.ProcessorAuthorizationCode, FullRequest = request == null ? "" : request.ToXml(), //FullResponse = Tresult._node.OuterXml(), hasServerError = false, ErrorCode = "", ErrorText = "" }; } else if (Tresult.Transaction != null) { Transaction transaction = Tresult.Transaction; result = new Transaction_Result { isApproved = false, ApprovalCode = transaction.ProcessorAuthorizationCode, ResultCode = transaction.ProcessorResponseCode, ResultText = Tresult.Message, TransactionIndex = transaction.Id, ProcessorCode = transaction.ProcessorAuthorizationCode, FullRequest = request == null ? "" : request.ToXml(), //FullResponse = Tresult._node.OuterXml(), hasServerError = false, ErrorCode = transaction.ProcessorResponseCode, ErrorText = transaction.ProcessorResponseText }; } else { string ErrorCode = ""; string ErrorText = ""; foreach (ValidationError error in Tresult.Errors.DeepAll()) { ErrorCode += error.Code + ","; ErrorText += error.Attribute + ": " + error.Message + ","; } result = new Transaction_Result { isApproved = false, ApprovalCode = "", ResultCode = "", ResultText = Tresult.Message, TransactionIndex = "", ProcessorCode = "", FullRequest = request == null ? "" : request.ToXml(), //FullResponse = Tresult._node.OuterXml(), hasServerError = false, ErrorCode = ErrorCode, ErrorText = ErrorText }; } return(result); }