2018年4月

接口的调用步骤:

1、jslogin获取token生成二维码,然后登录状态轮循 login接口;用户扫描后会返回用户头像,可以替换掉二维码表示用户已经扫描过(此时还没有在手机上确认登录) 2、确认登录后,获取cookie webwxnewloginpage 3、初始化,获取密钥 webwxinit 4、报告自己的状态 webwxstatusnotify 5、轮循检查最新消息 synccheck,此时会selector==2。大约每隔25秒检查1次(感觉是服务器端hold住) 6、获取所有联系人 webwxgetcontact 7、获取一批12个联系人详情 webwxbatchgetcontact(此接口可以传递单个用户或群聊的username参数) 8、根据synccheck的结果,获取最近联系人和未读消息列表的 同步消息 webwxsync, MsgType==51 9、批量获取33个联系人详情 webwxbatchgetcontact 10、报告状态 webwxstatreport ,每隔10分钟汇报1次 (主要用于网页执行速度的性能时间统计,貌似可以不用提交) 11、批量获取2个联系人详情 webwxbatchgetcontact

其它注意事项:

1、进入聊天室要发webwxstatusnotify消息,和批量获取用户详情webwxbatchgetcontact;进入单聊不需要以上操作; 2、用户的username每次重新登录都会变化,如何识别同一个用户是个问题,建议用Alias+KeyWord+PYInitial+PYQuanPin,webwxbatchgetcontact接口还会返回 RemarkPYInitial,RemarkPYQuanPin也可以用上? 3、webwxstatreport报告要定期调用,否则会超期? 4、头像要异步加载,同时要传递cookie 5、微信各接口返回的数据格式的比较乱,有js,json,xml,不知微信怎么想的,为何不统一,另外输出也没定义charset头信息,导致在chrome develop tool上显示出乱码(据说firefox里不会乱码) 6、消息类型有: 1 文字 3 图片 51 最新有状态变化的帐号(公众号,微信id,群聊id等,可能值有1 2 5等,感觉像是进入了群聊、查看了公众号属性等操作就会发出op消息【待测试确认】,op id==2表示打开过了群?op id==5表示离开群?iOS设备才有此消息,安卓没有此消息) 10000 添加到群/移除出群的通知 49 公众号文章 43 语音 10002 消息撤回(op消息时,StatusNotifyUserName同时有值,表示通知的对象,一般是群帐号),47 GIF动画图 7、群聊时:群主发消息时,FromUserName是群主,ToUserName是群帐号;其他成员发消息时反过来了,ToUserName是成员帐号,FromUserName是群帐号。如何区分两者?成员发的消息内容Content里是以@xxxx
内容(@后面的编码是群成员帐号),群主发的没有此前缀。 8、webwxnewloginpage登录时设置的cookie超期时间是12小时,如果保持一直在登录状态在后台运行是个问题?

完整消息类型:

MSGTYPE_TEXT: 1, MSGTYPE_IMAGE: 3, MSGTYPE_VOICE: 34, MSGTYPE_VIDEO: 43, MSGTYPE_MICROVIDEO: 62, MSGTYPE_EMOTICON: 47, MSGTYPE_APP: 49, MSGTYPE_VOIPMSG: 50, MSGTYPE_VOIPNOTIFY: 52, MSGTYPE_VOIPINVITE: 53, MSGTYPE_LOCATION: 48, MSGTYPE_STATUSNOTIFY: 51, MSGTYPE_SYSNOTICE: 9999, MSGTYPE_POSSIBLEFRIEND_MSG: 40, MSGTYPE_VERIFYMSG: 37, MSGTYPE_SHARECARD: 42, MSGTYPE_SYS: 10000, MSGTYPE_RECALLED: 10002, // 撤销消息

分析自官网js的接口

