前言
一个朋友在群里求助,咨询免签的事宜。我一时热心肠,主动回复,我可以实现。实际上是吹牛皮,没搞过。但是骑虎难下,朋友认真了,于是只好实现了一种。
2019-07-25 14:07:14 目前方案有效。
2019-07-25 15:34:23 发现一次手机验证。处理策略:手动点击几次其他地方。页面恢复正常。
2019-07-26 15:52:51 今天测试情况:9点开始到现在。出现手机扫码提示。扫码后正常运行。
废话较多,如果想看效果,最底部有测试地址。
过程
通过搜索引擎,了解了下市面上,有很多实现方案,但是过于复杂,另外因为开源,也存在被支付宝干掉的情况。
基本方案
多数情况下,方案基本都是在于利用 支付宝的Pc端或者手机端,维持cookie在线,定时刷新,监控订单信息,从而实现免签支付。难点
这里面最难的就是维持cookie在线。基本公开的方案都被支付宝干掉了。-
我的解决
这里我选择了驱动模拟键盘 鼠标,模拟人工在线的情况,有点类似 按键精灵。
依赖的工具:
java 的robot来驱动自动化。
谷歌浏览器记住账号和密码,这里发现在mac下能自动记录账号和密码,在window下只能记住账号。不过没事,实现输入密码很简单。
屏幕坐标工具:在mac上存在一个工具mypoint coordinates
。window可以执行百度下。我从csdn上找了一个。
伪代码
//截图指定区域
//图文转换
//特征判断是否在订单列表页
if(在列表页面){
//截图指定区域
//图文转换
//提取订单信息
//推送或者其他业务逻辑。
}else{
//点击账号和密码登录
//输入账号和密码
//点击登录
//截图-图文转换判断是否登录成功。
//不成功这告警通知。成功这进入正常循环。
}
优缺点
优点:和真人操作基本没什么区别。支付宝想检测出出是否为机器人,难度颇大。目前挂机测试,非常稳定,掉线可以自动登录。已经持续运行2天。2019-07-25 13:56:08 此刻。
缺点:在不同设备上运行,都需要修改坐标参数,较为麻烦。依赖图文转换接口的准确性。运行速度较慢,如果你的并发很大,短时间有大量支付订单,会存在遗漏。个人目前设定的是22秒获取最新的一条订单。
测试
测试时间:上班会开启,因此只能在 上午 9点到下午4点。其他时间不能测试。
测试方案:
目前测试是通过添加qq机器人推送来实现。
添加qq号: 3447478942
为好友。加好友时需要验证码填写: 支付宝免签
否则不予通过。
添加成功后,对机器人 回复消息 @开通支付宝推送
即可收到推送。
扫描下方二维码进行支付。即可看到效果。
测试程序目前的功能是:22秒刷新1次订单,获取最新的一条订单,然后推送到qq相关人员。
这里不区分是不是你的订单。也不区分是否支付成功。因此你即使没支付宝,也会收到推送消息。
如果不想收到测试消息,可以删除该qq好友或者 回复 @关闭支付宝推送
不定期清理 推送名单。如果很久没收到,说明被清理。 可以继续回复 @开通支付宝推送