示例#1
0
        public ActionResult ShopReceiverOAuth(string code, int state)
        {
            var result = Senparc.Weixin.MP.AdvancedAPIs.OAuthApi.GetAccessToken(wechatTemplateSendOptions.AppId,
                                                                                wechatTemplateSendOptions.AppSecret, code);
            string            message = "faile";
            ShopOrderReceiver model   = null;

            Senparc.Weixin.MP.AdvancedAPIs.OAuth.OAuthUserInfo userInfo = null;
            try
            {
                if (result != null && !string.IsNullOrEmpty(result.openid))
                {
                    string openId       = result.openid;
                    string access_token = result.access_token;
                    userInfo = Senparc.Weixin.MP.AdvancedAPIs.OAuthApi.GetUserInfo(access_token, openId);
                    if (userInfo != null && !string.IsNullOrEmpty(userInfo.openid))
                    {
                        model = db.Query <ShopOrderReceiver>()
                                .Where(m => !m.IsDel)
                                .Where(m => m.ShopId == state)
                                .Where(m => m.ReceiverOpenId == openId)
                                .FirstOrDefault();
                        if (model == null)
                        {
                            bool canUsed = db.Query <ShopOrderReceiver>()
                                           .Where(m => !m.IsDel)
                                           .Where(m => m.ShopId == state)
                                           .Where(m => m.IsUsed)
                                           .Count() < 5;
                            model = new ShopOrderReceiver()
                            {
                                ShopId         = state,
                                ReceiverOpenId = openId,
                                NickName       = userInfo.nickname,
                                Headimgurl     = userInfo.headimgurl,
                                IsDel          = false,
                                IsUsed         = canUsed
                            };
                            db.AddTo(model);
                            message = "success";
                        }
                        else
                        {
                            //已成功授权过
                            model.Headimgurl = userInfo.headimgurl;
                            model.NickName   = userInfo.nickname;
                            message          = "authored";
                        }
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception e)
            {
                message = NickNameTryAgain(model, state, userInfo);
                logger.LogError("授权绑定失败:{0}", e.Message);
            }
            ViewData["message"] = message;
            return(View());
        }
示例#2
0
        //字符集问题,临时解决方案
        string NickNameTryAgain(ShopOrderReceiver model, int state, Senparc.Weixin.MP.AdvancedAPIs.OAuth.OAuthUserInfo userInfo)
        {
            string message = "faile";

            try
            {
                if (model == null)
                {
                    bool canUsed = db.Query <ShopOrderReceiver>()
                                   .Where(m => !m.IsDel)
                                   .Where(m => m.ShopId == state)
                                   .Where(m => m.IsUsed)
                                   .Count() < 5;
                    model = new ShopOrderReceiver()
                    {
                        ShopId         = state,
                        ReceiverOpenId = userInfo.openid,
                        NickName       = userInfo.nickname,
                        Headimgurl     = userInfo.headimgurl,
                        IsDel          = false,
                        IsUsed         = canUsed
                    };
                    db.AddTo(model);
                    message = "success";
                }
                else
                {
                    //已成功授权过
                    model.Headimgurl = userInfo.headimgurl;
                    model.NickName   = UniCodeToUTF8(userInfo.nickname);
                    message          = "authored";
                }
                db.SaveChanges();
            }
            catch (Exception)
            {
            }
            return(message);
        }
示例#3
0
        public ActionResult AddServerUserInfo(string code, int state)
        {
            string message = "faile";

            try
            {
                _logger.LogInformation($"==================AddServerUserInfo方法开始==================");
                var result = Senparc.Weixin.MP.AdvancedAPIs.OAuthApi.GetAccessToken(wechatTemplateSendOptions.AppId,
                                                                                    wechatTemplateSendOptions.AppSecret, code);
                ShopOrderReceiver model = null;
                Senparc.Weixin.MP.AdvancedAPIs.OAuth.OAuthUserInfo userInfo = null;

                if (result != null && !string.IsNullOrEmpty(result.openid))
                {
                    string openId       = result.openid;
                    string access_token = result.access_token;
                    userInfo = Senparc.Weixin.MP.AdvancedAPIs.OAuthApi.GetUserInfo(access_token, openId);
                    if (userInfo != null && !string.IsNullOrEmpty(userInfo.openid))
                    {
                        var shopServiceUserInfo = db.ShopServiceUserInfo.FirstOrDefault(
                            m => m.Openid.Equals(userInfo.openid) &&
                            m.Unionid.Equals(userInfo.unionid) &&
                            m.ShopId.Equals(state) &&
                            !m.IsDel
                            );
                        if (shopServiceUserInfo != null)
                        {
                            //已添加授权
                            shopServiceUserInfo.Headimgurl = userInfo.headimgurl;
                            shopServiceUserInfo.Nickname   = userInfo.nickname;
                            db.SaveChanges();
                            message = "authored";
                        }
                        else
                        {
                            shopServiceUserInfo            = new ShopServiceUserInfo();
                            shopServiceUserInfo.Headimgurl = userInfo.headimgurl;
                            shopServiceUserInfo.Nickname   = userInfo.nickname;
                            shopServiceUserInfo.Openid     = userInfo.openid;
                            shopServiceUserInfo.Sex        = userInfo.sex == 1 ? "男" : "女";
                            shopServiceUserInfo.Province   = userInfo.province;
                            shopServiceUserInfo.City       = userInfo.city;
                            shopServiceUserInfo.Country    = userInfo.country;
                            shopServiceUserInfo.Headimgurl = userInfo.headimgurl;
                            shopServiceUserInfo.Unionid    = userInfo.unionid;
                            shopServiceUserInfo.AddTime    = DateTime.Now;
                            shopServiceUserInfo.ShopId     = state;
                            db.ShopServiceUserInfo.Add(shopServiceUserInfo);
                            db.SaveChanges();
                            message = "success";
                        }
                    }
                }
                _logger.LogInformation($"==================AddServerUserInfo方法结束==================");
            }
            catch (Exception e)
            {
                message = e.Message;
                _logger.LogError($"添加授权客服失败:{ e.Message}  |   { e.InnerException.Message}");
            }
            //ViewData["message"] = message;
            return(Json(new { Message = message }));
        }