Ejemplo n.º 1
0
        /// <summary>
        /// 1 授权判断,页面跳转;
        /// 2 获取openid
        /// </summary>
        /// <param name="model"></param>
        /// <param name="state"></param>
        /// <param name="targetUrl">目标地址</param>
        public void OAuth2BaseProc(Model.wx_userweixin model, string state, string targetUrl)
        {
            string isTest = MyCommFun.getAppSettingValue("isOAuthTest");

            if (isTest == "1")
            {
                openid = MyCommFun.RequestOpenid();
                return;
            }

            string code = MyCommFun.QueryString("code");

            if (code == null || code.Trim() == "")
            {
                if (targetUrl == null || targetUrl.Trim() == "")
                {
                    targetUrl = MyCommFun.getTotalUrl();
                }
                //thisUrl = MyCommFun.getWebSite() + "/weixin/huodong/index.aspx";
                string newUrl = OAuthApi.GetAuthorizeUrl(model.AppId, targetUrl, state, OAuthScope.snsapi_base);
                Response.Redirect(newUrl);
            }
            else
            {
                if (MyCommFun.getCookie("cookie_openid") == "")
                {
                    var result = OAuthApi.GetAccessToken(model.AppId, model.AppSecret, code);
                    openid = result.openid;
                    MyCommFun.setCookie("cookie_openid", openid, 100);
                }
                openid = MyCommFun.getCookie("cookie_openid");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        /// <param name="wid"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        protected OAuthUserInfo GetUser(int wid, string state, string code, string targetUrl)
        {
            OAuthUserInfo user = null;

#if DEBUG
            string isTest = MyCommFun.getAppSettingValue("isOAuthTest");

            if (isTest == "1")
            {
                user = new OAuthUserInfo()
                {
                    openid     = "obzTsw4p1nhpl97G1xJwKicDNsiQ",
                    nickname   = "谷巍",
                    sex        = 1,
                    city       = "广州",
                    province   = "广东",
                    country    = "中国",
                    headimgurl = "http://wx.qlogo.cn/mmopen/PiajxSqBRaEJrWO5PQSm2auIaHPNnTPCZAfAwNyXVsUADnVhInAYbkYo70cpvEujyOXBibwAUEGpULiafevgqQ9dg/0",
                };
                return(user);
            }
#endif

            string error;
            var    accessToken = WeiXinPF.WeiXinComm.WeiXinCRMComm.getAccessToken(wid, out error);
            if (string.IsNullOrEmpty(error))
            {
                BLL.wx_userweixin   bll     = new BLL.wx_userweixin();
                Model.wx_userweixin wxModel = bll.GetModel(wid);
                var openId = OAuth2BaseProc(wxModel, state, code, targetUrl);


                var userInfo = UserApi.Info(accessToken, openId);
                if (userInfo != null)
                {
                    user = new OAuthUserInfo()
                    {
                        openid     = userInfo.openid,
                        city       = userInfo.city,
                        country    = userInfo.country,
                        headimgurl = userInfo.headimgurl,
                        nickname   = userInfo.nickname,
                        province   = userInfo.province
                    };
                }
                //user = OAuthApi.GetUserInfo(accessToken, openId);
            }
            else
            {
                throw new Exception(error);
            }
            return(user);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 是否存在该验证码
        /// </summary>
        public bool ExistsYzm(string tel, string yzmCode)
        {
            StringBuilder strSql = new StringBuilder();

            string validMinute = MyCommFun.getAppSettingValue("yzmValid_Minute");

            strSql.Append("select * from dbo.wx_sms_info where dateadd(mi," + validMinute + ",createDate)>=getdate()");
            strSql.Append(" and tel=@tel and moduleName=@moduleName order by createDate desc");
            SqlParameter[] parameters =
            {
                new SqlParameter("@tel",        SqlDbType.VarChar, 500),
                new SqlParameter("@moduleName", SqlDbType.VarChar, 500)
            };
            parameters[0].Value = tel;
            parameters[1].Value = yzmCode;
            return(DbHelperSQL.Exists(strSql.ToString(), parameters));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 授权判断获取openid,如果code为空页面跳转
        /// </summary>
        /// <param name="model"></param>
        /// <param name="state"></param>
        /// <param name="code">默认读取请求中的code属性</param>
        /// <param name="targetUrl">目标地址</param>
        protected string OAuth2BaseProc(Model.wx_userweixin model, string state, string code,
                                        string targetUrl)
        {
            string openid = String.Empty;


#if DEBUG
            string isTest = MyCommFun.getAppSettingValue("isOAuthTest");
            if (isTest == "1")
            {
                openid = MyCommFun.RequestOpenid();
                return(openid);
            }
#endif

            //如果不传
            if (string.IsNullOrEmpty(code))
            {
                code = MyCommFun.QueryString("code");
            }
            if (code == null || code.Trim() == "")
            {
                if (targetUrl == null || targetUrl.Trim() == "")
                {
                    targetUrl = MyCommFun.getTotalUrl();
                }
                //thisUrl = MyCommFun.getWebSite() + "/weixin/huodong/index.aspx";
                string newUrl = OAuthApi.GetAuthorizeUrl(model.AppId, targetUrl, state, OAuthScope.snsapi_base);

                //41008	缺少oauth code
                throw new UnAuthException(newUrl, "41008");
            }
            else
            {
                if (MyCommFun.getCookie("cookie_openid") == "")
                {
                    OAuthAccessTokenResult result = OAuthApi.GetAccessToken(model.AppId, model.AppSecret, code);
                    openid = result.openid;
                    MyCommFun.setCookie("cookie_openid", openid, 100);
                }
                openid = MyCommFun.getCookie("cookie_openid");
            }

            return(openid);
        }