自动领取53张福卡小程序,支付宝集五福瓜分5个亿-泓源视野

自动领取53张福卡小程序,支付宝集五福瓜分5个亿

支付宝联合其他52个产品推出送五福的活动,用pyhton简单写了一个自动连续领取的windows平台小程序,只需要每隔60s把手机的验证码输入即可。

自动领取53张福卡小程序,支付宝集五福瓜分5个亿插图

暂无GUI界面,程序自取,觉得好用可以给一个大大大的赞哦,原创审核太慢了,还是精品软件区好{:1_918:}
注意:连续获取60(2月3日,根据大家的情况反映,支付宝已经把风控数量调整到10个验证码左右,24小时后解除风控)个支付宝验证码则会被风控,24小时内无法继续获取验证码,请按照需求获取!!

使用说明:

首先输入要领取的站点开始的序号,总共53个站点可以领取
每隔60s会自动切换到下个站点进行领取,已经领取成功的,会进行记录,下次程序运行时将忽略领取成功的站点
如果要换手机号领取,需要重新解压这个压缩包,把success.json覆盖掉,不然会因为上个手机号领取成功的站点而进行跳过。

注意:支付宝此活动不能连续获得602月3日,根据大家的情况反映,支付宝已经把风控数量调整到10个验证码左右,24小时后解除风控个验证码,否则24小时内无法再参加此次活动!

程序暂无GUI页面,先凑合着用把。site.json和success.json必须和程序在一个目录,否则程序会闪退!

因为打包环境是64位的windows桌面系统,所以程序不支持32位windwos操作系统。

因为此次支付宝五福为了让大家交换卡,每人获得除了敬业福之外的随机两种福的概率是最大的,所以一般会大量开出两种福,这是正常现象。

下载:  https://wws.lanzous.com/ikTl9lh3cmf   密码:欢迎关注公众号发送【集五福小程序】获取

自动领取53张福卡小程序,支付宝集五福瓜分5个亿插图1

泓源视野网络安全,微信公众号

转载标明出处即可,最后祝大家能够抽到自己想要的福{:1_893:}

