微信小程序抢票脚本

article/2025/8/22 9:12:06

但凡可以使用接口直接进行抢票的,都是基于小程序安全系数较低的情况下

所有加密,使用的数据都写在接口里
奥体整个后台也进行了重构,这套代码也使用不了了
现在的加密方式,完全看不懂
例:在这里插入图片描述
这种加密没源码,想破脑袋也破解不了的

原文:

所使用的模块:request和re
工具:pycharm和fiddler
微信小程序:苏州奥体

通过分析可得出订票总分为两步操作 1.选择场地 2.付款
所以只需要抓取到这两个接口就行

1.首先通过fiddler工具抓取到请求和参数

  • 1.选择场地信息url信息
  • url和请求参数
    此接口为选择场地url
  • 2.付款url信息
  • url和请求参数
    在这里插入图片描述

2.代码部分,编写脚本

  1. 选择场地代码
    通过第一步操作,得到所需信息,使用request模块进行请求
// 选场地
changdi_url = "https://sapb.szosc.cn/index.php/wxplace/place/pay"
date = {'price': '30','fieldtype': '羽毛球场地','homename': '体育馆名称','field': '11:00-12:00|2021-09-07 11:00:00|6|30,12:00-13:00|2021-09-07 12:00:00|6|30','openid': '自己的id','unionid': '自己的id','limit': '1.0000','agree': '1'}
response = requests.post(url=changdi_url, data=date)
  • 下图为返回值信息
    在这里插入图片描述
    2.使用re模块,对返回值进行截取,从而得到下一个url所需的信息
//获取返回值信息
response_text = response.text
//通过正则匹配对应值
outtradeno = re.findall('(name="outtradeno" value=")(.*)(" /)', response_text)[0][1]
ordtotal_fee = re.findall('(name="ordtotal_fee" value=")(.*)(" /)', response_text)[0][1]
homename = re.findall('(name="homename" value=")(.*)(" /)', response_text)[0][1]
fieldtype = re.findall('(name="fieldtype" value=")(.*)(" /)', response_text)[0][1]
fieldnum = re.findall('(name="fieldnum" value=")(.*)(" /)', response_text)[0][1]
starttime = re.findall('(name="starttime" value=")(.*)(" /)', response_text)[0][1]
bookinfo = re.findall('(name="bookinfo" value=")(.*)("/)', response_text)[0][1]
uid = re.findall('(name="uid" value=")(.*)("/)', response_text)[0][1]
paid = re.findall('(name="paid" value=")(.*)(" /)', response_text)[0][1]
limit = re.findall('(name="limit" value=")(.*)("/)', response_text)[0][1]
dttoken = re.findall('(name="dttoken" value=")(.*)("/)', response_text)[0][1]
yhq = re.findall('(name="yhq" value=")(.*)("/)', response_text)[0][1]
yhqid = re.findall('(name="yhqid" value=")(.*)("/)', response_text)[0][1]
payType = re.findall('(name="payType" value=")(.*)(" /)', response_text)[0][1]
vipCode = re.findall('(name="vipCode" value=")(.*)(" /)', response_text)[0][1]
outTradeNo = re.findall('(name="outTradeNo" value=")(.*)(" /)', response_text)[0][1]
totalFee = re.findall('(name="totalFee" value=")(.*)(" /)', response_text)[0][1]
balanceMethod = re.findall('(name="balanceMethod" value=")(.*)(" /)', response_text)[0][1]
cashAmount = re.findall('(name="cashAmount" value=")(.*)(" /)', response_text)[0][1]
  • 其中有个值为sign,此值是通过加密所得,然后再传个下个接口
    在这里插入图片描述
//加密方法
def md5_encrypt(code):m = hashlib.md5()m.update(code.encode("utf-8"))sign = "123" + m.hexdigest()return sign 
//拼接原数据
sign_old = "wxopenid" + outtradeno + bookinfo + paid + "Sport2021"
//调用
sign = md5_encrypt(sign_old)
  1. 付款部分
