Ejemplo n.º 1
0
        /// <summary>
        /// Authorise payment
        /// </summary>
        /// <param name="merchant">Merchant Details</param>
        /// <param name="order">Order Details</param>
        /// <param name="card">Card Details</param>
        /// <param name="autoSettle">Auto Settle (1 or 0)</param>
        /// <param name="timestamp">Timestamp</param>
        /// <param name="comments">Comments</param>
        /// <returns>Response from realex</returns>
        public static RealAuthTransactionResponse Auth(Merchant merchant, Order order, CreditCard card, string autoSettle, string timestamp, ArrayList comments)
        {
            bool is3DSecure = false;
            _3DSecure tdSec = null;

            return Auth(merchant, order, card, autoSettle, timestamp, comments, is3DSecure, tdSec);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Cancel existing card
        /// </summary>
        /// <param name="timestamp">timestamp</param>
        /// <param name="cardRef">card ref to be cancelled</param>
        /// <param name="merchant">merchant details</param>
        /// <param name="payer">payer details</param>
        /// <returns>real vault transaction response</returns>
        public static RealVaultTransactionResponse CardCancelCard(string timestamp, string cardRef, Merchant merchant, Payer payer)
        {
            string hashInput = timestamp + "." +
                merchant.MerchantId + "." +
                payer.PayerRef + "." +
                cardRef;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString = string.Empty;
            String requestType = "card-cancel-card";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();
            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars = "\r\n";
            xmlSettings.CloseOutput = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);

                xml.WriteStartElement("card");
                {
                    xml.WriteElementString("ref", cardRef);
                    xml.WriteElementString("payerref", payer.PayerRef);
                }
                xml.WriteEndElement();

                xml.WriteElementString("sha1hash", SHA1Hash);

            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return Common.SendRealVaultRequest(xmlString);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Cancel existing card
        /// </summary>
        /// <param name="timestamp">timestamp</param>
        /// <param name="cardRef">card ref to be cancelled</param>
        /// <param name="merchant">merchant details</param>
        /// <param name="payer">payer details</param>
        /// <returns>real vault transaction response</returns>
        public static RealVaultTransactionResponse CardCancelCard(string timestamp, string cardRef, Merchant merchant, Payer payer)
        {
            string hashInput = timestamp + "." +
                               merchant.MerchantId + "." +
                               payer.PayerRef + "." +
                               cardRef;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString   = string.Empty;
            String requestType = "card-cancel-card";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();

            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars        = "\r\n";
            xmlSettings.CloseOutput         = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);

                xml.WriteStartElement("card");
                {
                    xml.WriteElementString("ref", cardRef);
                    xml.WriteElementString("payerref", payer.PayerRef);
                }
                xml.WriteEndElement();

                xml.WriteElementString("sha1hash", SHA1Hash);
            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return(Common.SendRealVaultRequest(xmlString));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Update existing card
        /// </summary>
        /// <param name="timestamp">timestamp</param>
        /// <param name="cardRef">card ref to be updated</param>
        /// <param name="merchant">merchant details</param>
        /// <param name="card">card details</param>
        /// <param name="payer">payer details</param>
        /// <returns>real vault transaction response</returns>
        public static RealVaultTransactionResponse CardUpdateCard(string timestamp, string cardRef, Merchant merchant, CreditCard card, Payer payer)
        {
            string hashInput = timestamp + "." +
                               merchant.MerchantId + "." +
                               payer.PayerRef + "." +
                               cardRef + "." +
                               card.ExpiryDate + "." +
                               card.CardNumber;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString   = string.Empty;
            String requestType = "card-update-card";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();

            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars        = "\r\n";
            xmlSettings.CloseOutput         = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);

                xml.WriteStartElement("card");
                {
                    xml.WriteElementString("ref", cardRef);
                    xml.WriteElementString("payerref", payer.PayerRef);
                    xml.WriteElementString("number", card.CardNumber);
                    xml.WriteElementString("expdate", card.ExpiryDate);
                    xml.WriteElementString("chname", card.CardholderName);
                    xml.WriteElementString("type", card.CardType);
                    if (card.CardType.Equals("SWITCH"))
                    {
                        xml.WriteElementString("issueno", card.IssueNumber.ToString());
                    }
                }
                xml.WriteEndElement();

                xml.WriteElementString("sha1hash", SHA1Hash);
            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return(Common.SendRealVaultRequest(xmlString));
        }
