示例#1
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here

            HttpBrowserCapabilities bc = Request.Browser;
            fIE5 = ( bc.Browser=="IE" && bc.MajorVersion > 4 );

                order    = (string) Session["outXml"];
                resp     = (string) Session["resp"];
                ParseResponse(resp);
                // We need LPTxn to display version info
                LPTxn = new LinkPointTxn();
        }
示例#2
0
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            op.put("ordertype","CALCSHIPPING");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            op.clear();
            // Build 'merchantinfo'
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            op.clear();
            op.put("carrier",scarrier);
            op.put("weight",sweight);
            op.put("total",stotal);
            op.put("state",sstate);
            op.put("items",sitems);
            order.addPart("shipping",op);

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            // For a test, set result to GOOD, DECLINE, or DUPLICATE
            op.put("result","GOOD");
            op.put("ordertype","PREAUTH");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'transactiondetails'
            op.clear();
            // set terminaltype to POS for an electronic
            // cash register or integrated POS system,
            // STANDALONE for a point-of-sale credit card terminal,
            // UNATTENDED for a self-service station, or
            // UNSPECIFIED for e-commerce or other applications
            op.put("terminaltype","POS");
            op.put("transactionorigin","RETAIL");
            // add 'transactiondetails to order
            order.addPart("transactiondetails", op );

            // Build 'creditcard'
            op.clear();
            op.put("track",micr);
            // add 'creditcard to order
            order.addPart("creditcard", op );

            // Build 'payment'
            op.clear();
            op.put("chargetotal",total);
            // add 'payment to order
            order.addPart("payment", op );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            op.put("result","LIVE");
            op.put("ordertype","VOID");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'telecheck' part
            op.clear();
            op.put("void","1");
            // add 'telecheck' to order
            order.addPart("telecheck", op );

            // Build 'payment'
            op.clear();
            op.put("chargetotal",total);
            // add 'payment to order
            order.addPart("payment", op );

            // Add oid
            op.clear();
            op.put("oid",oid);
            // add 'transactiondetails to order
            order.addPart("transactiondetails", op );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            op.put("ordertype","SALE");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'transactiondetails'
            op.clear();
            // If there is no PO Number for this order,
            // pass a department code or other value, but make sure the value you pass is supplied by the customer
            op.put("ponumber",ponumber);
            // If the purchase is tax exempt,
            // pass a value of Y for taxexempt
            op.put("taxexempt",taxexempt);
            // add 'billing to order
            order.addPart("transactiondetails", op );

            // Build 'creditcard'
            op.clear();
            op.put("cardnumber",cardnumber);
            op.put("cardexpmonth",expmonth);
            op.put("cardexpyear",expyear);
            // add 'creditcard to order
            order.addPart("creditcard", op );

            // Build 'payment'
            op.clear();
            op.put("chargetotal",total);
            // Tax is required for purchasing cards.
            // If the tax is $0.00, pass a value of 0 for tax
            op.put("tax",tax);

            // add 'payment to order
            order.addPart("payment", op );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }
示例#6
0
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            // For a test, set result to GOOD, DECLINE, or DUPLICATE
            op.put("result","LIVE");
            op.put("ordertype","PREAUTH");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'creditcard'
            op.clear();
            op.put("cardnumber",cardnumber);
            op.put("cardexpmonth",expmonth);
            op.put("cardexpyear",expyear);
            // add 'creditcard to order
            order.addPart("creditcard", op );

            // Build 'billing'
            op.clear();
            op.put("addrnum",baddrnum);
            op.put("zip",bzip);
            // add 'billing to order
            order.addPart("billing", op );

            // Build 'payment'
            op.clear();
            op.put("chargetotal",total);
            // add 'payment to order
            order.addPart("payment", op );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }
        private void ProcessPostAuth()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            // For a test, set result to GOOD, DECLINE, or DUPLICATE
            op.put("result","GOOD");
            op.put("ordertype","POSTAUTH");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'creditcard'
            op.clear();
            op.put("cardnumber",cardnumber);
            op.put("cardexpmonth",expmonth);
            op.put("cardexpyear",expyear);
            // add 'creditcard to order
            order.addPart("creditcard", op );

            // Build 'payment'
            op.clear();
            op.put("chargetotal",total);
            // add 'payment to order
            order.addPart("payment", op );

            // Add oid
            op.clear();
            op.put("oid",R_OrderNum);
            // add 'transactiondetails to order
            order.addPart("transactiondetails", op );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml_2"] = outXml;
            Session["resp_2"] = resp;
        }
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            op.put("ordertype","PREAUTH");
            // set transaction result
            op.put("result","GOOD");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );
            // Build 'transactiondetails'
            op.clear();
            op.put("transactionorigin",Request.Form["origin"] );
            // add 'transactiondetails to order
            order.addPart("transactiondetails", op);
            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'payment'
            op.clear();
            op.put("subtotal",Request.Form["subtotal"]);
            op.put("tax",Request.Form["tax"]);
            op.put("shipping",Request.Form["shipping"]);
            op.put("chargetotal",Request.Form["total"]);
            // add 'payment to order
            order.addPart("payment", op );

            // Build 'creditcard'
            op.clear();
            op.put("cardnumber",cardnumber);
            op.put("cardexpmonth",expmonth);
            op.put("cardexpyear",expyear);
            op.put("cvmvalue",cvmvalue);
            op.put("cvmindicator",cvmindicator);
            // add 'creditcard to order
            order.addPart("creditcard", op );

            // Build 'billing'
            op.clear();
            op.put("name",bname);
            op.put("company",bcompany);
            op.put("address1",baddr1);
            op.put("address2",baddr2);
            op.put("city",bcity);
            op.put("state",bstate);
            // Required for AVS. If not provided,
            // transactions will downgrade.
            op.put("zip",bzip);
            op.put("addrnum",baddrnum);
            op.put("country",bcountry);
            op.put("phone",bphone);
            op.put("fax",bfax);
            op.put("email",bemail);
            // add 'billing to order
            order.addPart("billing", op );

            // Build 'shipping'
            op.clear();
            op.put("name",sname);
            op.put("address1",saddr1);
            op.put("address2",saddr2);
            op.put("city",scity);
            op.put("state",sstate);
            op.put("zip",szip);
            op.put("country",scountry);

            // Create some parts we use to build order itmes
            LPOrderPart items = LPOrderFactory.createOrderPart();
            LPOrderPart item = LPOrderFactory.createOrderPart();
            LPOrderPart options = LPOrderFactory.createOrderPart();

            //  build 'item'
            item.put("id",Request.Form["id2"]);
            item.put("description",Request.Form["desc2"]);
            item.put("quantity",Request.Form["qty2"]);
            item.put("price",Request.Form["price2"]);
            item.put("serial",Request.Form["serial2"]);
            // build item's options
            op.clear();
            op.put("name","Color");
            op.put("value",Request.Form["Color"]);
            options.addPart("option",op,1);
            op.clear();
            op.put("name","Size");
            op.put("value",Request.Form["Size"]);
            options.addPart("option",op,2);
            // add 'options' to item
            item.addPart("options", options );
            // add 'item' to 'items' collection
            items.addPart("item", item);
            // add 'items' to order
            order.addPart("items", items );

            // add notes
            op.clear();
            op.put("comments",comments);
            op.put("referred",referred);
            order.addPart("notes",op);

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            // parse response
            ParseResponse(resp);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
        }
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            op.put("ordertype","SALE");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'creditcard'
            op.clear();
            op.put("cardnumber",cardnumber);
            op.put("cardexpmonth",expmonth);
            op.put("cardexpyear",expyear);
            // add 'creditcard to order
            order.addPart("creditcard", op );

            // Build 'payment'
            op.clear();
            op.put("chargetotal",total);
            // add 'payment to order
            order.addPart("payment", op );

            // build 'periodic' part
            op.clear();
            op.put("action","MODIFY");
            op.put("startdate",startdate);
            op.put("periodicity",periodicity);
            op.put("installments",installments);
            op.put("threshold",pbthreshold);
            // add 'periodic' to order
            order.addPart("periodic", op );

            // Add oid
            op.clear();
            op.put("oid",oid);
            // add 'transactiondetails to order
            order.addPart("transactiondetails", op );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }
