/// <summary>
        /// 获取用户基本信息 20200525
        /// </summary>
        public WechatUserInfo GetWeChartUserInfoNew(WeChatUserModel userModel)
        {
            WeChatInfoModel InfoModel  = _IWeChatClientRepository.Decrypt(userModel.code, _IOptions.Value.appid, _IOptions.Value.secret);
            WechatUserInfo  wechatUser = _IWeChatClientRepository.DecryptUserInfo(userModel.encryptedData, userModel.iv, InfoModel.session_key);

            return(wechatUser);
        }
Beispiel #2
0
        /// <summary>
        /// 用户初次进入自愿者小程序验证用户是否是微官网已注册用户,如果是返回微官网用户中心信息,如果不是返回空
        /// </summary>
        public Dtol.WGWdtol.UserInfo WGWDecrypt(string code, string appId, string appSecret)
        {
            Dtol.WGWdtol.UserInfo WGWuserInfo = new Dtol.WGWdtol.UserInfo();

            if (code == null || code == "")
            {
                return(null);
            }

            if (String.IsNullOrEmpty(code))
            {
                return(null);
            }
            WeChatInfoModel oiask = JsonConvert.DeserializeObject <WeChatInfoModel>(GetOpenIdAndSessionKeyString(code, appId, appSecret));

            WGWuserInfo = GetUser(oiask.unionid);
            if (WGWuserInfo.ID != null)
            {
                string photopath = WGWuserInfo.PhotoUrl;
                if (!photopath.Contains("https"))
                {
                    photopath            = photopath.Substring(2, (photopath.Length - 2));
                    WGWuserInfo.PhotoUrl = "http://wgw.bhteda.com" + photopath;
                }
            }

            return(WGWuserInfo);
        }
Beispiel #3
0
        /// <summary>
        /// 20200629 用户授权 通过解密获取unionid  再查询是否是泰便利注册用户
        /// </summary>

        public UserInfoResModel EasyDecryptByDE(WeChatCodeDEModel codeModel, string appId, string appSecret)
        {
            UserInfoResModel resModel = new UserInfoResModel();
            BaseViewModel    model    = new BaseViewModel();

            Dtol.Easydtol.UserInfo user = new Dtol.Easydtol.UserInfo();

            if (codeModel.code == null || codeModel.code == "")
            {
                model.ResponseCode = 9;
                model.Message      = "参数为空";
            }

            WeChatInfoModel oiask = JsonConvert.DeserializeObject <WeChatInfoModel>(GetOpenIdAndSessionKeyString(codeModel.code, appId, appSecret));

            if (!string.IsNullOrEmpty(oiask.session_key))
            {
                WechatUserInfoResModel res = new WechatUserInfoResModel();

                res = Decrypt(codeModel.encryptedData, codeModel.iv, oiask.session_key);
                if (!string.IsNullOrEmpty(res.unionId))
                {
                    V_OpenidUnionid v_Openid = new V_OpenidUnionid();
                    v_Openid.openid  = oiask.openid;
                    v_Openid.unionid = res.unionId;
                    v_OpenidUnionidRepository.Add(v_Openid);
                    v_OpenidUnionidRepository.SaveChanges();

                    user = GetEasyUser(res.unionId);

                    if (!String.IsNullOrEmpty(user.ID))
                    {
                        model.ResponseCode = 5;
                        model.Message      = "unionid不为空,已注册泰便利";
                    }
                    else
                    {
                        model.ResponseCode = 6;
                        model.Message      = "unionid不为空,未注册泰便利";
                    }
                }
                else
                {
                    model.ResponseCode = 7;
                    model.Message      = "授权未获取unionid";
                }
            }
            else
            {
                model.ResponseCode = 8;
                model.Message      = "授权未获取session_key";
            }
            resModel.baseView = model;
            resModel.userInfo = user;

            return(resModel);
        }
Beispiel #4
0
        //20200514 根据code 获取openid
        public OpenidViewModel GetWeChartOpenid(string code)
        {
            OpenidViewModel openidView = new OpenidViewModel();
            string          openid     = _IWeChatClientRepository.GetOpenIdAndSessionKeyString(code, _IOptions.Value.appid, _IOptions.Value.secret);

            WeChatInfoModel oiask = JsonConvert.DeserializeObject <WeChatInfoModel>(openid);

            openidView.openid = oiask.openid;

            return(openidView);
        }
        public WeChatInfoModel Decrypt(string code, string appId, string appSecret)
        {
            if (code == null || code == "")
            {
                return(null);
            }

            if (String.IsNullOrEmpty(code))
            {
                return(null);
            }
            WeChatInfoModel oiask = JsonConvert.DeserializeObject <WeChatInfoModel>(GetOpenIdAndSessionKeyString(code, appId, appSecret));

            return(oiask);
        }
