private async Task <JsonResult> SendWaitMainStoneMsg(Order order) { var accountBindingManager = new AccountBindingManager(); var accountbing = await accountBindingManager.GetAccountBindingByCustomerId(order.CustomerId); if (accountbing == null) { return(Json(InvokedResult.Fail("404", "客户未绑定微信"))); } SendMesHelp.SendNews(new NewsMes() { OpenId = accountbing.WxAccount, Articles = new List <Article>() { new Article() { Title = "等待主石", Description = string.Format("订单{0}进入等石阶段,请及时邮件主石!", order.Id), Url = "http://www.18k.hk/customer/order/list?OrderId=" + order.Id, PicUrl = "http://www.18k.hk/static/images/ddzs.jpg" } } }); var operationLogManager = new OrderOperationLogManager(User); await operationLogManager.AddLogAsync(OperationLogStatus.CuiShi, order.Id); return(Json(InvokedResult.SucceededResult)); }
private async Task <JsonResult> SendShipmentOrderMsg(ShipmentOrder shipmentOrder) { if (shipmentOrder.ShipmentOrderInfos.Any()) { var accountBindingManager = new AccountBindingManager(); var accountbing = await accountBindingManager.GetAccountBindingByCustomerId(shipmentOrder.CustomerId); if (accountbing == null) { return(Json(InvokedResult.Fail("404", "客户未绑定微信"))); } SendMesHelp.SendNews(new NewsMes() { OpenId = accountbing.WxAccount, Articles = new List <Article>() { new Article() { Title = "订单已发货", Description = string.Format("订单{0}已于{1}出货!", string.Join(",", shipmentOrder.ShipmentOrderInfos.Select(r => r.Id)), DateTime.Now.ToShortDateString()), Url = "https://www.18k.hk/customer/order/list?status=2", PicUrl = "https://www.18k.hk/static/images/ddzs.jpg" } } }); } return(Json(InvokedResult.SucceededResult)); }
private async Task <JsonResult> SendCustomerTobeConfirmMsg(Order order, OrderAttachment designImage, bool isLog = false) { var accountBindingManager = new AccountBindingManager(); var accountbing = await accountBindingManager.GetAccountBindingByCustomerId(order.CustomerId); if (accountbing == null) { return(Json(InvokedResult.Fail("404", "客户未绑定微信"))); } SendMesHelp.SendNews(new NewsMes() { OpenId = accountbing.WxAccount, Articles = new List <Article>() { new Article() { Title = "设计稿确认", Description = string.Format("订单{0}已上传设计稿,请确认!", order.Id), Url = "http://www.18k.hk/customer/order/list?OrderId=" + order.Id, PicUrl = string.Format("http://www.18k.hk/orderimage/{0}.jpg", designImage.FileInfoId) } } }); if (isLog) { var operationLogManager = new OrderOperationLogManager(User); await operationLogManager.AddLogAsync(OperationLogStatus.CuiQueRen, order.Id); } return(Json(InvokedResult.SucceededResult)); }
public async Task <ActionResult> WeChatLogin(LoginViewModel model, string returnUrl) { ModelState.Remove("Password"); if (!ModelState.IsValid) { return(View(model)); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var manager = new SignInManager(new SaleUserStore()); IOwinContext owinContext = HttpContext.GetOwinContext(); var wxAccount = owinContext.Request.Cookies[SaleManagentConstants.ConfigKeys.wxAccountCookie]; if (string.IsNullOrEmpty(wxAccount)) { ModelState.AddModelError("", "登陆失败"); return(View("login")); } var accountBindingManager = new AccountBindingManager(); var isBinding = await accountBindingManager.IsBindingAsync(model.UserName); if (isBinding) { ModelState.AddModelError("", "账号已被绑定,不能重复绑定"); return(View(model)); } var result = await manager.UserNameSignInAsync(owinContext.Authentication, model.UserName, false); switch (result) { case SignInResult.Success: await accountBindingManager.CreateAccountBinding(new Core.Models.AccountBinding { UserName = model.UserName, WxAccount = wxAccount }); return(RedirectToLocal(returnUrl)); case SignInResult.LockedOut: return(View("Lockout")); case SignInResult.Disabled: ModelState.AddModelError("", "账号已被禁用"); return(View(model)); case SignInResult.Failure: default: ModelState.AddModelError("", "账号或手机号码不正确"); return(View(model)); } }
public void OnActionExecuting(ActionExecutingContext filterContext) { var owinContext = filterContext.HttpContext.GetOwinContext(); var isWechat = owinContext.GetBrowser().IsWeChat; if (!isWechat) { return; } try { //微信授权获得code var code = owinContext.Request.Query.Get("code"); if (string.IsNullOrEmpty(code)) { LoggerHelper.Logger.LogInformation("跳转到微信授权"); filterContext.HttpContext.Response.Redirect(string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state=123#wechat_redirect", _AppId, System.Web.HttpUtility.UrlEncode(_OauthRedirecturi))); return; } else //通过code获取openId { LoggerHelper.Logger.LogInformation($"微信授权成功获取code:{code}"); var url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type={3}", _AppId, _AppSecret, code, "authorization_code"); OAuthAccessTokenResult model = new OAuthAccessTokenResult(); using (var client = new HttpClient()) { var response = client.GetAsync(url).Result; if (response.StatusCode != System.Net.HttpStatusCode.OK) { return; } var result = response.Content.ReadAsStringAsync().Result; model = JsonConvert.DeserializeObject <OAuthAccessTokenResult>(result); response.Dispose(); } if (string.IsNullOrEmpty(model.openid)) { return; } LoggerHelper.Logger.LogInformation($"微信获取openId成功:{model.openid}"); var date = DateTime.Now.Date; var options = new CookieOptions { Expires = date.AddDays(SaleManagentConstants.UI.DefaultExpiringDays) }; owinContext.Response.Cookies.Append(SaleManagentConstants.ConfigKeys.wxAccountCookie, model.openid, options); var accountBindingManager = new AccountBindingManager(); var accountBing = AsyncHelper.RunSync(async() => await accountBindingManager.GetAccountBindingAsync(model.openid)); if (accountBing == null) { return; } LoggerHelper.Logger.LogInformation($"{accountBing.UserName}已经绑定{accountBing.WxAccount}"); var manager = new SignInManager(new SaleUserStore()); var signInResult = AsyncHelper.RunSync(async() => await manager.UserNameSignInAsync(owinContext.Authentication, accountBing.UserName, false)); LoggerHelper.Logger.LogInformation($"通过绑定登陆:{signInResult}"); if (signInResult == SignInResult.Success) { filterContext.Result = new RedirectResult("/Home/Index"); } } } catch (Exception e) { LoggerHelper.Logger.LogError(e.InnerException.ToString()); return; } }