/// <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"); } }
/// <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); }
/// <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)); }
/// <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); }