微信用户发送信息到腾讯服务器,然后腾讯服务器把请求以post方式转发到自己的服务器上(需要有外网ip,并且token验证通过的服务器)。然后在自己的服务器上进行处理后把处理结果返回给腾讯服务器,腾讯服务器再把数据返回给用户,整个过程如下图。

image

因为腾讯服务器转发到自己的服务器要求该服务器有外网地址,而我们调试程序的服务器通常可能没有外网地址。因此需要在有外网地址的服务器上做流量转发,转发到本地进行调试。

可以用xshell或其他软件做内网穿透,具体见:https://my.oschina.net/AbnerLee/blog/348998

这种方法的优势在于方便,有xshell就能实现;但是实际使用时发现并不稳定,连接会经常断掉。

image

如上图所示,在有外网地址的服务器上搭一个流量转发工具(orange),将所有访问443或者80端口的流量(腾讯服务器只发送到这两个端口)转发到本地服务器的特定端口上,这样在本地起服务就能够进行调试了。本地服务器和有外网的服务器需要在同一网段里,才能进行转发。

这种方法进行本地测试比较稳定,缺点在于本地服务和有外网的服务器需要在同一网段内,这个本身如果服务器没有公网ip,也需要做内网穿透。