/// <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); }