1. 程式人生 > >利用網路劫持解決微信遠端真機除錯Api問題

利用網路劫持解決微信遠端真機除錯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、微信開發者工具

 

2、hosts