示例#10
0
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            op.put("ordertype","SALE");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'billing'
            op.clear();
            op.put("zip",bzip);
            op.put("addrnum",baddrnum);
            // add 'billing to order
            order.addPart("billing", op );

            // Build 'creditcard'
            op.clear();
            op.put("cardnumber",cardnumber);
            op.put("cardexpmonth",expmonth);
            op.put("cardexpyear",expyear);
            op.put("cvmvalue",cvmvalue);
            op.put("cvmindicator",cvmindicator);
            // add 'creditcard to order
            order.addPart("creditcard", op );

            // Build 'payment'
            op.clear();
            op.put("chargetotal",subtotal);
            // add 'payment to order
            order.addPart("payment", op );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // setup logging if needed
            // see Web.config file for more details on logging
            if( fLog )
            {
             string msg = "";
             // if returned 'res' is negative, you can check
             // the 'msg' string to see the reason the call failed.
             int res = LPTxn.setDbgOpts(logFile,3, ref msg);
            }

            // get outgoing XML from 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            op.put("result","LIVE");
            op.put("ordertype","SALE");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'billing'
            op.clear();
            op.put("name",bname);
            op.put("address1",baddr1);
            op.put("address2",baddr2);
            op.put("state",bstate);
            op.put("city",bcity);
            op.put("zip",bzip);
            op.put("phone",bphone);
            op.put("email",bemail);
            op.put("fax",bfax);
            // add 'billing to order
            order.addPart("billing", op );

            // Build 'telecheck' part
            op.clear();
            op.put("routing",routeNbr);
            op.put("account",accountNbr);
            op.put("checknumber",checkNbr);
            op.put("accounttype",accttype);
            op.put("dl",dl);
            op.put("ssn",ssn);
            op.put("dlstate",dlState);
            op.put("bankname",bankName);
            op.put("bankstate",bankState);
            // add 'telecheck' to order
            order.addPart("telecheck", op );

            // Build 'payment'
            op.clear();
            op.put("chargetotal",total);
            // add 'payment to order
            order.addPart("payment", op );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            op.put("ordertype","SALE");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'transactiondetails'
            op.clear();
            // set terminaltype to POS for an electronic
            // cash register or integrated POS system,
            // STANDALONE for a point-of-sale credit card terminal,
            // UNATTENDED for a self-service station, or
            // UNSPECIFIED for e-commerce or other applications
            op.put("terminaltype","UNATTENDED");
            op.put("transactionorigin","RETAIL");
            // add 'transactiondetails to order
            order.addPart("transactiondetails", op );

            // Build 'billing'
            op.clear();
            //For an UNATTENDED terminaltype,
            // do a partial AVS: zip code only.
            op.put("zip",bzip);
            // add 'billing to order
            order.addPart("billing", op );

            // Build 'creditcard'
            op.clear();
            op.put("cardnumber",cardnumber);
            op.put("cardexpmonth",expmonth);
            op.put("cardexpyear",expyear);
            // add 'creditcard to order
            order.addPart("creditcard", op );

            // Build 'payment'
            op.clear();
            op.put("chargetotal",total);
            // add 'payment to order
            order.addPart("payment", op );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }
示例#13
0
        public string ProcessOrder()
        {
            var testOrder = new Order
            {
                Address = new Address
                {
                    Street = "1234",
                    Zip = "37211"
                },
                CreditCard = new CreditCard
                {
                    Number = "41111111111111111",
                    ExpMonth = "08",
                    ExpYear = "12"
                },
                Total = "99.99"
            };
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();

            // Build 'orderoptions'
            op.put("ordertype", "SALE");
            // add 'orderoptions to order
            order.addPart("orderoptions", op);

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile", _configFile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op);

            // Build 'billing'
            // Required for AVS. If not provided,
            // transactions will downgrade.
            op.clear();
            op.put("zip", testOrder.Address.Zip);
            op.put("addrnum", testOrder.Address.Street);
            // add 'billing to order
            order.addPart("billing", op);

            // Build 'creditcard'
            op.clear();
            op.put("cardnumber", testOrder.CreditCard.Number);
            op.put("cardexpmonth", testOrder.CreditCard.ExpMonth);
            op.put("cardexpyear", testOrder.CreditCard.ExpYear);
            // add 'creditcard to order
            order.addPart("creditcard", op);

            // Build 'payment'
            op.clear();
            op.put("chargetotal", testOrder.Total);
            // add 'payment to order
            order.addPart("payment", op);

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(_keyFile, _host, _port, outXml);

            //Store transaction data on Session and redirect
            return resp;
            //Session["outXml"] = outXml;
            //Session["resp"] = resp;
        }
