微信公众平台-开发模式配置需要拥有自己的服务器,配置页面有明文:“请填写接口配置信息,此信息需要你拥有自己的服务器资源。” 这句话就是说有自己的服务器,独立ip,80端口开放的。并且这台服务器要能提供服务,就是说要能够被微信后台的服务器访问到。这需要服务器有一个外网IP。我们的Web Server监听外网IP的80端口之后就能收到微信后台的请求了。
可能很多读者希望能在自己的PC机上做接入的测试,但是笔者建议不要这么做,因为这可能会遇到很多的麻烦。如果你的确想这么做,请注意以下事情:
1)一般学校宿舍都是使用内网IP的,如果你是住在学校宿舍,直接放弃吧。
2)家里路由器一般是通过NAT的方式工作的,所以如果你的PC机是通过路由器上网的话分配到的也是一个内网IP,不能对外提供服务。这个时候可尝试把路由器的接入网线直接插到电脑上来获取外网IP联网。
3)如果第2步尝试失败(验证方法:在其他电脑上通过浏览器访问你本地Web Server),请联系你的网络服务提供商(电信、联通、铁通、长城宽带、天威宽带等),询问他们提供给你的IP是否做了NAT转发,如果是,则可在允许 的情况下要求他们给你一个不做NAT转发的IP。
4)如果完成第3步还未能成功,那么你和笔者的遭遇是一样的。笔者确认了很多次,确定自己的本地Web Server配置是没有问题的,然后打电话给网络提供商,他们并没有给一个合理的回答,毕竟他们很少遇到这么做的用户。笔者猜测他们可能为了安全,阻挡了 所有的对他们家庭用户IP的主动连接。那怎么解决这个问题呢?笔者建议读者购买一个Linux的网络主机,最好是可以直接登录的,而不是那种准备好了环 境,只提供上传代码功能的网络空间。笔者购买了阿里云的服务器和MySQL实例,用起来还是很不错的,而且阿里云的服务也很好。
另外一个问题,为什么要绑定80端口?公网的环境非常复杂,我们的公众账号服务器和微信后台的数据传输要经过很多的路由器,这些路由器都有各自的安 全设置,其中有一些会把所有的非80端口的包直接丢弃。如果我们使用非80端口就会出现我们发给微信后台的包对方收不到的情况。反过来也是一样的,微信后 台向我们的非80端口发送的消息也可能被某些路由器丢弃,这就是微信公众平台要求用户填80端口的原因。