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

背景

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

問題

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

咱們只須要將被信任的域名解析爲開發機的Ip地址,並將路由設置NAT轉發80端口(由於微信被信任域名不容許加端口號)。服務器

你們都知道,國內的80端口通常是被封掉的,因此就算域名解析到開發機的Ip地址,咱們也不能正常訪問該域名。微信

常看法決方案,較爲複雜以下:網絡

一、將代碼打包並部署到能訪問80端口的外網服務器。微信開發

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

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

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

相關工具

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

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

解決方案

一、咱們在手機設置代理地址爲你的開發機的ip地址,讓手機的全部數據包都通過開發機

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

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

由於YouDomainName.com是被微信信任的,因此在微信中訪問YouDomainName.com是能夠正常經過驗證與簽名的。

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

注意

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

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

設置截圖

一、微信開發者工具

clipboard.png

二、hosts

clipboard.png

相關文章
相關標籤/搜索