微信小程序抢票脚本怎么写_小程序抢票脚本

微信小程序抢票脚本怎么写_小程序抢票脚本小程序抢票脚本@TOC微信小程序抢票脚本所使用的模块:request和re工具:pycharm和fiddler1.首先通过fiddler工具抓取到请求和参数选择场地信息url信息付款url信息2.代码部分,编写脚本选场地//选场地changdi_url=”https://sapb.szosc.cn/index.php/wxplace/place/pay”date={‘price’:’30’,’fieldtype’:”,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

原文:

所使用的模块: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咸鱼」 回复关键字「抢票」领取源码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193315.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Jmeter安装及配置教程

    Jmeter安装及配置教程Jmeter安装及配置教程一、JMeter的安装配置过程二、JMeter的运行和语言设置一、JMeter的安装配置过程安装配置过程:第一步安装JDK,配置JDK路径到Oracle官方网站下载最新版本的jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html这里使用的操作系统是Windows,选最后一个下载,下载完直接运行安装。安装完设置一下环境参数。JAVA_HOME:D:\

    2022年5月3日
    43
  • DB2数据库SQL语法参考手册

    DB2数据库SQL语法参考手册

    2021年5月6日
    150
  • linux查看ftp用户列表_linux ftp下载命令

    linux查看ftp用户列表_linux ftp下载命令ftp服务器在网上较为常见,Linuxftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文。下面由学习啦小编为大家整理了linux下查询ftp命令的相关知识,希望对大家有所帮助。Linuxftp命令的格式$ftp主机名/IP其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接;如果没有指…

    2022年9月21日
    0
  • 百度网盘加速(加速百度网盘下载速度)

    分享:链接:https://pan.baidu.com/s/1HReiz__CyKWM6cdzApiVmQ提取码:ffjm复制这段内容后打开百度网盘手机App,操作更方便哦本软件使用需要的其他软件:Chrome及switchyomega插件(插件随链接发送,也可去官网下载)一安装proxyeedownWindows:下载Windows版本的压缩包以…

    2022年4月14日
    91
  • pycharm一键调整代码格式_格式化代码

    pycharm一键调整代码格式_格式化代码一常用快捷键编辑类:Ctrl+D复制选定的区域或行Ctrl+Y删除选定的行Ctrl+Alt+L代码格式化Ctrl+Alt+O优化导入(去掉用不到的包导入)Ctrl+鼠标简介/进入代码定义Ctrl+/行注释、取消注释Ctrl+左方括号快速跳到代码开头Ctrl+右方括号快速跳到代码末尾Shift+F10运行Sh

    2022年8月29日
    0
  • 新手学c还是java_80x86汇编小站,新手学c还是java

    新手学c还是java_80x86汇编小站,新手学c还是java设计汇编语言的教学方案,决定就从8086汇编开始。学汇编,关注对系统底层的理解,指令太多,初学者伤不起。面对一个复杂的系统,教学中常需要设计一个简化的教学模型,抽取出其中的核心,以此得门而入。高龄的8086汇编,于当今的技术而言,是一个理想的教学模型。学生未来的工作可能基于80×86,可以用Linux汇编、ARM汇编,在8086汇编基础上再做拓展即可。学生将来在工作中可能压根就不会用汇编,通过学汇…

    2022年10月13日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号