欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

微信网页授权时,提示 redirect_uri 参数错误的最终原因和解决方法

最编程 2024-04-18 11:56:20
...
武汉源创会回归,4月20聊聊大模型”

微信官方文档及配置截图。

接口配置说明:

设置JS接口安全域名后,公众号开发者可在该域名下调用微信开放的JS接口。

注意事项:

1、可填写五个域名或路径(例:wx.qq.com或wx.qq.com/mp),需使用字母、数字及“-”的组合,不支持IP地址、端口号及短链域名。

2、填写的域名须通过ICP备案的验证。

3、 将文件MP_verify_PrsyGqOpiTIaj3eY.txt(点击下载)上传至填写域名或路径指向的web服务器(或虚拟主机)的目录(若填写域名,将文件放置在域名根目录下,例如wx.qq.com/MP_verify_PrsyGqOpiTIaj3eY.txt;若填写路径,将文件放置在路径目录下,例如wx.qq.com/mp/MP_verify_PrsyGqOpiTIaj3eY.txt),并确保可以访问。

4、 一个自然月内最多可修改并保存五次,本月剩余保存次数:3

注意将下载的txt放在服务器上之后,配置时可以在域名后带着路径也可以不带路径,这都是没问题的。直接访问配置的路径+*.txt文件能正常显示即可。
在微信接口网页测试地址
https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E5%9F%BA%E7%A1%80%E6%94%AF%E6%8C%81&form=%E8%8E%B7%E5%8F%96access_token%E6%8E%A5%E5%8F%A3%20/token
访问也是通的。

但在公众号里授权仍然返回redirect_uri错误。

这时只有一种可能:就是txt放置的文件路径层级和发起页面授权所在路径层级不一致,而且比txt文件路径层级高。比如txt文件放置在了 https://域名/weixin/abc.txt下,且能正常访问。但是调用授权发起的页面在https://域名/abc/page.html下.这样授权是不会通过的.这块腾讯官网说的比较模糊. 但仔细推敲一下要明白。网页授权域名路径和授权文件存放的位置一定要在页面发起位置的上层路径,否则不通,会一直报redirect_uri错误。。
简单的方法是将txt文件直接放在项目的根目录,如果用tomcat的话可以直接放在Root文件夹下。这样项目下所有页面发起授权都是可以的。
如果用nginx的话,就要做转发配置了,如果nginx*配置了项目路径,实现了访问域名即可跳转到项目首页,这时需要再做一个配置,可以直接将txt文件名配置死,当访问域名/abc.txt文件时,直接转发到这个文件也可以。

location  /abc.txt  {
        proxy_pass abc.txt
    }

这是个大坑,appid,secret,公众号基础配置和授权域名配置检查了好久,而且在页面调试微信接口都是通的。最后发现是这的问题。。好坑!!