Esempio n. 1
0
        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
                });
            }
        }
Esempio n. 2
0
        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
                });
            }
        }
Esempio n. 3
0
        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
                });
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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
                });
            }
        }
Esempio n. 6
0
        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
                });
            }
        }
Esempio n. 7
0
        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
                });
            }
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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
                });
            }
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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
        }
Esempio n. 12
0
        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
                });
            }
        }
Esempio n. 13
0
        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");
        }
Esempio n. 14
0
        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
        }
Esempio n. 15
0
        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);
        }