利用網絡劫持解決微信遠程域名真機調試Api問題

背景

雖然微信提供了開發者工具,可以滿足大部分調試需求,但遇到如微信支付、微信掃碼等類似接口時,我們不得不使用真機+域名來調試。

問題

因爲只有被微信後臺設爲信任的域名才能被微信正確驗證與簽名。

我們只需要將被信任的域名解析爲開發機的Ip地址,並將路由設置NAT轉發80端口(因爲微信被信任域名不允許加端口號)。

大家都知道,國內的80端口一般是被封掉的,所以就算域名解析到開發機的Ip地址,我們也不能正常訪問該域名。

常見解決方案,較爲複雜如下:

1、將代碼打包並部署到能訪問80端口的外網服務器。

2、使用第三方內網穿透服務,安裝客戶端,並將本機某個端口映射到三方服務器,三方服務器提供一個可訪問80端口的域名做跳轉。

但以上處理方式部署方式過於複雜,調試起來過於麻煩,如想採用以上方法請網上搜索相關設置,資料較多,這裏不多做介紹。

本文筆者介紹一種更爲便捷的解決方案。

相關工具

1、網絡代理工具:微信開發者工具

2、hosts:windows 和 MAC 都有這個文件,具體在哪,網絡查一下就知道。

解決方案

1、我們在手機設置代理地址爲你的開發機的ip地址,讓手機的所有數據包都經過開發機

2、我們修改hosts記錄,把被微信信任的域名(如:YouDomainName.com)添加到hosts文本文件中劫持爲你的開發機地址

這樣你在手機訪問YouDomainName.com時,由於設置了代理地址爲開發機的Ip地址,就會被hosts強行劫持到你的開發機

因爲YouDomainName.com是被微信信任的,所以在微信中訪問YouDomainName.com是可以正常通過驗證與簽名的。

就這樣,你正常打開IDE並運行web服務器,即可邊開發邊真機調試。

注意

1、務必保持手機wifi與開發機在同一個局域網內並能內網互通。

2、筆者在高版本的微信開發者工具中沒有找到“移動調試”的選項卡,所以無法打開網絡代理工具,但可以使用 spy-debugger 這個工具更好的替代

設置截圖

1、微信開發者工具

clipboard.png

2、hosts

clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章