同一笔请求发三遍只算一次:幂等键取哪几列,票务系统定规矩
时间:2026-10-19 18:33:22 作者:智慧景区票务系统

同一笔请求在日志里出现三次,时间戳各差两秒。对账时它被算成三笔,票务系统和售票系统各报一个数。幂等键就是解决这件事的一把尺,说白话:同一个号再来,还给同一个结果,不再新开一笔。

幂等键取哪几列,两列是下限

列不得少于两列,且不包含时间戳。最常取的是订单号加渠道这两列。时间戳看着唯一,其实最会骗人,同一个人隔两秒点了两次,时间戳变了,票还是那一张。幂等键取列的意思,是拿哪几栏拼出一个号,这个号两边都要能算得出来,才算得了数。

这两列怎么拼,要写在对接说明的第一页,不能散在聊天记录里。渠道方换了人接手,第一份要查的就是这一行。写不清的后果是新接手的人自己另取一列,同一笔请求在两边算出两个号,对账时才发现两串的长短对不上。

同一请求换三个时间戳只落一笔

键取宽了和取窄了,票务系统各出什么事

取宽了,多加一列,同一笔请求换个来源就变成两笔,请求重复挡不住,对账时多出来的那笔只能标疑。取窄了,只留一列,两个渠道撞出的同号会被当成一笔,前一个人出票成功,后一个人拿到别人的结果,窗口一查就乱。宽了多出单,窄了错绑单,两种都要跑一整天的对账才翻得回来。

售票系统那边若按自家的号另算一遍,同一笔请求还是三笔,两边数怎么都对不齐。所以规矩由票务系统这边定,不由发起方各家自定。定下来写进对接说明,渠道要改列得提前打招呼,改完当天重跑一次验证:把同一笔请求换三个不同时间戳各发一次,落一笔算通过,落两笔就退回旧键重来。

幂等键取两列还是取整包摘要

两条路摆在一起比幂等键的取法。以订单号加渠道做键,对方改了别的字段名,只要这两列的值不变,键照样对得上。以整包摘要做键,是把整个请求内容算成一串字符,任何一栏挪动这串就跟着变。字段变更时,第二条路要把历史对账整轮重来,第一条路只补一张对照单,两者差的不是一星半点。

同一键在 24 小时内重复到达,返回同一结果。重复到达的时候要记一条,记录保留 3 个月,客诉翻旧单时能查到是谁重复发的。超过 24 小时再到,就按新单走,这条边界不许渠道那边自己挪。售票系统里的重复记录同样留满 3 个月,两边留不齐,事后就只能信一份数。取列的方法和保留时长写进同一份对账说明,让出票岗和对账岗看的是同一张纸。

重复记录保留三个月可供翻查

现场还有一处要查:对账表里按同一键排序,看有没有相邻两行的结果不一样。相邻两行同键不同结果,说明键的判定被别的东西干扰了,多半是某一列在中间被改过值。查出来当场记时间、记渠道、记订单号,当天就找对接人。

只有在人工补录的时候允许覆盖。补录岗位按票面把客人漏掉的那笔重新录进票务系统,可以覆盖原来的空记录。覆盖必须单独留痕,谁录的、凭哪张单据录的、录了几笔都要写清楚。非补录的自动请求,一次都不许覆盖,覆盖了键就没法再对,请求重复也查不到源头。

点击下方文字 自动复制微信号
15629900190(点击复制)