//将第一步返回数据,放到付款接口的参数里面
pay_url = "https://sapb.szosc.cn/index.php/yinlian/index/pay"
data = {'bookholder': '姓名','mobile': '电话',"idno": '','outtradeno': outtradeno,'ordtotal_fee': ordtotal_fee,'homename': homename,'fieldtype': fieldtype,'wxopenid': wxopenid,'unionid': unionid,'fieldnum': fieldnum,'starttime': starttime,'bookinfo': bookinfo,'uid': uid,'paid': paid,'limit': limit,'dttoken': dttoken,'yhq': yhq,'yhqid': yhqid,'sign': sign,'payType': payType,'vipCode': vipCode,'outTradeNo': outTradeNo,'totalFee': totalFee,'balanceMethod': balanceMethod,'cashAmount': cashAmount,'groupName': '','merchantCode': '','groupVipId': ''}
resp = requests.post(url=pay_url, data=data)

关注微信公众号「躺平de咸鱼」 回复关键字「抢票」领取源码


http://chatgpt.dhexx.cn/article/NYLduPom.shtml

相关文章

【Android】基于Airtest实现大麦网app自动抢票程序

0x01 缘起 疫情结束的2023年5月,大家对出去玩都有点疯狂,歌手们也扎堆开演唱会。但演唱会多,票一点也不好抢,抢五月天的门票难度不亚于买五一的高铁票。所以想尝试找一些脚本来辅助抢票,之前经常用selenium和request做一些小爬虫来搞定自动化的工作,所以在 MakiNaruto/A…

12306火车票抢票Python代码最新完整版发布,五一抢票就靠它了!

语言版本:Python 1、自动登录12306并保持Cookie 2、自动实现抢购设置的某日期的某车次的票 3、攻克排队系统陷阱,避免进入排队系统 4、循环监控某车次的票,直到有票,自动抢购 5、抢票时若出现异常,自动重新抢票&a…

Python:基于Python爬虫技术的抢票程序及其实现

临近放假,相信我们每天都在群聊里或者朋友圈看到一些帮忙抢火车票的信息。看到朋友们抢回家的车票这么辛(bei)苦(can),结合圈里一些前辈的指点,抱着学习的心态用Python做了一个简单的自动化抢票程序,抢到票之后通过绑定的邮箱&…

想去看演唱却总是抢不到票?教你用Python制作一个自动抢票脚本

前言 嗨喽!大家好,这里是魔王!! 大麦网,是中国综合类现场娱乐票务营销平台,业务覆盖演唱会、 话剧、音乐剧、体育赛事等领域。 但是因为票数有限,还有黄牛们不能丢了饭碗,所以导致…

大麦演唱会为什么总抢不到票?抢票完整教程、详细步骤

文章目录 1.在浏览器上安装脚本管理器 1.登录网址Tampermonkey • Home 2.选择对应浏览器的版本,并安装。 这里以edge浏览器作为示范​编辑 2.在油猴脚本管理器中搜索脚本 2.1注意右上角的更新,点击获取新脚本。 2.2 在此页面搜索“大麦抢票” 3.安…

程序员的我是如何抢票的(Python)

马上就要回家过年了,你的票买好了吗。 虽然我不用抢票,但是还是研究了一下怎么抢票。 程序员嘛,就是要对一切问题进行解构,探索原理本质,寻找规律,将其自动化。。。 好了,言归正传,开…

12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)

郑重声明: 本文仅供学习使用,禁止用于非法用途,否则后果自负,如有侵权,烦请告知删除,谢谢合作! 开篇明义 本文针对自主开发的抢票脚本在抢票过程中常常遇到的请求无效等问题,简单分析了 12306 网站的前端加密算法,更准确的说,是探究 RAIL_DEVICEID 的生成过程. 因为该 cookie…

技术宅---我的网上抢火车票攻略

写在前面 写这篇文章的起因是今天在12306上买火车票时,被这牛逼的网站给震撼到了,靠,牛叉得让人无语的用户体验啊。就讲讲我是如何利用一个小工具做辅助,幸运地抢到了回家的卧铺票的。希望能给有需要的兄弟们做个参考。 回顾下我今…

初学者怎么学java编程 ,小白们看过来吧

