Clawdbot多乘车人抢票需先在12306官网添加并审核通过全部常用联系人,再执行clawdbot reload contacts同步;接着通过JSON配置多乘客信息并submit-ticket提交;支持Telegram跨设备同步联系人;最后用list-orders验证各订单result_code是否为0。

如果您在使用Clawdbot进行火车票抢购时,需要为多人同时下单但系统仅默认绑定单个乘车人,则可能是由于Clawdbot未正确加载或同步12306账号下的全部常用联系人。以下是实现Clawdbot多乘车人配置与同步抢票的可行操作路径:
一、确保12306账户已预存全部乘车人信息
Clawdbot本身不独立维护乘车人库,而是依赖所登录12306账户中“我的常用联系人”列表。若目标乘车人未出现在该列表中,Clawdbot将无法调用其身份信息参与抢票流程。
1、访问官网www.12306.cn,使用购票账号登录;
2、点击右上角“我的12306”,进入“常用联系人”管理页;
3、核对所有需抢票的乘车人是否均已添加且状态为“已通过”;
4、如存在未通过审核的联系人,需重新提交身份证正反面照片并等待人工复核(通常需24小时内完成);
5、确认无遗漏后,手动点击页面右上角“刷新联系人列表”按钮,强制同步最新数据。
二、在Clawdbot中触发12306联系人重载
Clawdbot首次登录12306后会缓存当时可用的联系人快照,后续新增联系人不会自动更新。必须执行显式重载指令,才能使新联系人进入Clawdbot可选范围。
1、打开Clawdbot终端或TUI界面,输入命令:clawdbot reload contacts --source 12306;
2、系统将自动调用12306开放接口重新拉取当前账户下全部已通过联系人;
3、观察终端输出日志,确认返回结果中包含全部目标姓名及证件号;
4、若提示“未检测到新增联系人”,请检查第1步中是否已完成12306端的手动刷新;
5、执行成功后,可在Web UI的“抢票设置→乘车人”下拉菜单中看到全部人选。
三、配置多乘车人并发抢票任务
Clawdbot支持单次请求中指定多个乘车人组合,但需通过JSON格式显式声明,不可依赖界面多选框批量提交——该控件仅用于单票单人场景。
1、在Clawdbot工作目录下新建文件multi_passengers.json;
2、按如下结构填入内容(示例含两人):
{
"passengers": [
{"name": "张三", "id_type": "1", "id_no": "110101199003072358"},
{"name": "李四", "id_type": "1", "id_no": "110101199205128743"}
],
"train_no": "G101",
"from_station": "BJP",
"to_station": "SHH",
"date": "2026-02-05"
}
3、保存文件后,在终端执行:clawdbot submit-ticket --config multi_passengers.json;
4、系统将自动生成两张独立订单,并行提交至12306后端;
5、注意:同一车次同一席别下,Clawdbot最多允许同时提交4名乘车人的订单,超出部分将被12306接口直接拒绝。
四、使用Telegram/WhatsApp通道实现跨设备联系人共享
当您在不同终端(如手机、树莓派、Mac mini)分别运行Clawdbot实例时,各实例默认隔离联系人数据。需借助消息通道统一同步,避免重复维护。
1、在任一主控设备上启用Telegram Bot,并获取Bot Token;
2、于其他从属设备Clawdbot配置中,设置channel: telegram并填入相同Token;
3、向该Bot发送指令:/sync_contacts_from 12306;
4、主控设备收到请求后,立即执行一次全量联系人导出,并通过加密消息广播至所有已注册终端;
5、各从属设备自动解析并覆盖本地缓存,整个过程无需人工介入或重启服务。
五、验证多乘车人抢票响应有效性
Clawdbot在提交多乘车人请求后,必须逐条校验12306返回的订单状态码,而非仅依赖HTTP 200响应。部分失败情形不会中断整体流程,需主动排查。
1、执行抢票命令后,等待约15秒,输入:clawdbot list-orders --status pending;
2、查看输出中每条记录的contact_name字段是否与JSON中顺序一致;
3、重点检查result_code值:若出现40001(身份信息未通过)、40005(席位不足但未降级)或40012(重复提交),则对应乘车人抢票失败;
4、对失败项单独构造最小化JSON重试,排除批量干扰;
5、成功订单的result_code必须为0,且order_id字段非空。











