public async Task <IActionResult> Success(ContactDataViewModel ContactData, string OrderId, string MemberMobile, byte OrderStateId = 40) { PostOrderViewModel1 povm = null; int ret = 0; try { if (OrderStateId == 1) { // 3.系統在Action【Cart/Success】判斷2傳送OrderStateId==1。 // 4.系統變更訂單狀態為1。 ret = await IMER.UpdateOrderState(OrderId, OrderStateId); if (ret != 0) { return(View(new PostOrderViewModel1 { OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile, ret = ret })); } } if (OrderStateId == 2) { // 3.系統在Action【Cart/Success】判斷2傳送OrderStateId==2。 // 4.系統變更訂單狀態為2。 ret = await IMER.UpdateOrderState(OrderId, OrderStateId); if (ret != 0) { return(View(new PostOrderViewModel1 { OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile, ret = ret })); } } List <OrderCheckProductStockEnoughViewModel> OCPSE = await IOR.OrderCheckProductStockEnough(OrderId); if (OCPSE == null) { return(View(new PostOrderViewModel1 { OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile, ret = ret, OCPSE = OCPSE })); } // 3a.系統在Action【Cart/Success】判斷2傳送OrderStateId!=1。 // 3a-1.回4-1。 // 4-1.系統刪除會員之所有購物車資料。 ret = await IMER.DeleteAllMemberCarts(MemberMobile); if (ret != 0) { return(View(new PostOrderViewModel1 { OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile })); } // 16.系統讀取訂單明細。 List <CartListViewModel> lstCLVM = await IOR.GetOrderDetail(OrderId); // 17.系統更新商品庫存。 ret = await IOR.UpdateProductStock(lstCLVM); if (ret != 0) { return(View(new PostOrderViewModel1 { OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile })); } // 5.系統在Action【Cart/Success】寄發建立訂單eMail(含平台連結)。 //EmailMessage em = new EmailMessage(); //EmailAddress fAdd = new EmailAddress(); //fAdd.Name = IEC.SmtpUsername; //fAdd.Address = $@"{IEC.SmtpUsername}"; ////fAdd.Address = $@"{IEC.SmtpUsername}@{IEC.SmtpServer}"; //em.FromAddresses.Add(fAdd); //EmailAddress tAdd = new EmailAddress(); //tAdd.Name = ContactData.MemberName; //tAdd.Address = ContactData.eMail; //em.ToAddresses.Add(tAdd); //em.Subject = "288訂購訊息"; //em.Content = "您好,\n"; //em.Content += $"您在288建立的訂單己完成,訂單代碼為{OrderId},<br>"; //em.Content += $"若為會員,請至本平台會員中心查詢訂單處理狀態,<br>"; //em.Content += $"若非會員,本平台會寄送eMail告知訂單處理狀況,<br>"; //em.Content += $"288網址:http://dreammaker.game.tw/YunQiWholesale,<br>"; //em.Content += $"客服專線:04-28825252"; //em.Content += $"288應謝您!"; // System.Net.Mail.MailMessage Message //IES.Send(em); // 5.系統在Action【Cart/Success】寄發建立訂單eMail(含平台連結)。 System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); mail.To.Add(ContactData.eMail); mail.From = new System.Net.Mail.MailAddress($@"{IEC.SmtpUsername}@{IEC.SmtpServer}"); mail.Subject = "288訂購訊息"; mail.Body = "您好,\n"; mail.Body += $"您在288建立的訂單己完成,訂單代碼為{OrderId},<br>"; mail.Body += $"若為會員,請至本平台會員中心查詢訂單處理狀態,<br>"; mail.Body += $"若非會員,本平台會寄送eMail告知訂單處理狀況,<br>"; mail.Body += $"288網址:http://dreammaker.game.tw/YunQiWholesale,<br>"; mail.Body += $"客服專線:04-28825252"; mail.Body += $"288應謝您!"; mail.IsBodyHtml = true; IES.SendMail(mail); // 6.系統判斷5執行成功。 // 7.系統回傳View【Cart/Success】,並傳回new PostOrderViewModel1 { OrderDetail=null, ContactData=contactData, CartTobal= null, OrderId=4上傳orderId, RtnModel=null }。 povm = new PostOrderViewModel1 { OrderDetail = null, ContactData = ContactData, CartTobal = -1, OrderId = OrderId, RtnModel = null, MemberMobile = MemberMobile }; } catch (Exception ex) { string msg = ex.Message; // 6a.系統判斷5執行失敗。 // 6a-1.系統回傳View【Cart/Success】,並傳回new PostOrderViewModel1 { OrderDetail=null, ContactData=null, CartTobal= null, OrderId="", RtnModel=null }。 povm = new PostOrderViewModel1 { OrderDetail = null, ContactData = null, CartTobal = -1, OrderId = "", RtnModel = null, MemberMobile = MemberMobile }; } return(View(povm)); }
// ReturnURL:信用卡付款結果通知 public async Task <ActionResult <string> > PostCardInfo([FromForm] CardInfo model) { string ret = "1|OK"; CheckMacValueModel cmvm = null; byte OrderStateId = 4; try { if (model.RtnCode == 1) { // 3.系統在Action【Paymeent/PostCardInfo】判斷綠界傳送之RtnCode==1。 // 4.系統在Action【Paymeent/PostCardInfo】讀取對應訂單之CheckMacValue。 cmvm = await IOR.GetOrderCheckMacValue(model.MerchantTradeNo); if (cmvm != null) { // 5.系統判斷4傳回值!=null。 if (cmvm.CheckMacValue != "") { // 6.系統判斷4傳回值之CheckMacValue!=""。 // 6-1.系統設定OrderStateId=4。 OrderStateId = 4; } else { // 6a.系統判斷4傳回值之CheckMacValue==""。 // 6a-1.系統設定OrderStateId=6。 OrderStateId = 6; // 6a-2.回7。 } // 7.系統變更訂單狀態,並新增一筆會計帳。 int r = await IOR.UpdateOrderGreenCard(cmvm.OrderId, OrderStateId, model.TradeDate, model.PaymentType, model.TradeAmt, model.TradeNo, DateTime.Now); if (r == 0) { // 8-1.系統判斷7傳回值=0。 // 8-2.系統寄發己付款eMail。 System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); mail.To.Add(cmvm.eMail); mail.From = new System.Net.Mail.MailAddress($@"{IEC.SmtpUsername}@{IEC.SmtpServer}"); mail.Subject = "288訂購訊息"; mail.Body = "您好,\n"; mail.Body += $"您在288建立的訂單己付款完成,訂單代碼為{cmvm.OrderId},<br>"; mail.Body += $"若為會員,請至本平台會員中心查詢訂單處理狀態,<br>"; mail.Body += $"若非會員,本平台會寄送eMail告知訂單處理狀況,<br>"; mail.Body += $"288網址:http://288ibobo.com ,<br>"; mail.Body += $"客服專線:04-28825252"; mail.Body += $"288應謝您!"; mail.IsBodyHtml = true; IES.SendMail(mail); // 9系統回傳"1|OK"。 ret = "1|OK"; } else if (r == 2) { // 8-1a.系統判斷7傳回值=2。 // 8-1a-1.系統設定傳回值=”1|特店訂單編號找不到” ret = "1|特店訂單編號找不到"; // 8-1a-2.回10。 } else { // 8-1a.系統判斷7傳回值!=0/2。 // 8-1a-1.系統設定傳回值=”0|特店系統內部錯誤” ret = "0|特店系統內部錯誤"; // 8-1a-2.回10。 } } else { // 5a.系統判斷4傳回值==null。 // 5a-1.系統設定傳回值=”0|內部錯誤”。 ret = $@"0|特店系統內部錯誤"; // 5a-2.回10。 } } else { // 3a.系統在Action【Paymeent/PostCardInfo】判斷綠界傳送之RtnCode!=1。 // 3a-1.系統設定傳回值=”0|RtnMsg”。 //ret = $@"0|{model.RtnMsg}"; ret = $@"0|{model.RtnMsg}"; // 3a-2.回10。 } } catch (Exception ex) { // 8a.系統判斷7執行失敗。 // 8a-1.系統設定傳回值=”0|特店系統內部錯誤” // 8a-2.回10。 ret = $@"0|特店系統內部錯誤"; } return(ret); }
//20181121 ---棋 public async Task <IViewComponentResult> InvokeAsync(string MemberMobile, DateTime?sDate, DateTime?eDate, string ReferrerMobile, int Page = 1, int StartPage = 1) { //9-1.系統在ViewComponent【Followertriumph】中讀取Appsetting.json中的每頁筆數BRowsPerPage以及分頁頁碼連結總數PageCount。 int RowsPerPage = int.Parse(config["Page:BRowsPerPage"]); int PageCount = int.Parse(config["Page:PageCount"]); //9-2.系統在ViewComponent【Followertriumph】讀取我的下線業績總數。 long memberCount = await IOR.GetFollowertriumphCount(ReferrerMobile, sDate, eDate, MemberMobile); //9-3.系統依9-2傳回值將9傳送頁碼重設在Between 1 and(9讀取記錄筆數/RowsPerPage)+(9讀取記錄筆數%RowsPerPage==0?0:1)。 int TotalPages = (int)(memberCount / RowsPerPage); if (memberCount % RowsPerPage > 0) { TotalPages += 1; } if (Page < 1) { Page = 1; } if (Page > TotalPages) { Page = TotalPages; } if (Page <= 0) { Page = 1; } //9-4.系統計算資料Skip數 = (9傳送頁碼(預設1) - 1)*9 - 1讀取RowsPerPage。 int Skip = (Page - 1) * RowsPerPage; //9-5系統在ViewComponent【FollowertriumphViewComponent】讀取我的下線業績清單: List <FollowertriumphViewModel> FollowVM = await IOR.GetFollowertriumphList(ReferrerMobile, sDate, eDate, MemberMobile, Skip, RowsPerPage); //9-5-1系統在ViewComponent【FollowertriumphViewComponent】讀取下線批發總額: FollowertriumphTotalViewModel ReferrerTota = await IOR.GetFollowertriumphTotal(sDate, eDate, MemberMobile); //9-5-2系統在ViewComponent【FollowertriumphViewComponent】讀取會員批發總額: FollowertriumphTotalViewModel MemberTotall = await IOR.GetMemberTotal(sDate, eDate, MemberMobile); //計算Bonus 預設0 如果超過3000 把值取代掉 否則為0 //如果 ReferrerTota.Total >= 3000 將 Bonus 取代成 ReferrerTota.Total * 0.05M decimal Bonus = 0; if (MemberTotall.Total > 3000) { Bonus = ReferrerTota.Total * 0.05M; } //9-6.系統設定PagerTagHelper之相關參數 int CurrentPage = Page; //9-6-1.系統將管理者權限清單Session["EmployeeRights"]暫存在ViewBag.TR。 ViewBag.TR = HttpContext.Session.GetObjectFromJson <List <int> >("EmployeeRights"); ViewBag.Page = Page; return(View(new FollowertriumphManageViewModel { listFollowertriumphViewModel = FollowVM, CurrentPage = CurrentPage, TotalPages = TotalPages, PageCount = PageCount, StartPage = StartPage, Parameters = Page, FollowertriumphTotall = ReferrerTota, MemberTotall = MemberTotall, memberCount = memberCount, Bonus = Bonus, })); }
// PaymentInfoURL:ATM、CVS的取號結果通知 public async Task <ActionResult <string> > PostPaymentInfo([FromForm] PaymentInfo model) { string ret = "1|OK"; bool suc = true; string pay = model.PaymentType.Substring(0, 3); switch (pay) { case "ATM": if (model.RtnCode != 2) { // 3a.系統在Action【Paymeent/PostPaymentInfo】判斷綠界傳送之RtnCode!=2?(ATM),或是10100073(CVS)。 // 3a-1.系統設定傳回值=”0|RtnMsg”。 ret = $@"0|{model.RtnMsg}"; // 3a-2.回10。 suc = false; } break; case "CVS": if (model.RtnCode != 10100073) { // 3a.系統在Action【Paymeent/PostPaymentInfo】判斷綠界傳送之RtnCode!=2?(ATM),或是10100073(CVS)。 // 3a-1.系統設定傳回值=”0|RtnMsg”。 ret = $@"0|{model.RtnMsg}"; // 3a-2.回10。 suc = false; } break; default: break; } if (suc) { CheckMacValueModel cmvm = null; byte OrderStateId = 4; try { // 3.系統在Action【Paymeent/PostPaymentInfo】判斷綠界傳送之RtnCode==2?(ATM),或是10100073(CVS)。 // 4.系統在Action【Paymeent/PostCardInfo】讀取對應訂單之CheckMacValue。 cmvm = await IOR.GetOrderCheckMacValue(model.MerchantTradeNo); if (cmvm != null) { // 5.系統判斷4傳回值!=null。 if (cmvm.CheckMacValue != "") { // 6.系統判斷4傳回值之CheckMacValue!=""。 // 6-1.系統設定OrderStateId=2。 OrderStateId = 2; } else { // 6a.系統判斷4傳回值之CheckMacValue==""。 // 6a-1.系統設定OrderStateId=6。 OrderStateId = 6; // 6a-2.回7。 } // 7.系統變更訂單狀態。 int r = await IOR.UpdateOrderGreenATMCVS(cmvm.OrderId, OrderStateId, model.TradeDate, model.PaymentType, model.TradeAmt, model.TradeNo, model.BankCode, model.vAccount, model.ExpireDate, model.PaymentNo); if (r == 0) { // 8-1.系統判斷7傳回值=0。 // 8-2.系統寄發己付款eMail。 System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); mail.To.Add(cmvm.eMail); mail.From = new System.Net.Mail.MailAddress($@"{IEC.SmtpUsername}@{IEC.SmtpServer}"); mail.Subject = "288訂購訊息"; mail.Body = "您好,\n"; mail.Body += $"您在288建立的訂單己付款完成({model.PaymentType}),訂單代碼為{cmvm.OrderId},<br>"; if (pay == "ATM") { mail.Body += $"您的ATM繳款帳號為{model.vAccount}<br>"; } else if (pay == "CVS") { mail.Body += $"您的超商繳款代碼為{model.PaymentNo}<br>"; } mail.Body += $"若為會員,請至本平台會員中心查詢訂單處理狀態,<br>"; mail.Body += $"若非會員,本平台會寄送eMail告知訂單處理狀況,<br>"; mail.Body += $"288網址:http://288ibobo.com ,<br>"; mail.Body += $"客服專線:04-28825252"; mail.Body += $"288應謝您!"; mail.IsBodyHtml = true; IES.SendMail(mail); // 9系統回傳"1|OK"。 ret = "1|OK"; } else if (r == 2) { // 8-1a.系統判斷7傳回值=2。 // 8-1a-1.系統設定傳回值=”1|特店訂單編號找不到” ret = "1|特店訂單編號找不到"; // 8-1a-2.回10。 } else { // 8-1a.系統判斷7傳回值!=0/2。 // 8-1a-1.系統設定傳回值=”0|特店系統內部錯誤” ret = "0|特店系統內部錯誤"; // 8-1a-2.回10。 } } else { // 5a.系統判斷4傳回值==null。 // 5a-1.系統設定傳回值=”0|內部錯誤”。 ret = $@"0|特店系統內部錯誤"; // 5a-2.回10。 } } catch (Exception ex) { // 8a.系統判斷7執行失敗。 // 8a-1.系統設定傳回值=”0|特店系統內部錯誤” // 8a-2.回10。 ret = $@"0|特店系統內部錯誤"; } } return(ret); }