推荐一个java《学习》交流 群523401738每天晚上都有一个Java技术学习课,会有老师分享干货,帮助大家分析解答问题 一、java分为三大方向: CS架构(java se)。BS架构(java web)。java手机开发(java me&#…

自学 Java 怎么入门?

自学会碰到的问题 自学可以省不少的钱, 可是自学会碰到很多问题。 我再自学的过程中找到了一个Java自学的网站(Java全栈工程师 | 以实例驱动学习 | how2j.cn),试图解决一些自学中会碰到的问题。 1. 框架、思路、原理 一下子涌进来太多,弄不明…

Java 技术新手入门

Java 技术新手入门 什么是 Java 技术?Java 技术为什么重要?什么是 Java 组件技术?Java 技术如何与 Web 服务联系起来?如何提高 Java 编程技巧?Java 编程人员可以使用哪些 IBM 工具和产品? developerWorks J…

java基础编程入门教程,2022最新

Java学习到什么程度可以找第一份工作自己买了本Java从入门到精通。以为可以很快地学完,非CS专业。现在我想说所有系列的从入门到精通都是垃圾,一年多来,我每天白天看视频,晚上敲代码到凌晨,我是一个很倔的人,我认为天下没有任何东西是人类学不会的,所以我就付出高三一样的时间去…

新手小白入门编程第3讲 JAVA入门案例

1 HelloWorld案例 1.1 工作空间设置 工作空间就是一个文件夹,用来保存我们所有的开发文件和代码等等. 工作空间也是可以切换的,但是切换了工作空间,我们对于eclipse的设置就重置了. 后续我们自己写的代码可以去这个位置找到.可以如下图,选择工作空间的存放目录 1.2 eclipse…

Java编程学习入门、Java语言学习、Java入门必看

一、初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮》起床》洗漱》出宿舍》》吃早餐》到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 2.计算机中的程序: 一组有序指令的集合,需要和计算机交流就要使用计算机语言,ja…

关于1970年之前的时间要怎么转换成时间戳啊 负数要怎么处理

在这里有的人可能有疑问? 大家都知道java时间戳是从1970年1月1日0时0分0秒开始计算的,那么假如1960年的时间戳应该是多少呢? 下面是答案,负数,通过负数一样可以转化成正常的时间 年月日。 -3026880001960-05-30 00:00

moment.JS时间戳转换总是1970年问题

把时间戳 ✖1000 即可解决 例子moment(date * 1000).format(‘YYYY-MM-DD’); 还可以这样

mysql查询1970年以后出生的人_阴阳五行分析:1970年出生的人是什么命?

农历1970年出生的人属狗,此年出生的人不应好高骛远,把握当下幸福的生活。我们常说“听天由命”,所谓的命运早就已经刻画在了你的五行中,五行算命也就有迹可循。 那么,本期一起来看看1970年出生的人是什么命&#xff1f…

mysql 日期 1970_Mysql中处理1970年前的日期(unixtime为负数的情况)负数时间戳格式化...

客户扔过来一个bug,说是一个系统中对42岁以上的人的统计不正确,而41岁以下的人没有问题。眼睛瞟了一下托盘区里的日期,2012年3月26日,嗯,今年42岁的话,那么应该就是出生在1970年左右,马上就把问…

C语言里的fabs()和sqrt()的含义

fabs()其实是指绝对值&#xff0c;例如fabs(a)就是指a的绝对值&#xff0c;在程序中使用的时候需要包含头文件<math.h>。而sqrt()是指开根号&#xff0c;例如sqrt(a)就是指根号a。 举个例子&#xff1a; 假如从键盘任意输入a&#xff0c;b&#xff0c;e的值&#xff0c;编…

求绝对值指针c语言,C语言实现abs和fabs绝对值

C语言 abs() 函数用于求整数的绝对值。 头文件&#xff1a;math.h 或者 stdlib.h 语法/原型&#xff1a; int abs(int n); n 表示要求绝对值的数。 返回值&#xff1a;参数的绝对值。 【实例1】使用 abs() 函数求整数 3 和 -4 的绝对值。 #include #include int main() { int a…