Exemplo n.º 1
0
        public ReJson SyncWeixinInfo(string sessionkey, string userInfo, int inviteid = 0)
        {
            if (string.IsNullOrEmpty(sessionkey))
            {
                return(new ReJson(5003, "登录状态失败"));
            }
            WXAppSession entity = WXAppSession.Find(WXAppSession._.Key == sessionkey);

            if (entity == null)
            {
                return(new ReJson("未找到登录状态!"));
            }
            if (string.IsNullOrEmpty(userInfo))
            {
                return(new ReJson("用户信息错误!"));
            }
            WXAppUserInfo info = JsonConvert.DeserializeObject <WXAppUserInfo>(userInfo);

            if (string.IsNullOrEmpty(info.avatarUrl))
            {
                return(new ReJson("微信用户信息错误!"));
            }
            //获取用户
            Member my = Member.FindById(entity.UId);

            if (my == null)
            {
                return(new ReJson(40000, "系统找不到本用户!"));
            }
            //同步用户信息
            my.Country       = info.country;
            my.UserImg       = info.avatarUrl;
            my.City          = info.city;
            my.Province      = info.province;
            my.Sex           = info.gender;
            my.Nickname      = info.nickName;
            my.LastLoginTime = DateTime.Now;
            if (inviteid > 0 & my.Parent == 0)
            {
                Member inviter = Member.Find(Member._.Id == inviteid);
                if (inviter != null)
                {
                    my.Parent      = inviter.Id;
                    my.Grandfather = inviter.Parent;
                }
            }
            my.Update();

            var detail = new { sessionkey = entity.Key, username = info.nickName, userimg = info.avatarUrl };

            return(new ReJson(0, "同步信息成功!", detail));
        }
Exemplo n.º 2
0
        public HttpResponseMessage Register([FromBody] JObject jdata)
        {
            dynamic       args = jdata;
            WXAppUserInfo info = (args.userInfo as JObject).ToObject <WXAppUserInfo>();

            if (info == null)
            {
                return(ApiResponse(new ApiResponseMessage()
                {
                    Message = "用户信息不能为空", Status = ResultStatus.Failed
                }));
            }
            string openid = SecurityHelper.DecryptDES(args.openid.Value, Common.ConstFiled.OpenIdEncryptKey);
            var    user   = _repositoryFactory.IWeChatMember.Single(x => x.OpenId == openid);
            bool   modify = true;

            if (user == null)
            {
                modify = false;
                user   = new Entity.WeChatMember();
            }
            user.AvatarUrl = info.avatarUrl;
            user.City      = info.city;
            user.Country   = info.country;
            user.Gender    = info.gender;
            user.NickName  = info.nickName;
            user.Province  = info.province;
            if (modify)
            {
                user.LastUpdateTime = DateTime.Now;
                _repositoryFactory.IWeChatMember.Modify(user, "NickName", "AvatarUrl", "Gender", "Country", "Province", "City", "LastUpdateTime");
            }
            else
            {
                user.OpenId     = openid;
                user.CreateTime = DateTime.Now;
                user.Status     = (int)EnumHepler.MemberCardStatus.Available;
                _repositoryFactory.IWeChatMember.Add(user);
            }
            _repositoryFactory.SaveChanges();
            return(ApiResponse(new ApiResponseMessage()
            {
                Data = info, Status = ResultStatus.Success
            }));
        }
Exemplo n.º 3
0
        public object SyncWeixinInfo(string sessionkey, string userInfo, int inviteid = 0, string random = "", string timeStamp = "", string signature = "")
        {
            if (!AutoCheckQueryStringSignature())
            {
                return(reJson);
            }
            if (string.IsNullOrEmpty(sessionkey))
            {
                reJson.code    = 5003;
                reJson.message = "登录状态失败";
                return(reJson);
            }
            WXAppSession entity = WXAppSession.Find(WXAppSession._.Key == sessionkey);

            if (entity == null)
            {
                reJson.message = "未找到登录状态!";
                return(reJson);
            }
            if (string.IsNullOrEmpty(userInfo))
            {
                reJson.message = "用户信息错误!";
                return(reJson);
            }
            WXAppUserInfo info = JsonConvert.DeserializeObject <WXAppUserInfo>(userInfo);

            if (string.IsNullOrEmpty(info.avatarUrl))
            {
                reJson.message = "微信用户信息错误!";
                return(reJson);
            }
            //获取用户
            Member my = Member.FindById(entity.UId);

            if (my == null)
            {
                reJson.code    = 40000;
                reJson.message = "系统找不到本用户!";
                return(reJson);
            }
            //同步用户信息
            my.Country       = info.country;
            my.UserImg       = info.avatarUrl;
            my.City          = info.city;
            my.Province      = info.province;
            my.Sex           = info.gender;
            my.Nickname      = HttpUtility.UrlEncode(info.nickName);
            my.LastLoginTime = DateTime.Now;
            if (inviteid > 0 & my.Parent == 0)
            {
                Member inviter = Member.Find(Member._.Id == inviteid);
                if (inviter != null)
                {
                    my.Parent      = inviter.Id;
                    my.Grandfather = inviter.Parent;
                }
            }
            my.Update();

            reJson.code    = 0;
            reJson.message = "同步信息成功!";
            reJson.detail  = new { sessionkey = entity.Key, username = info.nickName, userimg = info.avatarUrl };
            return(reJson);
        }