type
status
date
slug
summary
tags
category

背景

  • 亚运会热门赛事项目(如羽毛球、游泳)一票难求。官方的「转售」玩法很好地防止了黄牛党加价倒卖。这点要给官方票务点个大大的赞👍🏻
  • 但转售专区有个巨大的 bug,让我们在购买转售票时非常痛苦。当我们好不容易刷到一张票,点击了「立即购买」按钮后,每次都会出现一个强制的 10s 的阅读须知。等你翻到页面底部,等到10s 过后进入购买页面,黄花菜都凉了。
notion image
 
notion image
  • 有没有一种方式,能在合法合规、不 hack 接口的前提下,真正「凭手速」抢票呢?
 

实现思路

  • 一般在产品设计上,这种阅读须知对后续行为的禁用限制,都是在前端完成的。也就是说,是否看完了阅读须知,并不是一个需要和后端服务器交互的校验项。
    • 对于亚运售票平台是否也是这样呢?我们需要验证一下。好消息是,经过浏览器开发者模式中对 network 请求记录的查询,可以基本做实这个结论。这是一切操作的前提。
  • 首先,我们需要知道某个项目什么时候有新的转售门票。在新的转售门票被发布后,我们应该第一时间知道,并进入对应的销售页面。
  • 其次,我们需要有个办法,能够缩短阅读须知的等待时间,或者更干脆地,直接绕过这个流程,直接进入售票页面。
    • 幸运的是,我发现列表页(以板球转售列表页为例)和订单提交页面(以板球订单提交页)的 url 中暴露了同一个参数——entrustRecordId。这也就意味着我们只要知道了这个 id,就可以无视列表页中的阅读须知,直接创建订单。
  • 最后,由于热门项目的火爆程度,上面这个流程需要完成的非常快——最好在几秒内。这样抢到票的几率就会大大提升。
    • 我们可以借助 mac 自带的工具比如快捷指令完成一系列操作
思路有了,接下来就是开干了!
 

第一步:页面监控——知道什么时候有票可买

 

1.1 获取所需项目的转售列表页面

每个项目都有个对应的转售列表页面。地址格式如下,项目不同对应结尾不同的 id
 
 
操作方法:访问官方转售专区,筛选对应的项目,进入项目的转售列表页面,获得页面 url。这就是我们接下来要监控的页面
转售专区
转售专区
板球对应的转售列表页面
板球对应的转售列表页面
注意:
只有在这个项目有转售门票的时候,才能通过转售专区的入口进入项目地址。即使后续这个项目转售门票售罄,你也依然可以使用这个地址访问该页面。
也就是说,如果这个项目一直蹲不到票,你可能找不到这个项目对应的转售列表页面。(如果你有办法,欢迎留言)
 
 

1.2 通过 Distill 监控地址变化

Distill 是一款非常受欢迎的网页监控工具,可以用来监控页面的指定区域内容是否变化。当该区域内容变化时,采取一系列行动
 
操作方法:
这里以大热门项目羽毛球为例
  1. 前往 Distill Web Monitor 官网,安装 Dstill。推荐使用浏览器插件版本
  1. 添加 Monitor,选择「web」
    1. notion image
  1. 在新开 tab 中,输入上一步中获得的转售列表页面,点击「选择元素」
  1. 鼠标悬浮至列表区域,直到出现黑色外框,单击选中
  1. 点击「保存选择」
    1. notion image
  1. 设置参数
    1. 设备:指在哪里运行这个监控。Distill 支持四种监控渠道,这里推荐使用「Chrome」这个选项。(原因看这里
    2. 安排:指间隔多久查询一次页面。建议设置一个 5~10 秒的随机值
    3. 操作:指检测到页面变化后,需要触发的操作。建议添加播放声音+弹出通知+打开页面
    4. notion image
  1. 完成创建,开始监控
 
当转售列表页面有新的转售门票出现时,Distill 便会播放声音,弹出通知提示并自动打开转售列表页面
 

踩坑

  • 本着能解耦就解耦的原则,原本希望这个监控能和平时正常使用浏览器分隔开,于是一开始「设备」选项这里选择「desktop app」单独开 app 进程跑监控
notion image
  • 后来发现,这个 app 有个坑——打开指定 url ,然后点击某个按钮页面内容会刷新,但界面显示的 url 还是不变。
notion image
  • 这导致无法在这个页面快速获得 entrustRecordId,后续流程跑不起来
  • 所以还是得回归到使用「chrome」
notion image
 

第二步:通过快捷指令拼接订单 url——绕开10s阅读须知

我们要卡的 Bug 是,在确定场次后,转售列表页面和订单提交页面的 entrustRecordId 是一致的。
因此,我们可以利用这个特性,通过拼接 url 的方式快速前往到提交订单页面——从而绕开 10s 的阅读须知——快速选择观赛人,提交订单
 
操作方法:
  1. 打开 Mac 中的「快捷指令」
  1. 新建快捷指令,内容如下:
    1. notion image
  1. 给快捷指令设置快捷键。这个看个人偏好,我设置的是「option+cmd+D」
 
至此,所有设置项就设置完成了。让我们看看效果
 

最终效果——4 秒抢到票

  1. 当 Distill 监控到有新的转售门票时,会发送提醒并打开专区的页面
    1. notion image
  1. 手动点击场次,并复制地址栏中的entrustRecordId 【耗时约 1s】
  1. 手动操作快捷键,根据entrustRecordId生成并打开订单页面 【耗时约 1s】
  1. 添加观赛人、提交订单,抢票成功!【耗时约 2s】
    1. 提交订单后,直到支付完成,你的票都会处于锁定状态,所以不用担心付款慢了票没了。
      notion image
       
       
      最后,祝大家都能抢到自己心仪的票!
友情链接【持续更新中】免费&免版权素材库
Ryan
Ryan
产品人,新手奶爸 | 数码产品爱好者 | 人菜瘾大装备党 | 最近在骑车 正在关注:AIGC | 数字人 | 视频创作工具
公告
type
status
date
slug
summary
tags
category
加我微信
notion image
请喝咖啡
notion image