API_webwxdownloadmedia: 'https://' + o + '/cgi-bin/mmwebwx-bin/webwxgetmedia', API_webwxuploadmedia: 'https://'

  • o + '/cgi-bin/mmwebwx-bin/webwxuploadmedia', API_webwxpreview: '/cgi-bin/mmwebwx-bin/webwxpreview', API_webwxinit: '/cgi-bin/mmwebwx-bin/webwxinit?r=' + ~new Date, API_webwxgetcontact: '/cgi-bin/mmwebwx-bin/webwxgetcontact', API_webwxsync: '/cgi-bin/mmwebwx-bin/webwxsync', API_webwxbatchgetcontact: '/cgi-bin/mmwebwx-bin/webwxbatchgetcontact', API_webwxgeticon: '/cgi-bin/mmwebwx-bin/webwxgeticon', API_webwxsendmsg: '/cgi-bin/mmwebwx-bin/webwxsendmsg', API_webwxsendmsgimg: '/cgi-bin/mmwebwx-bin/webwxsendmsgimg', API_webwxsendemoticon: '/cgi-bin/mmwebwx-bin/webwxsendemoticon', API_webwxsendappmsg: '/cgi-bin/mmwebwx-bin/webwxsendappmsg', API_webwxgetheadimg: '/cgi-bin/mmwebwx-bin/webwxgetheadimg', API_webwxgetmsgimg: '/cgi-bin/mmwebwx-bin/webwxgetmsgimg', API_webwxgetmedia: '/cgi-bin/mmwebwx-bin/webwxgetmedia', API_webwxgetvideo: '/cgi-bin/mmwebwx-bin/webwxgetvideo', API_webwxlogout: '/cgi-bin/mmwebwx-bin/webwxlogout', API_webwxgetvoice: '/cgi-bin/mmwebwx-bin/webwxgetvoice', API_webwxupdatechatroom: '/cgi-bin/mmwebwx-bin/webwxupdatechatroom', API_webwxcreatechatroom: '/cgi-bin/mmwebwx-bin/webwxcreatechatroom', API_webwxstatusnotify: '/cgi-bin/mmwebwx-bin/webwxstatusnotify', API_webwxcheckurl: '/cgi-bin/mmwebwx-bin/webwxcheckurl', API_webwxverifyuser: '/cgi-bin/mmwebwx-bin/webwxverifyuser', API_webwxfeedback: '/cgi-bin/mmwebwx-bin/webwxsendfeedback', API_webwxreport: '/cgi-bin/mmwebwx-bin/webwxstatreport', API_webwxsearch: '/cgi-bin/mmwebwx-bin/webwxsearchcontact', API_webwxoplog: '/cgi-bin/mmwebwx-bin/webwxoplog'

参考

https://my.oschina.net/biezhi/blog/618493

http://www.tanhao.me/talk/1466.html/

http://www.tuicool.com/articles/73eiiuv

https://github.com/Urinx/WeixinBot 数据分析的比较细,值得参考!

这个node.js+webdriver版本比较不错

微信通讯协议分析

WeChat-Cloud-Robot

图灵智能客服SDK

http://www.batiaotui.com/ http://www.wqchat.com/

JS重定向的几种写法,微信项目必备

微信项目中,因为域名经常被微信拦截屏蔽,有时候为了保护入口域名,经常需要做跳转,所以需要这个。

1 .

<script type="text/javascript">
    window.location.href="http://www.penhot.com/";
</script>

2 .

<script type="text/javascript">
    alert("返回");
    window.history.back(-1);
</script>

3 .

<script type="text/javascript">
    window.navigate("http://www.penhot.com/");
</script>

4 .

<script type="text/javascript">
     self.location='http://www.penhot.com/'; 
</script>

5 .

<script type="text/javascript">
    alert("非法访问!");
    top.location='http://www.penhot.com/'; 
</script>

整个系统总共有四种角色:平台管理员  ->  渠道商  ->  代理商  ->  读者

【管理员】

 您购买此系统后,操作权完全给您,您充当的就是这个管理员的角色,拥有最高权限。可以发布通知公告(不同可见度的通知)、查看整个平台数据统计、订单明细、管理小说分类、管理小说、管理章节、管理渠道商、管理员管理、处理渠道打款、修改个人资料、修改密码、清空数据库、安全域名自动配置,每个渠道商拥有一个专属的子域名,支付域名也单独拿出来,防微信封杀功能、导入ApiKey设置与刷新、;

【渠道商】

