微信公众平台开发实例-校园网流量自动查询


听说微信公众平台很火,刚好最近破解了学校流量查询网站验证码的漏洞。就做了一个查询的公共账号。

参考了另外一位兄弟的文章http://blog.alphatr.com/weixin-api.html

以及一个开源项目https://github.com/zscorpio/weChat ,通过抓包Hack实现平台信息主动推送的(微信官方暂时没有提供主动推送的API)

遇到的比较棘手的问题是: 学校的流量查询网站是教育网,微信的服务器根本无法访问!

想到了使用代理的方案,具体如下:

环境:百度BAE代码,公网主机A,校园网主机B (A不能部署代码)

B SSH 到A上,ssh -NCfg -R 8080:127.0.0.1:8080 root@A

这样在A上所有到8080端口的数据包都会转发到B主机上。

然后就有三种方案:

      A .  在B主机上做一个Squid代理。 这样就形成了一个公网到教育网的HTTP代理服务器。

      B .  如果在B主机上 ssh -NCfg -D 1080 root@B ,就是一个Sock5代理

      C.   在B上直接部署代码。

经过实践,由于BAE的奇葩环境,php_curl不能用Sock5代理,而且同一个脚本中不能多次请求。

最终采用了C方案.(也许用php_curl经过HTTP代理也可以,不过真心不想再试了)

整体思路就是:

 1  用户发送消息到微信公共账号

 2  微信服务器将消息体发送到指定的BAE的URL中

 3  BAE中的代码,通过代理,将消息体再发给主机B。

 4  主机B模拟登陆校内网站,得到数据后,一次返回。

 

具体的技术细节就是PHP的 curl  socket_create , 再就是对HTTP数据包的构造。

碰到的奇葩问题是:

socket_create里不可以有connection: keep-alive

百度BAE环境中,一个PHP脚本,在执行过程中,只能生成一次socket_create

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM