Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
            }
        }
Exemple #5
0
        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;
            }
        }