Ejemplo n.º 5
0
        //Payer Management
        #region Payer-New

        /// <summary>
        /// Create new payer
        /// </summary>
        /// <param name="timestamp">timestamp</param>
        /// <param name="merchant">merchant details</param>
        /// <param name="order">order details</param>
        /// <param name="payer">payer details</param>
        /// <param name="comments">comment details - can use new ArrayList()</param>
        /// <returns>transaction response</returns>
        public static RealVaultTransactionResponse PayerNew(String timestamp, Merchant merchant, Order order, Payer payer, ArrayList comments)
        {
            string hashInput =
                timestamp + "." +
                merchant.MerchantId + "." +
                order.OrderId + "." +
                "" + "." + //documentation says to put order amount in here... its only wants blank
                "" + "." + //documentation says to put order currency in here... its only wants blank
                payer.PayerRef;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString   = string.Empty;
            String requestType = "payer-new";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();

            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars        = "\r\n";
            xmlSettings.CloseOutput         = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("orderid", order.OrderId);

                //payer details
                payer.WriteXml(xml);

                xml.WriteElementString("sha1hash", SHA1Hash);

                xml.WriteStartElement("comments");
                {
                    int i = 1;
                    foreach (string s in comments)
                    {
                        xml.WriteStartElement("comment");
                        xml.WriteAttributeString("id", i.ToString());
                        xml.WriteString(s);
                        xml.WriteEndElement();
                        i++;
                    }
                }
                xml.WriteEndElement();
            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return(Common.SendRealVaultRequest(xmlString));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Authorise payment
        /// </summary>
        /// <param name="merchant">Merchant Details</param>
        /// <param name="order">Order Details</param>
        /// <param name="card">Card Details</param>
        /// <param name="autoSettle">Auto Settle (1 or 0)</param>
        /// <param name="timestamp">Timestamp</param>
        /// <param name="comments">Comments</param>
        /// <param name="is3DSecure">Is transaction 3D Secure</param>
        /// <param name="tdSecure">3D Secure details</param>
        /// <returns>Response from Realex</returns>
        public static RealAuthTransactionResponse Auth(Merchant merchant, Order order, CreditCard card, string autoSettle, string timestamp, ArrayList comments, bool is3DSecure, _3DSecure tdSecure)
        {
            string hashInput = timestamp + "." +
                               merchant.MerchantId + "." +
                               order.OrderId + "." +
                               order.OrderAmount + "." +
                               order.OrderCurrency + "." +
                               card.CardNumber;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString   = string.Empty;
            String requestType = "auth";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();

            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars        = "\r\n";
            xmlSettings.CloseOutput         = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("account", merchant.Account);

                xml.WriteElementString("orderid", order.OrderId);

                xml.WriteStartElement("amount");
                {
                    xml.WriteAttributeString("currency", order.OrderCurrency);
                    xml.WriteString(order.OrderAmount.ToString());
                }
                xml.WriteEndElement();

                card.WriteXML(xml);

                xml.WriteStartElement("autosettle");
                {
                    xml.WriteAttributeString("flag", autoSettle);
                }
                xml.WriteEndElement();

                if (is3DSecure)
                {
                    xml.WriteStartElement("mpi");
                    {
                        xml.WriteElementString("cavv", tdSecure.CAVV);
                        xml.WriteElementString("xid", tdSecure.XID);
                        xml.WriteElementString("eci", tdSecure.ECI);
                    }
                    xml.WriteEndElement();
                }

                xml.WriteElementString("sha1hash", SHA1Hash);

                xml.WriteStartElement("comments");
                {
                    int i = 1;
                    foreach (string s in comments)
                    {
                        xml.WriteStartElement("comment");
                        xml.WriteAttributeString("id", i.ToString());
                        xml.WriteString(s);
                        xml.WriteEndElement();
                        i++;
                    }
                }
                xml.WriteEndElement();
            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return(Common.SendRealAuthRequest(xmlString));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Authorise payment
        /// </summary>
        /// <param name="merchant">Merchant Details</param>
        /// <param name="order">Order Details</param>
        /// <param name="card">Card Details</param>
        /// <param name="autoSettle">Auto Settle (1 or 0)</param>
        /// <param name="timestamp">Timestamp</param>
        /// <param name="comments">Comments</param>
        /// <returns>Response from realex</returns>
        public static RealAuthTransactionResponse Auth(Merchant merchant, Order order, CreditCard card, string autoSettle, string timestamp, bool is3DSecure, _3DSecure tdSec)
        {
            ArrayList comments = new ArrayList();

            return(Auth(merchant, order, card, autoSettle, timestamp, comments, is3DSecure, tdSec));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 3D Secure Verify Digital Signature
        /// </summary>
        /// <param name="merchant">Merchant Details</param>
        /// <param name="order">Order Details</param>
        /// <param name="card">Card Details</param>
        /// <param name="tdSecure">3D Secure Details</param>
        /// <param name="timestamp">Timestamp</param>
        /// <returns>Response from Realex</returns>
        public static RealAuthTransactionResponse RealAuth3DSecureVerifySig(Merchant merchant, Order order, CreditCard card, _3DSecure tdSecure, string timestamp)
        {
            string hashInput = timestamp + "." +
                               merchant.MerchantId + "." +
                               order.OrderId + "." +
                               order.OrderAmount + "." +
                               order.OrderCurrency + "." +
                               card.CardNumber;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString   = string.Empty;
            String requestType = "3ds-verifysig";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();

            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars        = "\r\n";
            xmlSettings.CloseOutput         = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("account", merchant.Account);

                xml.WriteElementString("orderid", order.OrderId);

                xml.WriteStartElement("amount");
                {
                    xml.WriteAttributeString("currency", order.OrderCurrency);
                    xml.WriteString(order.OrderAmount.ToString());
                }
                xml.WriteEndElement();

                xml.WriteStartElement("card");
                {
                    xml.WriteElementString("number", card.CardNumber);
                    xml.WriteElementString("expdate", card.ExpiryDate);
                    xml.WriteElementString("type", card.CardType);
                    xml.WriteElementString("chname", card.CardholderName);
                }
                xml.WriteEndElement();

                xml.WriteElementString("pares", tdSecure.PaRes);

                xml.WriteElementString("sha1hash", SHA1Hash);
            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return(Common.SendRealAuthRequest(xmlString));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Create new payer
        /// </summary>
        /// <param name="timestamp">timestamp</param>
        /// <param name="merchant">merchant details</param>
        /// <param name="order">order details</param>
        /// <param name="payer">payer details</param>
        /// <param name="comments">comment details - can use new ArrayList()</param>
        /// <returns>transaction response</returns>
        public static RealVaultTransactionResponse PayerNew(String timestamp, Merchant merchant, Order order, Payer payer, ArrayList comments)
        {
            string hashInput =
                timestamp + "." +
                merchant.MerchantId + "." +
                order.OrderId + "." +
                "" + "." + //documentation says to put order amount in here... its only wants blank
                "" + "." + //documentation says to put order currency in here... its only wants blank
                payer.PayerRef;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString = string.Empty;
            String requestType = "payer-new";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();
            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars = "\r\n";
            xmlSettings.CloseOutput = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("orderid", order.OrderId);

                //payer details
                payer.WriteXml(xml);

                xml.WriteElementString("sha1hash", SHA1Hash);

                xml.WriteStartElement("comments");
                {
                    int i = 1;
                    foreach (string s in comments)
                    {
                        xml.WriteStartElement("comment");
                        xml.WriteAttributeString("id", i.ToString());
                        xml.WriteString(s);
                        xml.WriteEndElement();
                        i++;
                    }
                }
                xml.WriteEndElement();

            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return Common.SendRealVaultRequest(xmlString);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 3D Secure Verify Digital Signature
        /// </summary>
        /// <param name="merchant">Merchant Details</param>
        /// <param name="order">Order Details</param>
        /// <param name="card">Card Details</param>
        /// <param name="tdSecure">3D Secure Details</param>
        /// <param name="timestamp">Timestamp</param>
        /// <returns>Response from Realex</returns>
        public static RealAuthTransactionResponse RealAuth3DSecureVerifySig(Merchant merchant, Order order, CreditCard card, _3DSecure tdSecure, string timestamp)
        {
            string hashInput = timestamp + "." +
                merchant.MerchantId + "." +
                order.OrderId + "." +
                order.OrderAmount + "." +
                order.OrderCurrency + "." +
                card.CardNumber;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString = string.Empty;
            String requestType = "3ds-verifysig";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();
            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars = "\r\n";
            xmlSettings.CloseOutput = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("account", merchant.Account);

                xml.WriteElementString("orderid", order.OrderId);

                xml.WriteStartElement("amount");
                {
                    xml.WriteAttributeString("currency", order.OrderCurrency);
                    xml.WriteString(order.OrderAmount.ToString());
                }
                xml.WriteEndElement();

                xml.WriteStartElement("card");
                {
                    xml.WriteElementString("number", card.CardNumber);
                    xml.WriteElementString("expdate", card.ExpiryDate);
                    xml.WriteElementString("type", card.CardType);
                    xml.WriteElementString("chname", card.CardholderName);
                }
                xml.WriteEndElement();

                xml.WriteElementString("pares", tdSecure.PaRes);

                xml.WriteElementString("sha1hash", SHA1Hash);

            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return Common.SendRealAuthRequest(xmlString);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Create new card
        /// </summary>
        /// <param name="timestamp">timestamp</param>
        /// <param name="cardRef">name to save card against payer</param>
        /// <param name="merchant">merchant details</param>
        /// <param name="order">order details</param>
        /// <param name="cc">credit card details</param>
        /// <param name="payer">payer details</param>
        /// <returns>real vault transaction response</returns>
        public static RealVaultTransactionResponse CardNew(string timestamp, string cardRef, Merchant merchant, Order order, CreditCard cc, Payer payer)
        {
            string hashInput = timestamp + "." +
                merchant.MerchantId + "." +
                order.OrderId + "." +
                "" + "." +
                "" + "." +
                payer.PayerRef + "." +
                cc.CardholderName + "." +
                cc.CardNumber;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString = string.Empty;
            String requestType = "card-new";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();
            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars = "\r\n";
            xmlSettings.CloseOutput = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("orderid", order.OrderId);

                xml.WriteStartElement("card");
                {
                    xml.WriteElementString("ref", cardRef);
                    xml.WriteElementString("payerref", payer.PayerRef);
                    xml.WriteElementString("number", cc.CardNumber);
                    xml.WriteElementString("expdate", cc.ExpiryDate);
                    xml.WriteElementString("type", cc.CardType);
                    xml.WriteElementString("chname", cc.CardholderName);
                    if (cc.CardType.Equals("SWITCH"))
                    {
                        xml.WriteElementString("issueno", cc.IssueNumber.ToString());
                    }
                }
                xml.WriteEndElement();

                xml.WriteElementString("sha1hash", SHA1Hash);

            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return Common.SendRealVaultRequest(xmlString);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Take payment from real vault - everything
        /// </summary>
        /// <param name="merchant">merchant details</param>
        /// <param name="tdSecure">3d secure details</param>
        /// <param name="order">order details</param>
        /// <param name="payer">payer details</param>
        /// <param name="cardRef">card ref to charge</param>
        /// <param name="cvn">cvn of card</param>
        /// <param name="autoSettle">auto settle with bank (usullay 1)</param>
        /// <param name="timestamp">timestamp</param>
        /// <param name="comments">comments</param>
        /// <param name="recurring">is recurring?</param>
        /// <param name="recurringType">type of recurring amount - fixed / variable</param>
        /// <param name="recurringSequence">first/subsequent/final</param>
        /// <returns></returns>
        public static RealVaultTransactionResponse RecieptIn(Merchant merchant, _3DSecure tdSecure, Order order, Payer payer, string cardRef, string cvn, string autoSettle, string timestamp, ArrayList comments, bool recurring, string recurringType, string recurringSequence)
        {
            string hashInput = timestamp + "." +
                        merchant.MerchantId + "." +
                        order.OrderId + "." +
                        order.OrderAmount + "." +
                        order.OrderCurrency + "." +
                        payer.PayerRef;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString = string.Empty;
            String requestType = "receipt-in";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();
            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars = "\r\n";
            xmlSettings.CloseOutput = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("account", merchant.Account);
                xml.WriteElementString("orderid", order.OrderId);

                if (cvn != "")
                {
                    xml.WriteStartElement("paymentdata");
                    {
                        xml.WriteStartElement("cvn");
                        {
                            xml.WriteElementString("number", cvn);
                        }
                        xml.WriteEndElement();
                    }
                    xml.WriteEndElement();

                }

                xml.WriteStartElement("mpi");
                {
                    xml.WriteElementString("cavv", tdSecure.CAVV);
                    xml.WriteElementString("xid", tdSecure.XID);
                    xml.WriteElementString("eci", tdSecure.ECI);
                }
                xml.WriteEndElement();

                //might need dccinfo in here??

                xml.WriteStartElement("amount");
                {
                    xml.WriteAttributeString("currency", order.OrderCurrency);
                    xml.WriteString(order.OrderAmount.ToString());
                }
                xml.WriteEndElement();

                xml.WriteElementString("payerref", payer.PayerRef);
                xml.WriteElementString("paymentmethod", cardRef);

                xml.WriteStartElement("autosettle");
                {
                    xml.WriteAttributeString("flag", autoSettle);
                }
                xml.WriteEndElement();

                xml.WriteElementString("sha1hash", SHA1Hash);

                xml.WriteStartElement("comments");
                {
                    int i = 1;
                    foreach (string s in comments)
                    {
                        xml.WriteStartElement("comment");
                        xml.WriteAttributeString("id", i.ToString());
                        xml.WriteString(s);
                        xml.WriteEndElement();
                        i++;
                    }
                }
                xml.WriteEndElement();

                if (recurring)
                {
                    xml.WriteStartElement("recurring");
                    {
                        xml.WriteAttributeString("type", recurringType);
                        xml.WriteAttributeString("sequence", recurringSequence);
                    }
                    xml.WriteEndElement();
                }

                //tss??

                //supplementary data??

            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return Common.SendRealVaultRequest(xmlString);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Take payment from real vault - recurring
        /// </summary>
        /// <param name="merchant">merchant details</param>
        /// <param name="order">order details</param>
        /// <param name="payer">payer details</param>
        /// <param name="cardRef">card ref to chanrge</param>
        /// <param name="autoSettle">auto settle with bank (usually 1)</param>
        /// <param name="timestamp">timestamp</param>
        /// <param name="comments">comments</param>
        /// <param name="recurring">is recurring?</param>
        /// <param name="recurringType">type of recurring amount - fixed / variable</param>
        /// <param name="recurringSequence">first/subsequent/final</param>
        /// <returns></returns>
        public static RealVaultTransactionResponse RecieptIn(Merchant merchant, Order order, Payer payer, string cardRef, string autoSettle, string timestamp, ArrayList comments, bool recurring, string recurringType, string recurringSequence)
        {
            _3DSecure tdSecure = new _3DSecure();
            string cvn = "";

            return RecieptIn(merchant, tdSecure, order, payer, cardRef, cvn, autoSettle, timestamp, comments, recurring, recurringType, recurringSequence);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Verify card stored is 3d secured
        /// </summary>
        /// <param name="merchant">merchant details</param>
        /// <param name="order">order details</param>
        /// <param name="payer">payer details</param>
        /// <param name="cardRef">card ref to verify</param>
        /// <param name="autoSettle">auto settle with bank</param>
        /// <param name="timestamp">timestamp</param>
        /// <param name="comments">comments</param>
        /// <returns></returns>
        public static RealVaultTransactionResponse RealVault3DSVerifyEnrolled(Merchant merchant, Order order, Payer payer, string cardRef, string autoSettle, string timestamp, ArrayList comments)
        {
            string hashInput = timestamp + "." +
                        merchant.MerchantId + "." +
                        order.OrderId + "." +
                        order.OrderAmount + "." +
                        order.OrderCurrency + "." +
                        payer.PayerRef;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString = string.Empty;
            String requestType = "realvault-3ds-verifyenrolled";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();
            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars = "\r\n";
            xmlSettings.CloseOutput = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("account", merchant.Account);

                xml.WriteStartElement("amount");
                {
                    xml.WriteAttributeString("currency", order.OrderCurrency);
                    xml.WriteString(order.OrderAmount.ToString());
                }
                xml.WriteEndElement();

                xml.WriteElementString("payerref", payer.PayerRef);
                xml.WriteElementString("paymentmethod", cardRef);

                xml.WriteStartElement("autosettle");
                {
                    xml.WriteAttributeString("flag", autoSettle);
                }
                xml.WriteEndElement();

                xml.WriteElementString("sha1hash", SHA1Hash);

                xml.WriteStartElement("comments");
                {
                    int i = 1;
                    foreach (string s in comments)
                    {
                        xml.WriteStartElement("comment");
                        xml.WriteAttributeString("id", i.ToString());
                        xml.WriteString(s);
                        xml.WriteEndElement();
                        i++;
                    }
                }
                xml.WriteEndElement();

            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return Common.SendRealVaultRequest(xmlString);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Take payment from real vault - everything
        /// </summary>
        /// <param name="merchant">merchant details</param>
        /// <param name="tdSecure">3d secure details</param>
        /// <param name="order">order details</param>
        /// <param name="payer">payer details</param>
        /// <param name="cardRef">card ref to charge</param>
        /// <param name="cvn">cvn of card</param>
        /// <param name="autoSettle">auto settle with bank (usullay 1)</param>
        /// <param name="timestamp">timestamp</param>
        /// <param name="comments">comments</param>
        /// <param name="recurring">is recurring?</param>
        /// <param name="recurringType">type of recurring amount - fixed / variable</param>
        /// <param name="recurringSequence">first/subsequent/final</param>
        /// <returns></returns>
        public static RealVaultTransactionResponse RecieptIn(Merchant merchant, _3DSecure tdSecure, Order order, Payer payer, string cardRef, string cvn, string autoSettle, string timestamp, ArrayList comments, bool recurring, string recurringType, string recurringSequence)
        {
            string hashInput = timestamp + "." +
                               merchant.MerchantId + "." +
                               order.OrderId + "." +
                               order.OrderAmount + "." +
                               order.OrderCurrency + "." +
                               payer.PayerRef;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString   = string.Empty;
            String requestType = "receipt-in";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();

            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars        = "\r\n";
            xmlSettings.CloseOutput         = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("account", merchant.Account);
                xml.WriteElementString("orderid", order.OrderId);

                if (cvn != "")
                {
                    xml.WriteStartElement("paymentdata");
                    {
                        xml.WriteStartElement("cvn");
                        {
                            xml.WriteElementString("number", cvn);
                        }
                        xml.WriteEndElement();
                    }
                    xml.WriteEndElement();
                }

                xml.WriteStartElement("mpi");
                {
                    xml.WriteElementString("cavv", tdSecure.CAVV);
                    xml.WriteElementString("xid", tdSecure.XID);
                    xml.WriteElementString("eci", tdSecure.ECI);
                }
                xml.WriteEndElement();

                //might need dccinfo in here??

                xml.WriteStartElement("amount");
                {
                    xml.WriteAttributeString("currency", order.OrderCurrency);
                    xml.WriteString(order.OrderAmount.ToString());
                }
                xml.WriteEndElement();

                xml.WriteElementString("payerref", payer.PayerRef);
                xml.WriteElementString("paymentmethod", cardRef);

                xml.WriteStartElement("autosettle");
                {
                    xml.WriteAttributeString("flag", autoSettle);
                }
                xml.WriteEndElement();

                xml.WriteElementString("sha1hash", SHA1Hash);

                xml.WriteStartElement("comments");
                {
                    int i = 1;
                    foreach (string s in comments)
                    {
                        xml.WriteStartElement("comment");
                        xml.WriteAttributeString("id", i.ToString());
                        xml.WriteString(s);
                        xml.WriteEndElement();
                        i++;
                    }
                }
                xml.WriteEndElement();

                if (recurring)
                {
                    xml.WriteStartElement("recurring");
                    {
                        xml.WriteAttributeString("type", recurringType);
                        xml.WriteAttributeString("sequence", recurringSequence);
                    }
                    xml.WriteEndElement();
                }

                //tss??

                //supplementary data??
            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return(Common.SendRealVaultRequest(xmlString));
        }
Ejemplo n.º 16
0
        //3D Secure
        #region RealVault-3DS-VerifyEnrolled

        /// <summary>
        /// Verify card stored is 3d secured
        /// </summary>
        /// <param name="merchant">merchant details</param>
        /// <param name="order">order details</param>
        /// <param name="payer">payer details</param>
        /// <param name="cardRef">card ref to verify</param>
        /// <param name="autoSettle">auto settle with bank</param>
        /// <param name="timestamp">timestamp</param>
        /// <param name="comments">comments</param>
        /// <returns></returns>
        public static RealVaultTransactionResponse RealVault3DSVerifyEnrolled(Merchant merchant, Order order, Payer payer, string cardRef, string autoSettle, string timestamp, ArrayList comments)
        {
            string hashInput = timestamp + "." +
                               merchant.MerchantId + "." +
                               order.OrderId + "." +
                               order.OrderAmount + "." +
                               order.OrderCurrency + "." +
                               payer.PayerRef;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString   = string.Empty;
            String requestType = "realvault-3ds-verifyenrolled";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();

            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars        = "\r\n";
            xmlSettings.CloseOutput         = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("account", merchant.Account);

                xml.WriteStartElement("amount");
                {
                    xml.WriteAttributeString("currency", order.OrderCurrency);
                    xml.WriteString(order.OrderAmount.ToString());
                }
                xml.WriteEndElement();

                xml.WriteElementString("payerref", payer.PayerRef);
                xml.WriteElementString("paymentmethod", cardRef);

                xml.WriteStartElement("autosettle");
                {
                    xml.WriteAttributeString("flag", autoSettle);
                }
                xml.WriteEndElement();

                xml.WriteElementString("sha1hash", SHA1Hash);

                xml.WriteStartElement("comments");
                {
                    int i = 1;
                    foreach (string s in comments)
                    {
                        xml.WriteStartElement("comment");
                        xml.WriteAttributeString("id", i.ToString());
                        xml.WriteString(s);
                        xml.WriteEndElement();
                        i++;
                    }
                }
                xml.WriteEndElement();
            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return(Common.SendRealVaultRequest(xmlString));
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Authorise payment
        /// </summary>
        /// <param name="merchant">Merchant Details</param>
        /// <param name="order">Order Details</param>
        /// <param name="card">Card Details</param>
        /// <param name="autoSettle">Auto Settle (1 or 0)</param>
        /// <param name="timestamp">Timestamp</param>
        /// <param name="comments">Comments</param>
        /// <param name="is3DSecure">Is transaction 3D Secure</param>
        /// <param name="tdSecure">3D Secure details</param>
        /// <returns>Response from Realex</returns>
        public static RealAuthTransactionResponse Auth(Merchant merchant, Order order, CreditCard card, string autoSettle, string timestamp, ArrayList comments, bool is3DSecure, _3DSecure tdSecure)
        {
            string hashInput = timestamp + "." +
                merchant.MerchantId + "." +
                order.OrderId + "." +
                order.OrderAmount + "." +
                order.OrderCurrency + "." +
                card.CardNumber;
            string SHA1Hash = Common.GenerateSHA1Hash(hashInput, merchant.SharedSecret);

            String xmlString = string.Empty;
            String requestType = "auth";

            XmlWriterSettings xmlSettings = new XmlWriterSettings();
            xmlSettings.Indent = true;
            xmlSettings.NewLineOnAttributes = false;
            xmlSettings.NewLineChars = "\r\n";
            xmlSettings.CloseOutput = true;

            StringBuilder strBuilder = new StringBuilder();

            XmlWriter xml = XmlWriter.Create(strBuilder, xmlSettings);

            xml.WriteStartDocument();

            xml.WriteStartElement("request");
            {
                xml.WriteAttributeString("type", requestType);
                xml.WriteAttributeString("timestamp", timestamp);

                xml.WriteElementString("merchantid", merchant.MerchantId);
                xml.WriteElementString("account", merchant.Account);

                xml.WriteElementString("orderid", order.OrderId);

                xml.WriteStartElement("amount");
                {
                    xml.WriteAttributeString("currency", order.OrderCurrency);
                    xml.WriteString(order.OrderAmount.ToString());
                }
                xml.WriteEndElement();

                card.WriteXML(xml);

                xml.WriteStartElement("autosettle");
                {
                    xml.WriteAttributeString("flag", autoSettle);
                }
                xml.WriteEndElement();

                if (is3DSecure)
                {
                    xml.WriteStartElement("mpi");
                    {
                        xml.WriteElementString("cavv", tdSecure.CAVV);
                        xml.WriteElementString("xid", tdSecure.XID);
                        xml.WriteElementString("eci", tdSecure.ECI);
                    }
                    xml.WriteEndElement();
                }

                xml.WriteElementString("sha1hash", SHA1Hash);

                xml.WriteStartElement("comments");
                {
                    int i = 1;
                    foreach (string s in comments)
                    {
                        xml.WriteStartElement("comment");
                        xml.WriteAttributeString("id", i.ToString());
                        xml.WriteString(s);
                        xml.WriteEndElement();
                        i++;
                    }
                }
                xml.WriteEndElement();

            }
            xml.WriteEndElement();

            xml.WriteEndDocument();
            xml.Flush();
            xml.Close();

            xmlString = strBuilder.ToString();

            return Common.SendRealAuthRequest(xmlString);
        }