问题概述
关于这个问题,博主是在进行微信公众号开发过程中获取微信公众号CODE用于下一步验证获取openid和access_token时遇到的,
回调地址:
“https://open./connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=STATE#wechat_redirect ”
开发完成后,进行微信回调,请求微信公众号的Oauth2授权重定向域名时报错:“redirect_uri 参数错误”
如下图:
解决办法
1、这个的误导性还有点大,耽误了半天时间,一直围绕参数错误来进行处理,后查仔细查看官方文档后在悉知,是因为使用的域名需要在公众号后台授权才能使用
2、官方文档一个误导性的操作,需要转码,其实是不需要转码的,redirect_uri直接在微信公众号后台授权,然后就可以使用了!
3、微信授权回调访问的域名
第一步:
登录“微信公众号平台”>设置与开发>公众号设置>功能设置>网页授权域名>设置,域名,如下图:
注意:在设置域名的时候会下载一个微信专题用的类似于证书的文件,
第二步:
回调页面需在此域名下,以确保安全可靠,将上一步获取到的证书文件,上传至填写域名或路径指向的web服务器(或虚拟主机)的目录(若填写域名,将文件放置在域名根目录下即可!
第三步:
再次执行微信回调请求,发现可以了!!!
知识补充:
一、关于网页授权回调域名的说明:
1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头。
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:,配置以后此域名下面的页面/music.html 、 /login.html 都可以进行OAuth2.0鉴权。但 、 、 无法进行OAuth2.0鉴权。
3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可。
二、关于网页授权的两种 scope 的区别说明:
1、以snsapi_base为 scope 发起的网页授权,是用来获取进入页面的用户的 openid 的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)。
2、以snsapi_userinfo为 scope 发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户 OpenID 来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
三、关于网页授权access_token和普通access_token的区别
1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息。
2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。
好了,关于微信公众号开发redirect_uri 参数错误 的解决办法,Oauth2授权重定向域名参数错误解决办法 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。