很多人想要检查一下代码的安全性,其实我没有在程序中加壳,直接反编译即可看到了。有人如果有人想要改进的话直接改就可以了哦。

  1. 复制代码 隐藏代码import requestsimport osimport codecsimport sysimport timeimport jsonimport reclass WebRequests:    def __init__(self):        self.dirPath = ''        self.getCaptchaUrl = 'https://rds.alipay.com/captcha.htm'        self.getResultUrl = 'https://mobilegw.alipay.com/mgw.htm'        self.operationType = {
  2.             'sendVerifyCode': 'alipay.tradecsa.biz.blessingprod.wufu2021.sendVerifyCode',
  3.             'outPrize': 'alipay.tradecsa.biz.blessingprod.wufu2021.outPrize'        }
  4.         self.s = requests.Session()
  5.         self.headers = {
  6.             'User-Agent': 'Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 9 Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 Quark/4.3.3.145 Mobile Safari/537.36 Edg/89.0.4389.6',
  7.             'DNT': '1'        }
  8.     def loads_jsonp(self, _jsonp):        try:
  9.             return json.loads(re.match(".*?({.*}).*", _jsonp, re.S).group(1))
  10.         except:
  11.             raise ValueError('Invalid Input')
  12.     def getCaptcha(self, mobile, source):        digits = 32        hex = codecs.encode(os.urandom(digits), 'hex').decode()
  13.         data = {
  14.             'appid': "blessingprod_wufu_otp",
  15.             'bizNo': hex,
  16.             'mobile': mobile,
  17.             'refer': "",
  18.             'scene': "DO_NOTHING",
  19.             'type': "silence",
  20.             'useragent': "Mozilla/5.0 (Linux; U; Android 10; zh-CN; MI 8 UD Build/QKQ1.190828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 Quark/4.3.3.145 Mobile Safari/537.36 Edg/89.0.4389.6"        }
  21.         self.s.options(self.getCaptchaUrl)
  22.         try:
  23.             r = self.s.post(self.getCaptchaUrl, json=data,
  24.                             headers=self.headers)
  25.             # print(r.text)            rdsToken = json.loads(r.content)['data']['extra']['token']
  26.             requestData = [{"mobile": mobile, "source": source,
  27.                             "rdsBizNo": hex, "rdsToken": rdsToken}]
  28.             getResultData = {
  29.                 '_fli_online': True,
  30.                 'operationType': self.operationType['sendVerifyCode'],
  31.                 'requestData': str(requestData),
  32.                 '_': int(round(time.time() * 1000)),
  33.                 'callback': 'jsonp' + str(int(round(time.time() * 1000)))
  34.             }
  35.             re = self.s.get(self.getResultUrl,
  36.                             params=getResultData, headers=self.headers)
  37.             # 'jsonp16121({"resultStatus":1000,"result":{"code":"5101","resultView":"人气太旺了,请稍后再试","success":true}})'            # print(re.text)            re_json = self.loads_jsonp(re.text)
  38.             if re_json['result']['success'] == True:
  39.                 return {"code": 1000, "info": f'成功获取验证码,请注意查收'}
  40.             else:
  41.                 resultView = re_json['result']['resultView']
  42.                 return {"code": 1001, "info": f'获取验证码失败,原因为{resultView}'}
  43.         except Exception as e:
  44.             return {"code": 1001, "info": f'获取验证码失败,原因为 {e}'}
  45.     def getResult(self, mobile, source, ackCode):        requestData = [
  46.             {"mobile": mobile, "source": source, "ackCode": str(ackCode)}]
  47.         getResultData = {
  48.             '_fli_online': True,
  49.             'operationType': self.operationType['outPrize'],
  50.             'requestData': str(requestData),
  51.             '_': int(round(time.time() * 1000)),
  52.             'callback': 'jsonp' + str(int(round(time.time() * 1000)))
  53.         }
  54.         try:
  55.             re = self.s.get(self.getResultUrl,
  56.                             params=getResultData, headers=self.headers)
  57.             # jsonp16121({"resultStatus":1000,"result":{"code":"50144","hasPrized":false,"hasUserId":false,"resultView":"已经领取过奖品","success":false}})            # print(re.text)            re_json = self.loads_jsonp(re.text)
  58.             if re_json['result']['success'] == True:
  59.                 return {"code": 1000, "info": f'成功领取'}
  60.             else:
  61.                 resultView = re_json['result']['resultView']
  62.                 return {"code": 1001, "info": f'领取失败,原因为 {resultView}'}
  63.         except Exception as e:
  64.             return {"code": 1001, "info": f'领取失败,原因为 {e}'}
  65.     def getSiteNum(self):        path = os.path.join(self.dirPath, "site.json")
  66.         with open(path, 'r', encoding='utf8')as fp:
  67.             json_data = json.load(fp)
  68.             return len(json_data['channelList'])
  69.     def getSiteInfo(self, num):        path = os.path.join(self.dirPath, "site.json")
  70.         with open(path, 'r', encoding='utf8')as fp:
  71.             json_data = json.load(fp)
  72.             length = len(json_data['channelList'])
  73.             if num > length:
  74.                 print(f"站点的长度为{length},{num}已经超出这个长度")
  75.                 return None            return json_data['channelList'][num-1]
  76.     def getAllSiteInfo(self):        path = os.path.join(self.dirPath, "site.json")
  77.         with open(path, 'r', encoding='utf8')as fp:
  78.             json_data = json.load(fp)
  79.             return json_data['channelList']
  80.     def getSiteName(self, siteInfo):        return siteInfo['sourceList'][0]['name']
  81.     def getSiteSource(self, siteInfo):        return siteInfo['sourceList'][0]['source']
  82.     def addSuccessSite(self, siteInfo):        path = os.path.join(self.dirPath, "success.json")
  83.         add = self.isSuccessSite(siteInfo)
  84.         if add == False:
  85.             with open(path, 'r+', encoding='utf8')as fp:
  86.                 json_data = json.load(fp)
  87.             with open(path, 'w', encoding='utf8')as fp:
  88.                 json_data['channelList'].append(siteInfo)
  89.                 fp.write(json.dumps(json_data, indent=4))
  90.     def isSuccessSite(self, siteInfo):        path = os.path.join(self.dirPath, "success.json")
  91.         with open(path, 'r+', encoding='utf8')as fp:
  92.             json_data = json.load(fp)
  93.             if siteInfo in list(json_data['channelList']):
  94.                 return True            else:
  95.                 return Falsedef main(path):    webRequests = WebRequests()
  96.     webRequests.dirPath = path
  97.     print(f"总共有{webRequests.getSiteNum()}个站点可以领取福卡")
  98.     for i in range(1, webRequests.getSiteNum()+1):
  99.         siteInfo = webRequests.getSiteInfo(i)
  100.         siteName = webRequests.getSiteName(siteInfo)
  101.         print(f"{i}:{siteName}")
  102.     startSite = int(input("您要从第几个站点开始向后领取?"))
  103.     mobile = input("请输入您的手机号:")
  104.     for i in range(startSite, webRequests.getSiteNum()+1):
  105.         siteInfo = webRequests.getSiteInfo(i)
  106.         siteName = webRequests.getSiteName(siteInfo)
  107.         siteSource = webRequests.getSiteSource(siteInfo)
  108.         if webRequests.isSuccessSite(siteInfo):
  109.             print(f"{i}:{siteName} 已经成功领取,跳过")
  110.             continue        print(f"{i}:{siteName} 正在领取中")
  111.         result = webRequests.getCaptcha(mobile, siteSource)
  112.         print(result['info'])
  113.         if result['code'] == 1001:
  114.             if str(result['info']).find("验证码发送过频繁") != -1:
  115.                 print("验证码需等待60s后才能获取,正在等待..")
  116.                 time.sleep(60)
  117.                 result = webRequests.getCaptcha(mobile, siteSource)
  118.             if str(result['info']).find("人气太旺啦,稍候再试试") != -1:
  119.                 print("您的手机号在近期已经获得了多次支付宝验证码,已被支付宝限制,24小时内无法再获得验证码,程序终止。")
  120.                 break            elif str(result['info']).find("人气太旺啦,稍候再试试") == -1 and str(result['info']).find("验证码发送过频繁") == -1:
  121.                 continue        ackCode = input("请输入验证码:")
  122.         result = webRequests.getResult(mobile, siteSource, ackCode)
  123.         print(result['info'])
  124.         if result['code'] == 1000 or result['info'].find("已经领取过奖品") != -1:
  125.             webRequests.addSuccessSite(siteInfo)
  126.         print("验证码需等待60s后才能获取,正在等待..")
  127.         time.sleep(60)
  128.     input("程序已结束,您可以关闭此程序了")if __name__ == '__main__':
  129.     path = os.path.dirname(os.path.realpath(sys.argv[0]))
  130.     main(path)
本文由 泓源视野 作者:admin 发表,其版权均为 泓源视野 所有,文章内容系作者个人观点,不代表 泓源视野 对观点赞同或支持。如需转载,请注明文章来源。
34
admin

发表评论

Protected with IP Blacklist CloudIP Blacklist Cloud
您是第8232912 位访客, 您的IP是:[216.73.216.58]