问题:
微信公众号 网页授权回调域名 设置完成后调用回调事 出现 redirect_uri域名与后台配置不一致
要求:
请将文件MP_verify_xxxxxx.txt(点击下载)上传至填写域名或路径指向的web服务器(或虚拟主机)的目录(若填写域名,将文件放置在域名根目录下,例如wx.qq.com/MP_verify_N8no8dpNO9n7wuBZ.txt;若填写路径,将文件放置在路径目录下,例如wx.qq.com/mp/MP_verify_N8no8dpNO9n7wuBZ.txt),并确保可以访问。
错误做法:
在根目录创建了一个文件夹,例如 aaa ,将该文件放进去,域名填写为 xxxx.com/aaa 完成后会显示成功。但是当你访问回调页是,会出现redirect_uri域名与后台配置不一致,原因是你的域名填写为 xxxx.com/aaa,所以只有xxxx.com/aaa下的页面才可以回调成功,例如xxxx.com/aaa/ddcd、xxxx.com/aaa/cc。xxxx.com/cc是不可以的。
但是如果你直接把MP_verify_xxxxxx.txt文件放在根目录下,域名填写为 xxxx.com 。会出现访问不到MP_verify_xxxxxx.txt 的情况,导致设置不成功。
原因:
我使用的是springboot(SpringMVC 也一样),xxxx.com/MP_verify_xxxxxx.txt被拦截了,导致微信服务器访问不到,所以失败了。
我的解决方法:
直接写一个Controller,地址映射为MP_verify_xxxxxx.txt,然后将MP_verify_xxxxxx.txt里面的内容返回就可以了。反正只要保证在地址栏使用 回调域名/MP_verify_xxxxxx.txt 能够看到文件内容就可以了
@Controller
@RequestMapping({"/"})
public class WxConfigController {
@RequestMapping({"MP_verify_xxxxxx.txt"})
private void returnConfigFile(HttpServletResponse response) {
//把MP_verify_xxxxxx.txt中的内容返回
}
}
其他方法:
这是我找到的另外一种方法,不知是否可行
如果以上配置成功后,还是显示redirect_uri域名与后台配置不一致 ,请看一下你的回调连接是否有出现端口号(一般是80),如果有,去掉即可。