/// <summary>
        /// 模擬廠商通知AllPay出貨狀態
        /// </summary>
        /// <returns></returns>
        public ActionResult SendDeliveryNotify() {
            
            long merchantId = 1000070;   //測試機目前給企劃測試的特店id是1000070

            int tradeQuantity = 2;
            string ShippingState = "5";  // 5:出貨 / 6:無貨可出 / 7:延遲出貨

            Trade trade = new Trade();
            
            //測試用資料
            //TradeNo
            trade.TradeNo.AllPayTradeNo = "";

            //TradeDetail
            trade.TradeDetail.MerchantID = merchantId;
            trade.TradeDetail.MerchantTradeNo = "";
            trade.TradeDetail.CharSet = "utf-8";
            trade.TradeDetail.Remark = "出貨通知測試-" + merchantId;

            for (int i = 1; i <= tradeQuantity; i++)
            {
                //TradeItemsDetail
                TradeItemsDetail tradeItemsDetailA = new TradeItemsDetail();
                tradeItemsDetailA.ItemNo = "A00" + i;
                tradeItemsDetailA.ShippingState = ShippingState;
                tradeItemsDetailA.ShippingDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");

                trade.TradeItemsDetailList.Add(tradeItemsDetailA);
            }

            return View(trade);

        }
        public ActionResult SendOrderChangeNotify(Trade trade)
        {
            string testHashKey = "fugvqTnG3ROx81MO";         //for 1000070
            string testHashIv = "WkSfnqIaHLbUMV5X";
            string XMLData = "";

            if (1000070 == trade.TradeDetail.MerchantID)
            {

            }
            else if (1000139 == trade.TradeDetail.MerchantID)
            {
                testHashKey = "Zf1AjVRlwE4XjlF9";
                testHashIv = "Ps8hPWGtUW0PE3Gk";
            }


            string createTradePostDomain = ConfigurationManager.AppSettings["AllPayPaymentDomain"].ToString();
            string postUrl = createTradePostDomain + "/cashier/OrderChangeConfirm";  //接收通知退換貨的網址


            XMLData += "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
            XMLData += "<Root>";
            XMLData += "<Data>";
            XMLData += "<MerchantID>" + trade.TradeDetail.MerchantID + "</MerchantID>";
            XMLData += "<MerchantTradeNo>" + trade.TradeDetail.MerchantTradeNo + "</MerchantTradeNo>";
            XMLData += "<TradeNo>" + trade.TradeNo.AllPayTradeNo + "</TradeNo>";
            XMLData += "<EncodeChartset>" + trade.TradeDetail.CharSet + "</EncodeChartset>";


            foreach (TradeItemsDetail tradeItemsDetail in trade.TradeItemsDetailList)
            {
                if (!string.IsNullOrEmpty(tradeItemsDetail.ItemNo))
                {
                    XMLData += "<ItemData>";
                    XMLData += "<ItemNo>" + tradeItemsDetail.ItemNo + "</ItemNo>";
                    XMLData += "<Amount>" + tradeItemsDetail.SubTotalAMT + "</Amount>";
                    XMLData += "<InfoType>" + tradeItemsDetail.ShippingState + "</InfoType>";
                    XMLData += "<ConfirmState>" + tradeItemsDetail.VendorReplyStatus + "</ConfirmState>";
                    XMLData += "<Remark>" + HttpUtility.UrlEncode("退換貨通知測試") + "</Remark>";
                    XMLData += "</ItemData>";                    
                }
               
            }

            XMLData += "</Data>";
            XMLData += "</Root>";

            //### 將XML透過AES加密
            string encryXMLData = new AllPay.ShareLib.Crypt().AES_EnCrypt(testHashKey, testHashIv, XMLData);

            Dictionary<string, string> postCollection = new Dictionary<string, string>();
            postCollection.Add("MerchantID", trade.TradeDetail.MerchantID.ToString());
            postCollection.Add("XMLData", encryXMLData);

            Hashtable RequestTable = new Hashtable();

            foreach (var item in postCollection)
            {
                RequestTable.Add(item.Key, item.Value);

            }


            //### 發送到Mp, 取得Response
            string ServerResponse = DoRequest(postUrl, RequestTable);

            ViewBag.SendResult = ServerResponse;

            return View("SendOrderChangeNotify_Receive");
        }
        /// <summary>
        /// 模擬廠商通知AllPay訂單的退換貨狀態
        /// </summary>
        /// <returns></returns>
        public ActionResult SendOrderChangeNotify()
        {
            string realIP = new AllPay.ShareLib.Network().GetRemoteRealIP();

            long merchantId = 1000070;   //測試機目前給企劃測試的特店id是1000070

            int tradeQuantity = 2;
            string ShippingState = "1";  // 1:退貨通知 / 2:換貨通知 / 3:取消訂單

            Trade trade = new Trade();

            //測試用資料
            //TradeNo
            trade.TradeNo.AllPayTradeNo = "";

            //TradeDetail
            trade.TradeDetail.MerchantID = merchantId;
            trade.TradeDetail.MerchantTradeNo = "";
            trade.TradeDetail.CharSet = "utf-8"; 

            for (int i = 1; i <= tradeQuantity; i++)
            {
                //TradeItemsDetail
                TradeItemsDetail tradeItemsDetailA = new TradeItemsDetail();
                tradeItemsDetailA.ItemNo = "A00" + i;
                tradeItemsDetailA.SubTotalAMT = 5;
                tradeItemsDetailA.ShippingState = ShippingState;
                tradeItemsDetailA.VendorReplyStatus = "1";
                
                trade.TradeItemsDetailList.Add(tradeItemsDetailA);
            }

            return View(trade);

        }