示例#14
0
        private void ProcessOrder()
        {
            // create order
            LPOrderPart order = LPOrderFactory.createOrderPart("order");
            // create a part we will use to build the order
            LPOrderPart op = LPOrderFactory.createOrderPart();
            // Build 'orderoptions'
            op.put("ordertype","SALE");
            // live transaction
            op.put("result","LIVE");
            // add 'orderoptions to order
            order.addPart("orderoptions", op );

            // Build 'merchantinfo'
            op.clear();
            op.put("configfile",configfile);
            // add 'merchantinfo to order
            order.addPart("merchantinfo", op );

            // Build 'creditcard'
            op.clear();
            op.put("cardnumber",cardnumber);
            op.put("cardexpmonth",expmonth);
            op.put("cardexpyear",expyear);
            // add 'creditcard to order
            order.addPart("creditcard", op );

            // Build 'payment'
            op.clear();
            op.put("subtotal",Request.Form["subtotal"]);
            op.put("tax",Request.Form["tax"]);
            op.put("shipping",Request.Form["shipping"]);
            op.put("chargetotal",Request.Form["total"]);
            // add 'payment to order
            order.addPart("payment", op );

            // Build 'billing'
            // Required for AVS. If not provided,
            // transactions will downgrade.
            op.clear();
            op.put("zip",bzip);
            op.put("addrnum",baddrnum);
            // When using ESD items - name must present
            op.put("name",bname);
            // add 'billing to order
            order.addPart("billing", op );

            // Create some parts we use to build order itmes
            LPOrderPart items = LPOrderFactory.createOrderPart();
            LPOrderPart item = LPOrderFactory.createOrderPart();
            LPOrderPart options = LPOrderFactory.createOrderPart();

            //  build 'item1' (ESD)
            item.put("id",Request.Form["id1"]);
            item.put("description",Request.Form["desc1"]);
            item.put("quantity",Request.Form["qty1"]);
            item.put("price",Request.Form["price1"]);
            item.put("serial",Request.Form["serial1"]);
            item.put("esdtype",Request.Form["esdtype"]);
            item.put("softfile",Request.Form["softfile1"]);

            // add 'item' to 'items' collection
            items.addPart("item", item, 1 );

            //  build 'item2'
            item.clear();
            item.put("id",Request.Form["id2"]);
            item.put("description",Request.Form["desc2"]);
            item.put("quantity",Request.Form["qty2"]);
            item.put("price",Request.Form["price2"]);
            item.put("serial",Request.Form["serial2"]);

            // build item's options
            op.clear();
            op.put("name","Color");
            op.put("value",Request.Form["Color"]);
            options.addPart("option",op,1);
            op.clear();
            op.put("name","Size");
            op.put("value",Request.Form["Size"]);
            options.addPart("option",op,2);

            // add 'options' to item
            item.addPart("options", options );
            // add 'item' to 'items' collection
            items.addPart("item", item, 2 );

            // add 'items' to order
            order.addPart("items", items );

            // create transaction object
            LinkPointTxn LPTxn = new LinkPointTxn();

            // get outgoing XML from the 'order' object
            string outXml = order.toXML();

            // Call LPTxn
            string resp = LPTxn.send(keyfile,host,port, outXml);

            //Store transaction data on Session and redirect
            Session["outXml"] = outXml;
            Session["resp"] = resp;
            Server.Transfer("status.aspx");
        }