【记录】微信公众号开发,解决linux服务器上将MP_verify_4HwaqM92KaKTP38.txt文件放置在域名根目录下并确保可以访问。

时间:2024-03-05 21:27:23

 

   前言:我相信很多人在做微信开发的时候会设置网页授权域名,只有授权的域名才能调用微信接口获取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 可以读取到文本内容。

 

激动,开心,又解决一个问题,有时候程序员的快乐就这么简单。

如果本篇文章帮助到你,麻烦点下右下角推荐。