Ejemplo n.º 1
0
        protected string Login(string QrCodeAppId, string QrCodeAppKey, string AuthAppId, string AuthAppKey, string CallbackUrl)
        {
            string url = "";

            currentUser.State = Guid.NewGuid().ToString("N");

            SetReturnUrl(currentUser.State, ReturnUrl);

            WeChatConnect connect = new WeChatConnect(QrCodeAppId, QrCodeAppKey, AuthAppId, AuthAppKey, currentUser.State, UrlParameterHelper.UrlEncode(CallbackUrl));

            if (connect != null)
            {
                SaveUserInfo(currentUser);
                url = connect.GetAuthorizationCodeUrl("snsapi_login");
            }

            return(url);
        }
Ejemplo n.º 2
0
        protected string Notify(string QrCodeAppId, string QrCodeAppKey, string AuthAppId, string AuthAppKey, string CallbackUrl)
        {
            string url = "";

            if (!string.IsNullOrEmpty(Code) && !string.IsNullOrEmpty(State) && string.Compare(State, currentUser.State, true) == 0)
            {
                WeChatConnect connect = new WeChatConnect(QrCodeAppId, QrCodeAppKey, AuthAppId, AuthAppKey, State, UrlParameterHelper.UrlEncode(CallbackUrl));

                if (connect != null && connect.GetAccessTokenByCode(Code) &&
                    !string.IsNullOrEmpty(connect.AccessToken))
                {
                    currentUser.Token = connect.AccessToken;
                    string result = string.Empty;

                    WeChatConnect.UserInfo model = new WeChatConnect.UserInfo();
                    if (connect.GetUserInfo(out result, out model) &&
                        !string.IsNullOrEmpty(connect.OpenId) && !string.IsNullOrEmpty(result) && string.IsNullOrEmpty(model.errcode))
                    {
                        currentUser.OpenId   = connect.OpenId;
                        currentUser.NickName = model.nickname;
                        string nickName = string.Empty;

                        AccessUsersInfo accessUsersInfo = new AccessUsersInfo();
                        accessUsersInfo                  = GetClientLogInfo(accessUsersInfo) as AccessUsersInfo;
                        accessUsersInfo.AccessToken      = currentUser.Token;
                        accessUsersInfo.UserName         = "";
                        accessUsersInfo.NickName         = currentUser.NickName;
                        accessUsersInfo.Email            = "";
                        accessUsersInfo.Icon             = model.headimgurl;
                        accessUsersInfo.Phone            = "";
                        accessUsersInfo.Platform         = Constants.AccessUserPlatform.wechat.ToString();
                        accessUsersInfo.OpenId           = currentUser.OpenId;
                        accessUsersInfo.AccessToken      = currentUser.Token;
                        accessUsersInfo.LoginInvalidTime = DateTime.Now;
                        accessUsersInfo.RecentLoginTime  = DateTime.Now;
                        accessUsersInfo.AddTime          = DateTime.Now;
                        accessUsersInfo.Status           = (int)Constants.Status.yes;
                        accessUsersInfo.UnionId          = model.unionid;
                        Users users = new Users();
                        users.Fee      = 0;
                        users.UserName = CreateUserName(out nickName);
                        users.Icon     = "";
                        users.Phone    = "";
                        int          rel          = 0;
                        LoginedUsers loginedUsers = null;
                        if ((loginedUsers = _accessUsersService.RegisterLogin(accessUsersInfo, users, out rel)) != null && rel == (int)ErrorMessage.成功)
                        {
                            currentUser.UserId   = loginedUsers.Id;
                            currentUser.UserName = loginedUsers.UserName;
                            currentUser.NickName = loginedUsers.NickName;
                            SaveUserInfo(currentUser);

                            //ChapterReadLogSync(loginedUsers.UserName, loginedUsers.Id);

                            url = GetReturnUrl(State);
                        }
                    }
                }
            }

            return(url);
        }