本文来源吾爱破解论坛
写这个脚本的原因是因为我爸在用这个xx来聚财进行收款,顺手抓了一下包,发现其登陆的时候就是post了一个经过base64编码的密文和手机号码给服务器,其他值都是固定的,密码不变的话,从第一次返回来的json中就可以用到后面进行查询的一些基本参数
基本分析:
app登陆链接:https://aus-hcapp.huiyinxun.com/aus-hcapp/MobileService/login
登陆方法:post
需要提交post主体信息:container,dt,pass,mobile,type,version,mark
其中mobile就是手机号码,pass是经过base64编码的密码信息
查询收款链接:https://aus-hcapp.huiyinxun.com/aus-hcapp/MobileService/queryNotificationCatagories
方法:post
需要提交参数:container,dt,uid,walletId,tk,mobile,type,version,mark
其中uid,walletId,tk可以在app登陆返回json中得到
之后的问题其实就是怎么来实现实时到账的查询了,访问了几次查询收款信息的response发现,其中包含了收款信息,我只能用笨方法
通过收款时间戳和当前时间戳进行比对来确定是否是实时到账
当时自己写的方法是这样的:
推测:时间都是以时间戳方式存在 时间靠后,时间戳越大,所以比较时间戳,每秒轮询一次api接口查询到款通知,把到款时间转为时间戳
如果当前时间戳减去到账时间戳小于10,说明这笔钱在10秒内刚刚支付过,故可以判定为实时到账,如果大于10,证明过去了10秒-无限可能大的时间,
2019-06-27 12:55:29 =》 1561611329 #收款时间
2019-06-27 15:03:29 =》 1561618989 #当前时间
1561618989-1561611329=7660#7660/3600大概是2小时前,这边单位是秒
所以依次查询时间戳,如果账单第一条,和当前时间戳相减小于10,推送过去一条到账信息
推送完毕之后,再次轮询账单,和当前时间戳进行比较,如果大于10,则pass
但是这个有个已知问题,我这样一直要请求服务器,而app有个限制,单个ip访问总次数会限制一周不能访问【应该是这样的】,所以这个脚本现在感觉也只是废了,免费代{过}{滤}理基本没什么用
github有些免费代{过}{滤}理速度慢,收费代{过}{滤}理不太值得,所以后面我就放弃了,就分享一下吧,顺便问问有没有什么解决办法,有的话也不错啊,代码写的很乱,我是个纯小白,大佬勿喷
[Python] 纯文本查看 复制代码
#coding:utf-8 import requests,base64,json,re,time,thread,os from wxpy import * def Login_APP(): global proxies global container global dt global mark global Mobile global App_LoginCallBack_Uid#用户UID global App_LoginCallBack_walletId #回调中的walletId global App_LoginCallBack_tk#回调中的tk global header header = {"User-Agent":"Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"} Mobile = "" Password = base64.encodestring("").strip("\n") container = "3" dt = "A" mark = "m" App_loginUrl = "https://aus-hcapp.huiyinxun.com/aus-hcapp/MobileService/login"#中银来聚财的app登陆接口 Login_data={ "container":container, "dt":dt, "pass":Password, "mobile":Mobile, "type":"pass", "version":"3.02.013", "mark":mark } try: Deal_Json = json.loads(requests.post(App_loginUrl,data=Login_data,timeout=1,headers=header).text)["result"]#从登陆链接取回来的登陆信息 if Deal_Json == None : print u"账号状态异常,可能是账号密码不正确或者脚本异常,及时登录app查看账号状态" exit(0) else: App_LoginCallBack_Uid = Deal_Json.get("uid") App_LoginCallBack_walletId = Deal_Json.get("walletId") App_LoginCallBack_tk = Deal_Json.get("tk") Vaule_List = [App_LoginCallBack_Uid,App_LoginCallBack_walletId,App_LoginCallBack_tk] print u"登陆正常...可以继续使用。" time.sleep(1.5) os.system("cls") return Vaule_List except Exception: print u"连接错误或者其他错误请查阅信息\n也可能IP被屏蔽,请重启路由器" exit(0) Query_CallBack = Login_APP() def Query_wallet(): global start global App_Content global App_Tstime start=int(time.time()) App_queryUrl = "https://aus-hcapp.huiyinxun.com/aus-hcapp/MobileService/queryNotificationCatagories"#查询账户到款信息 Query_data = { "container":container, "dt":dt, "uid":Query_CallBack[0], "walletId":Query_CallBack[1], "tk":Query_CallBack[2], "type":" ", "mobile":Mobile, "version":"3.02.013", "mark":mark } try: App_Raw = json.loads(requests.post(App_queryUrl,data=Query_data).text)["result"][0] App_Content = App_Raw.get("content") App_Tstime = App_Raw.get("tssj") Tstime_unix = int(time.mktime(time.strptime(App_Tstime,"%Y-%m-%d %H:%M:%S"))) return Tstime_unix except: time.sleep(2) Query_wallet() def Send_Owner(): Wx = Bot(cache_path=True) while 1: Now_time = int(time.time()) time.sleep(2) Tstime_unix = Query_wallet() if (Now_time-Tstime_unix) <=2: Wx.friends().search(u"")[0].send("中银来聚财收款通知:\n%s\n收款时间:%s"%(App_Content,App_Tstime)) Wx.friends().search(u"")[0].send("中银来聚财收款通知:\n%s\n收款时间:%s"%(App_Content,App_Tstime)) time.sleep(5) else: pass Send_Owner()
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 爬取中关村论坛摄影模的,带源文件
- 下一篇: 图片隐写python脚本