在自己电脑上调试微信公众号后台程序
前言
在开发微信公众号后台程序的时候,由于微信平台的要求,公众号后台必须是使用80端口的HTTP(S)服务,同时要求能够公网访问,这样才符合微信平台的要求。一般大家的做法是在公有云上申请云服务器,例如阿里云,腾讯云等等,然后在云服务器上部署微信公众号服务程序,调试也就只能在云服务器上通过日志查看了,要么就只能在云服务器上安装开发系统。当然也有第三方提供商业的工具可以允许在本地调试微信公众号后台程序,开发者可以根据自己的实际情况选择。本文提供一种免费的、方便的在自己电脑上调试微信公众号后台程序的方案,从而提高开发效率,信息更加安全。
一、前置条件
1.1 首先需要有域名
根据微信公众号的要求,公众号服务器必须是通过域名访问,不能通过IP地址,这也就有了一个前提条件,必须要有一个域名。当然了,既然开发微信公众号,那肯定已经有了域名。这个在1.2的 服务器地址(URL) 中有体现,就是这能使域名,不能是IP地址!
1.2 首先需要在微信开放平台上申请微信公众号(或订阅号)
有了微信公众号账户,就会在微信公众号后台得到:AppID 和 AppSecret,同时可以进行微信公众号后台服务程序的URL设置。本文使用的公众号为:神州海纳
1.3 然后需要有外网服务器,例如可以购买阿里云服务器,本文使用的是阿里云
购买了阿里云服务器后,服务器就包含固定的外网IP地址,通过域名绑定,绑定一个域名到云服务器上,可以是一级域名,也可以是二级域名。在云服务器上需要开通80端口才能使用。
1.4 需要有TCP(HTTP)转发工具:iCenter_TCPProxy_ServiceGUI.exe
本文使用的是自主开发的TCP( HTTP) 转发工具:iCenter_TCPProxy_ServiceGUI.exe 。本工具可以下载!这个工具是双态的,就是说可以运行在服务模式,也可以运行在普通的程序模式。默认是运行在服务模式,所以如果直接双击是运行不起来的,因为是作为服务模式运行的,看不到界面。如果希望运行在普通程序模式,需要收件建立一个快捷方式,再程序后面加参数:/GUI,才可以作为普通程序运行起来!
C:>iCenter_TCPProxy_ServiceGUI.exe /GUI
1.5 需要有HTTP代理服务工具:HTTP_Proxy.exe
本文使用的是自主开发的HTTP代理服务工具:HTTP_Proxy.exe。本工具可以下载。
二、配置步骤
2.1 在本地设置HTTP代理
本文根据win10 进行设置,其它的Windows版本请自行查找方法!
在windows的状态栏里边的搜索框中输入:设置
运行起来,选择 网络和internet
选择:代理
进行如下参数设置,特别注意,打开代理开关,这里的地址需要填写阿里云服务器上的域名地址,阿里云服务器上的域名地址是通过DNS域名解析设置好的。这里的8080端口需要和HTTP_proxy.exe 中的DefaultPort一致!
至此,本地代理服务已经设置完成!
2.2 服务器端设置(阿里云服务器)
步骤 | 动作 | 说明 |
---|---|---|
1 | 拷贝iCenter_TCPProxy_ServiceGUI.exe文件到服务器某个目录,例如:桌面上的 \Weixin_Proxy | 这个程序主要实现微信官方后台回调访问我们的公众号服务程序的时候,进行数据转发。也即是说,微信官方后台会访问我们的服务器上的80端口,我们需要把这个端口的访问数据转发到我们的本地电脑上,也就是开发电脑上。 |
2 | 拷贝HTTP_Proxy.EXE 到服务器上,可以和上面的程序在一个目录中 | 这个程序的作用是,把我们本地电脑上访问微信后台的命令,通过代理转接到云服务器上,给微信后台的感觉就是这些访问是通过云服务器来访问的,从而就可以满足微信平台的要求。 |
3 | 设置、运行iCenter_TCPProxy_ServiceGUI.exe参数 | 设置 映射名称 和 映射定义,保存后 打开服务,如果无法打开,请检查本地端口是否被占用! |
4 | 设置、运行 HTTP_proxy.exe | 设置DefaultPort 为 8080,然后 打开代理 |
至此,服务器端设置全部完成!
2.3 本地电脑外网能访问设置
对于通过电信上网的用户,路由器上都会有分配的临时外网IP地址,这个地址不是固定的,所以如果需要外部电脑能够访问到公司内部的某台电脑,首先需要知道路由器此时的外网IP地址,然后再路由器上进行端口转发,把外网的请求转发到内网的某台电脑上。
三、电脑80端口被占用处理步骤
在CMD窗口运行:选择 YES 即可。
c:> net stop http
//运行结果
下面的服务依赖于 HTTP Service 服务。
停止 HTTP Service 服务也会停止这些服务。
World Wide Web 发布服务
SSDP Discovery
Print Spooler
你想继续此操作吗? (Y/N) [N]:
对于这些服务,也就是本次开机停止了,下次重新启动,80端口还是会被占用,因为这些服务是自动启动的,所以,如果需要彻底停止80端口被占用,需要关闭这些服务的启动方式,不要自动而是手动!
四、调试完成后恢复工作
首先需要在本地 设置 中关闭代理
下来需要把服务器端的两个工具程序关闭,然后把调试后的微信后台程序部署到云服务器上即可!
五、总结步骤
步骤 | 说明 |
---|---|
1 | 需要在路由器上设置好将路由器的某个端口(例如3001)映射到自己电脑上的某个端口(例如3001) |
2 | 在自己电脑上设置 使用代理服务器,这个是windows的系统功能。代理服务器地址就是阿里云服务器,端口可以设置为:8080 |
3 | 在阿里云服务器(公众号后台服务器)上运行端口转发程序iCenter_TCPProxy_ServiceGUI.exe,把微信后台访问公众号服务器的80端口转发到路由器上的某个端口(例如3001),这样微信后台访问公众号服务器就自动转发到自己电脑上的3001端口了。 |
4 | 在阿里云服务器(公众号后台服务器)上运行HTTP代理服务器HTTP_Proxy.exe,默认端口设置为8080。这样在自己电脑上访问HTTP都会通过第2步设置的代理服务器转发到阿里云服务器上的HTTP_Proxy.exe中的8080端口,代理服务程序就会把收到的数据透明通过80端口转发出去,从而实现在自己电脑上访问微信后台,给微信后台的感觉是通过阿里云服务器(公众号后台服务器)访问的,满足了微信后台的要求。 |
以上希望对调试微信公众号后台程序的开发者有帮助,当然也是对自己开发痕迹的留存!