900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 微信公众号-菜单连接跳转网页 获取用户OpenId

微信公众号-菜单连接跳转网页 获取用户OpenId

时间:2024-03-05 09:34:54

相关推荐

微信公众号-菜单连接跳转网页 获取用户OpenId

流程:

菜单跳转URL设置为(更改自己公众号的appid 以及设置点击按钮后跳转的地址:redirect_uri)

https://open./connect/oauth2/authorize?appid=wx5bfeba33ef3fbcc&redirect_uri=https://dreamchina.tech/&response_type=code&scope=&state=123#wechat_redirect

应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。)

获取页面的URL 并从URL中获取参数code的值 将code作为参数post 到后台,由后台发送Get请求获取用户信息:

本案例采用.NET一般处理程序实现,现献上代码

代码一:后台

//有传Json数据if (context.Request.InputStream.Length > 0){var reader = new StreamReader((context.Request.InputStream));string data = reader.ReadToEnd();JsonObj obj = JsonConvert.DeserializeObject<JsonObj>(data);string code = obj.Code;if (!string.IsNullOrEmpty(code)){const string appid = "wx5b3dda33ef3227a";const string secet = "3de6f73741c66f32821ce75c93cc3443";string url = "https://api./sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code".Replace("APPID", appid).Replace("SECRET", secet).Replace("CODE", code);string errorCode;//模拟Get请求string jsonStr = HttpHelper.GetResponse(url, out errorCode);WxObject wxobj = JsonConvert.DeserializeObject<WxObject>(jsonStr);string opeinid = wxobj.openid;if (string.IsNullOrEmpty(opeinid)){string smg = "当前用户信息无效".ToError();context.Response.Write(smg);}else{string smg = opeinid.ToSuccess();context.Response.Write(smg);}}else{string msg = "请在正规途径打开".ToError();//未获取到Codecontext.Response.Write(msg);}context.Response.Flush();}

代码二:前台

app.callAjaxPost("../api/WxOAuth.ashx", data, function (result) {if (result.msgType == "error") {mui.alert(result.msg);}if (result.msgType == "success") {setValue('IdCard', result.msg);}});

成功后绑定openid至Id :IdCard输入框中

完结

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。