查看公告,本渠道的数据统计、读者统计、订单明细、定时群发微信模板消息、查看小说、查看章节、内容、推广小说、文案编辑、复制链接、推广首页、当前渠道商的代理商管理、我的结算单、处理代理打款事项、查看所有读者、读者充值记录、公众号设置、关键字回复、创建微信自定义菜单、自定义关注章节、简易扫码支付(减少有风险环境下无法支付的问题)、修改个人资料、修改密码等;

【代理商】

查看公告、本代理的数据统计、用户统计、订单统计、查看小说、查看章节、内容、推广小说、文案编辑、复制链接、推广首页、我的结算单、修改个人资料、修改密码等;代理商无需公众号即可赚钱。

【读 者】

首页、搜索书库、男频、女频、排行、书库、分类、书签、历史记录、签到、首次阅读自动签到、签到自动回复客服消息、关注推送文章链接、关键字图文回复、分享赚书币(3次)、看书、充值书币、充值年费会员等。

前台界面

5417ddd421fd6e23409a85c9db1664b0.jpg

cab410e8dd6d53b84d8fa3eff9636478.jpg

后台界面 TB2j7Pfg3aTBuNjSszfXXXgfpXa_!!628641104.jpg

TB2lG_Yg4WYBuNjy1zkXXXGGpXa_!!628641104.jpg

TB2LJ_Lg1OSBuNjy0FdXXbDnVXa_!!628641104.jpg

TB2uiHtg7OWBuNjSsppXXXPgpXa_!!628641104.png

购买联系 QQ 50-37-80-03

20170614093512_58315.png

 1. http://t.cn/RElWKyf
 2. https://hi.hndpga.com/dev/goto.ashx?jump=a509fc88-4c92-478c-81c3-61b31971322b
 3. <form action="https://www.ssl.kangjuhn.com/home/GoToWX" name="myfrom" id="myform" method="POST">
    <input type="hidden" name="jump" value="a509fc88-4c92-478c-81c3-61b31971322b!14" />
    </form>
 4. https://www.ssl.kangjuhn.com/home/GoToWX
 5. https://open.weixin.qq.com/sns/webview?url=https%3A%2F%2Fm.elong.com%2Ftrain%2Ftransfer%3Fredirecturl%3Dhttp%3A%2F%2Fh5.m.jd.com.rrbay.xyz%2FHandlerGoTo.ashx%3FgotoUrl%253d5450E045CAAEE0410F59755D59C98F9DBB5BB06AA3D762DA&appid=wxf5f19f298d69d701&ts=1522592779&nonce=R4DXu2MZNu&sig=ebffb57e8f1ab02a3162fde45cba785d&key=e3b79ea8013e8da21b2ee775679bfe6e7638783af95bd760b0d0bc23c5ee4e8248a11afbee813ce11eb00811c5840f1e4787ae7dee29afc29fd475020ee0d7580dee0dea03b1e7449e39a2fc19bee02e&uin=MjcwNTE1NjYwNg%3D%3D&scene=0&version=26060532&pass_ticket=yyJqaYgBNBGjtPWd46B9AxHbexbht0yODldmdix9fYJ%2BYtQKl09dePLp5DLzbAij
 6. https://m.elong.com/train/transfer?redirecturl=http://h5.m.jd.com.rrbay.xyz/HandlerGoTo.ashx?gotoUrl%3d5450E045CAAEE0410F59755D59C98F9DBB5BB06AA3D762DA
 7. Location: http://h5.m.jd.com.rrbay.xyz/HandlerGoTo.ashx?gotoUrl=5450E045CAAEE0410F59755D59C98F9DBB5BB06AA3D762DA&uid=

微信是全国最大的社交软件,这么庞大的用户群体,培养了一些庞大的黑产交易.微信对在其内部传播的链接(域名)内容进行监测,导致了外界有了这么一项收费的服务:微信域名检测接口!

微信域名检测接口可以根据用户提交的域名,返回是否被微信屏蔽.这项功能,对域名池的建设非常有帮助,可以及时的避免用户访问到错误的页面.如下图:

11.JPG

那么微信域名检测接口是如何实现的呢? 通过微信(wx.qq.com)抓取到的HTTPS包,破解获取明文内容发现是通过以下路径提交检测的.

https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxcheckurl?requrl=http%3A%2F%2Fwww.penhot.com

好了.点到为止,其他自行探究吧!