吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2519|回复: 7
收起左侧

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

[复制链接]
jidesheng6 发表于 2019-7-16 22:19
写这个脚本的原因是因为我爸在用这个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()

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

轻轻闪过 发表于 2019-7-17 05:15
如果是家里的宽带,可以试试重连换ip
zzgaot 发表于 2019-7-17 06:50
看你写的我觉得我才是小白,你都是我仰视的大神了?
肥肥一家 发表于 2019-7-17 08:25
hyolyn 发表于 2019-7-17 09:41
少用global 。。直接把变量写到main里就可以了 或者写在 import下  函数定义都写上面 调用写下面  加个  if __name__=="__main__"
lcl0219 发表于 2019-7-17 12:55
感谢楼主分享  最近正在研究python
 楼主| jidesheng6 发表于 2019-7-17 13:29
hyolyn 发表于 2019-7-17 09:41
少用global 。。直接把变量写到main里就可以了 或者写在 import下  函数定义都写上面 调用写下面  加个  if ...

毕竟是小白呀,谢谢大佬指点
 楼主| jidesheng6 发表于 2019-7-17 13:31
轻轻闪过 发表于 2019-7-17 05:15
如果是家里的宽带,可以试试重连换ip

哎,这app真的,就算用它客户端到达一定定次数也会被屏蔽ip
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 12:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表