前言:我相信很多人在做微信开发的时候会设置网页授权域名,只有授权的域名才能调用微信接口获取accessToken,有了token可以做很多事。
微信公众号API官方地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
本人在本地环境开发微信的时候,直接把这个歌txt文件放在src\main\resources\static\下面,这样是没问题的,可以授权成功。
但是项目上线后发现两个问题:
这个校验txt文本应该放在linux的哪个位置呢?
放置好后能不能通过 域名/MP_verify_4HwaqM92KaKTP38.txt访问到呢?
官方的话是这样描述的:
将以下文件上传至填写域名或路径指向的web服务器(或虚拟主机)的目录(若填写域名,将文件放置在域名根目录下,
例如wx.qq.com/MP_verify_4HwaqM92KaKTP38.txt;若填写路径,将文件放置在路径目录下,
例如wx.qq.com/mp/MP_verify_4HwaqM92KaKTP38.txt),并确保可以访问。
放在域名根目录下?根目录在哪里?(本人用的阿里云 centOS7.5,如果有朋友有知道的麻烦留言告诉一下)
针对以上问题,查阅了很多资料,现在终于解决。
(可能每个人解决方式不同,我记录下我是如何解决的,也希望能给有需要的朋友一点启示)
资料一:(本人试验,没有成功)https://blog.csdn.net/loveer0/article/details/83994201?depth_1-utm_source=distribute.pc_relevant.none-task
文章中的做法是写一个controller
@Controller
@RequestMapping({"/"})
public class WxConfigController {
@RequestMapping({"MP_verify_xxxxxx.txt"})
@responseBody
private String returnConfigFile() {
//把MP_verify_xxxxxx.txt中的内容返回
return "";
}
}
想法很好,感觉很对,但是实践后发现还是访问不到,不知道什么原因,如果你试验成功了,请再下方留言告诉下需要注意哪几点,感谢。
资料二:https://blog.csdn.net/m0_37852553/article/details/80368415
文章中说只需要将TXT文本放在服务器上一个叫 htdocs的目录下,
我反正是没找到,不知道是不是我们的服务器不一样 PASS
资料三:https://www.cnblogs.com/LLD-3/p/10635808.html
这篇文章也是讲的微信授权的,其中有一句话给了我启发
将授权文件放到tomcat的root文件夹下面就好了
是啊,放到root下面试一试,有想法了,就是干!
1:找到tomcat下面的ROOT文件夹(下载tomcat的时候解压都会有这个目录,如果你的没了,可以复制一份到webapps下面)
2:将微信授权的TXT文本放进去
3:配置nginx
注意标红框的你可以写服务器上tomcat的地址(ip:端口)
因为我配置了负载均衡 upstream,所以这里写的自定义域名
4:重启nginx
之后我们通过访问www.xxx.com/MP_verify_4HwaqM92KaKTP38.txt 可以读取到文本内容。
激动,开心,又解决一个问题,有时候程序员的快乐就这么简单。
如果本篇文章帮助到你,麻烦点下右下角推荐。