利用网络劫持解决微信远程域名真机调试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

相关文章
相关标签/搜索