//測試回傳給payment ATM付款成功的動作
        public ActionResult TestAtmHncbReturn()
        {

            //string merchantId = "999999999";
            //string merchantTradeNo = "100050";           //payment的tradeID
            //string tradeNo = "20121204134122541156";    //payment center的tradeNo
            //string AesHashKey = "fugvqTnG3ROx81MO";
            //string AesHashIv = "WkSfnqIaHLbUMV5X";
            //string serverReplyUrl = "http://devpayment.allpay.com.tw:12005/bank/paymentcenter/srv/atm/result";


            string merchantId = "2000132";
            string merchantTradeNo = "100050";           //payment的tradeID
            string tradeNo = "20121204134122541156";    //payment center的tradeNo
            string AesHashKey = "ejCk326UnaZWKisg";
            string AesHashIv = "q9jcZX8Ib9LM8wYk";
            string serverReplyUrl = "http://linda.sunup.net/test/pay_info.php";
            
            //也必需更新payment center的訂單,因為payment會反查
            /*
                update Payment_TradeNo
                set PaymentStatus = '1'
                ,PaymentDate = GETDATE()
                where TradeID = 12153

                update Payment_TradeDetail_ATM
                set RtnCode = '1'
                ,RtnPaymentDate= GETDATE()
                ,RtnBankCode = '008'
                ,RtnBankAcc = '168371'
                where TradeID = 12153
             * */

            XmlDocument XML = new XmlDocument();
            XML.Load(HttpContext.Server.MapPath("~/App_Data/NoticeMerchantATM.xml"));

            //###取得XML的節點
            XmlElement eleMerchantID = (XmlElement)XML.SelectSingleNode("Root/Data/MerchantID");
            XmlElement eleMerchantTradeNo = (XmlElement)XML.SelectSingleNode("Root/Data/MerchantTradeNo");
            XmlElement eleRtnCode = (XmlElement)XML.SelectSingleNode("Root/Data/RtnCode");
            XmlElement eleRtnMsg = (XmlElement)XML.SelectSingleNode("Root/Data/RtnMsg");
            XmlElement eleTradeNo = (XmlElement)XML.SelectSingleNode("Root/Data/TradeNo");
            XmlElement elePayDate = (XmlElement)XML.SelectSingleNode("Root/Data/PayDate");
            XmlElement eleTradeAmount = (XmlElement)XML.SelectSingleNode("Root/Data/TradeAmount");
            XmlElement eleAccBank = (XmlElement)XML.SelectSingleNode("Root/Data/AccBank");
            XmlElement eleAccNo = (XmlElement)XML.SelectSingleNode("Root/Data/AccNo");

            //### 設定XML內容
            eleMerchantID.InnerText = merchantId;
            eleMerchantTradeNo.InnerText = merchantTradeNo;
            eleRtnCode.InnerText = "1";
            eleRtnMsg.InnerText = "success";
            eleTradeNo.InnerText = tradeNo;
            elePayDate.InnerText = "2013/10/18 23:38:18";
            eleTradeAmount.InnerText = "105";
            eleAccBank.InnerText = "812";
            eleAccNo.InnerText = "123123";

            //### 將XML透過AES加密
            string XMLData = new AllPay.ShareLib.Crypt().AES_EnCrypt(AesHashKey, AesHashIv, XML.OuterXml);
            
            //server端回傳
            string serverReponse = new AllPay.ShareLib.Network().FormPost(serverReplyUrl, "XMLData=" + XMLData, "", 0, 65001);

            ViewBag.Response = serverReponse;
            ViewBag.Result = false;

            if (serverReponse.IndexOf("1|OK") > -1)
            {
                ViewBag.Result = true;
            }

            return View();

        }
        //測試回傳給payment 超商付款成功的動作
        public ActionResult TestCVSReturnToPayment()
        {

            string merchantId = "999999999";
            string merchantTradeNo = "13837";           //payment的tradeID(必改)
            string tradeNo = "20121018101322793733";    //payment center的tradeNo(可不改)
            string payDate = "2012-10-18 19:25:27";
            string payAmount = "30";
            string paymentNo = "GW121018919930";        //繳費代碼
            string payForm = "okmart";                  //繳費平台

            string AesHashKey = "fugvqTnG3ROx81MO";     //開發環境的key
            string AesHashIv = "WkSfnqIaHLbUMV5X";
            string serverReplyUrl = "http://devpayment.allpay.com.tw:12005/bank/paymentcenter/srv/cvs/result";
            
      

            XmlDocument xml = new XmlDocument();

            xml.Load(HttpContext.Server.MapPath("~/App_Data/ReturnCVSPaidTrade.xml"));

            XmlElement eleMerchantID = (XmlElement)xml.SelectSingleNode("Root/Data/MerchantID");
            XmlElement eleMerchantTradeNo = (XmlElement)xml.SelectSingleNode("Root/Data/MerchantTradeNo");
            XmlElement eleRtnCode = (XmlElement)xml.SelectSingleNode("Root/Data/RtnCode");
            XmlElement eleRtnMsg = (XmlElement)xml.SelectSingleNode("Root/Data/RtnMsg");
            XmlElement eleTradeNo = (XmlElement)xml.SelectSingleNode("Root/Data/TradeNo");
            XmlElement elePayDate = (XmlElement)xml.SelectSingleNode("Root/Data/PayDate");
            XmlElement eleTradeAmount = (XmlElement)xml.SelectSingleNode("Root/Data/TradeAmount");
            XmlElement elePaymentNo = (XmlElement)xml.SelectSingleNode("Root/Data/PaymentNo");
            XmlElement elePayFrom = (XmlElement)xml.SelectSingleNode("Root/Data/PayFrom");

            //### 設定XML內容
            eleMerchantID.InnerText = merchantId;
            eleMerchantTradeNo.InnerText = merchantTradeNo;
            eleRtnCode.InnerText = "1";
            eleRtnMsg.InnerText = "Succeeded";
            eleTradeNo.InnerText = tradeNo;
            elePayDate.InnerText = payDate;
            eleTradeAmount.InnerText = payAmount;
            elePaymentNo.InnerText = paymentNo;
            elePayFrom.InnerText = payForm;

            //long epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
            //eleTimeStamp.InnerText = epoch.ToString();

            ////### 將XML透過AES加密
            string XMLData = new AllPay.ShareLib.Crypt().AES_EnCrypt(AesHashKey, AesHashIv, xml.OuterXml);

            //server端回傳
            string serverReponse = new AllPay.ShareLib.Network().FormPost(serverReplyUrl, "XMLData=" + XMLData, "", 0, 65001);

            ViewBag.Reponse = serverReponse;
            ViewBag.Result = false;

            if (serverReponse.IndexOf("1|OK") > -1)
            {
                ViewBag.Result = true;
            }

            return View();

        }
        //測試回傳給payment WebATM付款成功的動作
        public ActionResult TestWebAtmReturn()
        {

            string merchantId = "999999999";
            string merchantTradeNo = "40964";           //payment的tradeID
            string tradeNo = "20121202033318643476";    //payment center的tradeNo(隨便填,可以不用改)
            string tradeAmount = "1000";
            string AesHashKey = "fugvqTnG3ROx81MO";
            string AesHashIv = "WkSfnqIaHLbUMV5X";



            //string serverRelpyUrl = "http://devpayment.allpay.com.tw:12005/bank/paymentcenter/srv/webatm/result";
            //string clientReplyUrl = "http://devpayment.allpay.com.tw:12005/bank/paymentcenter/cnt/webatm/result";
            string serverRelpyUrl = "https://payment.allpay.com.tw/bank/paymentcenter/srv/webatm/result";
            string clientReplyUrl = "https://payment.allpay.com.tw/bank/paymentcenter/cnt/webatm/result";

            //也必需更新payment center的訂單,因為payment會反查
            /*
                update Payment_TradeNo
                set PaymentStatus = '1'
                ,PaymentDate = GETDATE()
                where TradeID = 12153

                update Payment_TradeDetail_WebATM
                set RtnCode = '1'
                ,RtnPaymentDate= GETDATE()
                ,RtnBankCode = '008'
                ,RtnBankAcc = '168371'
                where TradeID = 12153
             * */

            XmlDocument XML = new XmlDocument();
            XML.Load(HttpContext.Server.MapPath("~/App_Data/ReturnMerchantWebATM.xml"));

            //###取得XML的節點
            XmlElement eleMerchantID = (XmlElement)XML.SelectSingleNode("Root/Data/MerchantID");
            XmlElement eleMerchantTradeNo = (XmlElement)XML.SelectSingleNode("Root/Data/MerchantTradeNo");
            XmlElement eleRtnCode = (XmlElement)XML.SelectSingleNode("Root/Data/RtnCode");
            XmlElement eleRtnMsg = (XmlElement)XML.SelectSingleNode("Root/Data/RtnMsg");
            XmlElement eleTradeNo = (XmlElement)XML.SelectSingleNode("Root/Data/TradeNo");
            XmlElement eleTradeDate = (XmlElement)XML.SelectSingleNode("Root/Data/TradeDate");
            XmlElement eleTradeAmount = (XmlElement)XML.SelectSingleNode("Root/Data/TradeAmount");
            XmlElement eleAccBank = (XmlElement)XML.SelectSingleNode("Root/Data/AccBank");
            XmlElement eleAccNo = (XmlElement)XML.SelectSingleNode("Root/Data/AccNo");
            XmlElement eleBankName = (XmlElement)XML.SelectSingleNode("Root/Data/BankName");

            //### 設定XML內容
            eleMerchantID.InnerText = merchantId;
            eleMerchantTradeNo.InnerText = merchantTradeNo;
            eleRtnCode.InnerText = "1";
            eleRtnMsg.InnerText = "success";
            eleTradeNo.InnerText = tradeNo;
            eleTradeDate.InnerText = "2012/12/02 03:33:18"; // DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
            eleTradeAmount.InnerText = tradeAmount;
            eleAccBank.InnerText = "808";
            eleAccNo.InnerText = "17962";
            eleBankName.InnerText = "ESUN";

            //### 將XML透過AES加密
            string XMLData = new AllPay.ShareLib.Crypt().AES_EnCrypt(AesHashKey, AesHashIv, XML.OuterXml);

            string serverResponse = new AllPay.ShareLib.Network().FormPost(serverRelpyUrl, "XMLData=" + XMLData, "", 0, 65001);

            //再client端回傳
            string clientResponse = new AllPay.ShareLib.Network().FormPost(clientReplyUrl, "XMLData=" + XMLData, "", 0, 65001);

            ViewBag.ServerResponse = serverResponse;
            ViewBag.ServerResult = false;

            if (serverResponse.IndexOf("1|OK") > -1)
            {
                ViewBag.Result = true;
            }

            ViewBag.ClientResponse = clientResponse;

            return View();
        }