首页 编程教程正文

记录一次写python的经过【如果不是限制还是可行的】

piaodoo 编程教程 2020-02-22 22:05:05 863 0 python教程

本文来源吾爱破解论坛

写这个脚本的原因是因为我爸在用这个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 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7496.html

搜索