核心用法
12306-train-assistant 是一个面向中国铁路 12306 官方系统的 CLI 自动化技能,封装了 Python 客户端 client.py 的全部能力。用户可通过自然语言触发火车票查询、中转规划、候补排队、扫码登录、订单管理及支付等完整购票链路。
主要功能模块:
- 余票查询:
left-ticket支持按日期、起止站、席别筛选,输出文本或 JSON - 中转换乘:
transfer-ticket自动推荐换乘方案,支持指定中转站与无座显示 - 经停站查询:
route优先用车次号自动解析内部编号,降低用户输入负担 - 登录态管理:
status检查、qr-login-create二维码登录(后台轮询不阻塞)、密码/短信验证登录 - 订单与乘车人:
orders、passengers查询,支持历史订单时间范围筛选 - 订票下单:
book与transfer-book支持预检(--dry-run)、选座、排队轮询、支付二维码生成 - 候补全流程:
candidate-queue排队状态、candidate-submit/cancel/pay提交/取消/支付,自动处理候补单号
显著优点
- 全流程覆盖:从查票、中转规划到下单、支付、候补,无需切换官方 App
- 智能参数处理:自动解析相对日期(今天/明天)、车次号转内部编号、选座归一化(
D→1D) - 双模输出:默认友好文本摘要,明确指令下切换
--json结构化输出 - 风控提示:遇
error.html时主动建议降频重试 - 支付闭环:支持支付宝/微信/银联渠道,本地生成二维码,失败时引导至 12306 App 待支付订单
潜在缺点与局限性
- 官方依赖强:中转方案完全依赖 12306 推荐,不保证覆盖所有可行组合
- 风控敏感:高频操作易触发 12306 安全限制,需人工介入等待
- 站点别名盲区:极少数车站别名可能无法解析,需用户改用标准站名
- 候补排队不确定性:
candidate-submit超时仅返回"仍在排队",需二次查询确认 - 本地环境依赖:支付二维码生成依赖
qrcode/segno库,缺失时降级为链接输出
适合人群
- 高频铁路出行者:需批量查票、多方案比价、自动化候补监控
- 技术型用户:熟悉 CLI 操作,能接受命令参数调试
- 中转复杂行程规划者:长距离无直达车次,需智能换乘推荐
常规风险
- 账号安全:密码/短信验证码在本地环境传递,需确保运行环境可信
- 支付安全:支付二维码本地生成后需用户自行扫码,存在误操作或截图泄露风险
- 订单时效:下单后 30 分钟内需完成支付,技能仅生成链接/二维码,不保证支付状态同步
- 12306 接口变更:官方接口调整可能导致命令失效,需关注版本更新