Beispiel #6
0
        /// <summary>
        /// 根据微信小程序平台提供的解密算法解密数据,推荐直接使用此方法
        /// </summary>
        /// <param name="codeModel">登陆信息</param>
        /// <returns>用户信息</returns>
        public WeChatUserCheckResModel Decrypt(WeChatCodeModel codeModel, string appId, string appSecret)
        {
            WeChatUserCheckResModel userInfoCheck = new WeChatUserCheckResModel();

            if (codeModel == null)
            {
                return(null);
            }

            if (String.IsNullOrEmpty(codeModel.code))
            {
                return(null);
            }
            WeChatInfoModel oiask = JsonConvert.DeserializeObject <WeChatInfoModel>(GetOpenIdAndSessionKeyString(codeModel.code, appId, appSecret));

            userInfoCheck = CheckUser(oiask.unionid);

            return(userInfoCheck);
        }
Beispiel #7
0
        /// <summary>
        /// 用户初次进入自愿者小程序验证用户是否是泰便利已注册用户,如果是返回泰便利用户中心信息,如果不是返回空  20200510
        /// </summary>
        public Dtol.Easydtol.UserInfo EasyDecrypt(string code, string appId, string appSecret)
        {
            Dtol.Easydtol.UserInfo userInfo = new Dtol.Easydtol.UserInfo();

            if (code == null || code == "")
            {
                return(userInfo);
            }

            if (String.IsNullOrEmpty(code))
            {
                return(userInfo);
            }
            WeChatInfoModel oiask = JsonConvert.DeserializeObject <WeChatInfoModel>(GetOpenIdAndSessionKeyString(code, appId, appSecret));

            if (!String.IsNullOrEmpty(oiask.unionid))
            {
                userInfo = GetEasyUser(oiask.unionid);
            }

            return(userInfo);
        }
Beispiel #8
0
        /// <summary>
        /// 20200629  用户初次进入自愿者小程序验证用户是否是泰便利已注册用户,如果是返回泰便利用户中心信息,如果不是返回空  20200510
        /// </summary>
        public UserInfoResModel EasyDecryptByCode(string code, string appId, string appSecret)
        {
            UserInfoResModel resModel = new UserInfoResModel();
            BaseViewModel    model    = new BaseViewModel();

            Dtol.Easydtol.UserInfo user = new Dtol.Easydtol.UserInfo();

            if (code == null || code == "")
            {
                model.ResponseCode = 9;
                model.Message      = "参数为空";

                resModel.baseView = model;
                resModel.userInfo = user;
                return(resModel);
            }

            WeChatInfoModel oiask = JsonConvert.DeserializeObject <WeChatInfoModel>(GetOpenIdAndSessionKeyString(code, appId, appSecret));

            if (!String.IsNullOrEmpty(oiask.unionid))
            {
                user = GetEasyUser(oiask.unionid);

                if (!String.IsNullOrEmpty(user.ID))
                {
                    model.ResponseCode = 7;
                    model.Message      = "unionid不为空,已注册泰便利";
                }
                else
                {
                    model.ResponseCode = 6;
                    model.Message      = "unionid不为空,未注册泰便利";
                }
                resModel.baseView = model;
                resModel.userInfo = user;
            }
            else
            {
                if (!String.IsNullOrEmpty(oiask.openid))
                {
                    var mm = v_OpenidUnionidRepository.GetByParasOne(oiask.openid);
                    if (mm != null)
                    {
                        user = GetEasyUser(mm.unionid);
                        if (!String.IsNullOrEmpty(user.ID))
                        {
                            model.ResponseCode = 7;
                            model.Message      = "unionid不为空,已注册泰便利";
                        }
                        else
                        {
                            model.ResponseCode = 6;
                            model.Message      = "unionid不为空,未注册泰便利";
                        }
                        resModel.baseView = model;
                        resModel.userInfo = user;
                    }
                    else
                    {
                        model.ResponseCode = 8;
                        model.Message      = "unionid为空,未授权";
                        resModel.baseView  = model;
                        resModel.userInfo  = user;
                    }
                }
                else
                {
                    model.ResponseCode = 8;
                    model.Message      = "unionid为空,未授权";
                    resModel.baseView  = model;
                    resModel.userInfo  = user;
                }
            }

            return(resModel);
        }
Beispiel #9
0
        public ActionResult <WeChatInfoModel> GetWeChartUserInfo(WeChatCodeModel codeModel)
        {
            WeChatInfoModel resModel = _weChatHttpClient.GetWeChartUserInfo(codeModel);

            return(resModel);
        }
        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        public WeChatInfoModel GetWeChartUserInfo(WeChatCodeModel codeModel)
        {
            WeChatInfoModel InfoModel = _IWeChatClientRepository.Decrypt(codeModel.code, _IOptions.Value.appid, _IOptions.Value.secret);

            return(InfoModel);
        }