redirect_uri 參数错误的解决的方法

Posted claireyuancy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redirect_uri 參数错误的解决的方法相关的知识,希望对你有一定的参考价值。

我通过java代码去获得用户的openid,一直报redirect_uri。

我页面代码的链接为:

https://open.weixin.qq.com/connect/oauth2/authorize?
        appid=APPID&
        redirect_uri=ENCODE(URL)&
        response_type=code&
        scope=snsapi_base&
        state=state#wechat_redirect"

当中APPID为项目的appid,ENCODE(URL)为链接希望跳转的url地址(url须要urlencode),url的encode在java中代码实现例如以下:

        // url进行编码
        String url = "http://evan.tunnel.mobi/zzaClient/bindindex.html";
        String url_encode = java.net.URLEncoder.encode(url, "utf-8");

        request.setAttribute("url_encode", url_encode);

当前台页面构造完毕后,点击页面链接会跳转到bindindex.html的controller,在这个controller的代码写法是:

        // 须要在“开发人员中心”---网页账号--改动。

改动成域名。不要带http 。比方:evan.tunnel.mobi // 通过code获取openid String code = request.getParameter("code"); JsonObject json = WeixinUtils.getOpenId(getopenid_url, app_id, secret, code, "authorization_code"); String openid = json.get("openid").getAsString(); logger.info(openid + "------------------------------openid");

但是奇怪的是,以上全部參数都没有写错,url也进行编码了。但是还是会报redirect_uri 參数错误。解决的方法是: 须要在微信公众平台的“开发人员中心”—网页账号–改动 把“授权回调页面域名”改成server的域名就可以。

如图:
技术分享

到这样,openid就能够正常获得了。有些开发人员可能会有些疑问,假设我每次更改都要部署到正式环境进行測试。这样多浪费时间,事实上我们能够通过ngrok将本地地址映射到外网,这样就能够将开发环境的地址直接映射到外网。

详细操作详见博客:
http://blog.csdn.net/zl544434558/article/details/46593063

最后附上一张报错的图片
技术分享

以上是关于redirect_uri 參数错误的解决的方法的主要内容,如果未能解决你的问题,请参考以下文章

微信支付开发出现redirect_uri参数错误的解决方法

微信开发 提示 Redirect_uri参数错误解决方法

微信H5 Redirect_uri参数错误解决方法

微信公众平台,微信网页授权,redirect_uri参数错误,解决方法!

微信公众平台,微信网页授权,redirect_uri参数错误,解决方法!

微信服务号 redirect_uri域名与后台配置不一致,错误代码10003