前言:我相信很多人在做微信開發的時候會設置網頁授權域名,只有授權的域名才能調用微信接口獲取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 可以讀取到文本內容。
激動,開心,又解決一個問題,有時候程序員的快樂就這么簡單。
如果本篇文章幫助到你,麻煩點下右下角推薦。