对方改了接口,你的系统先出错
一、运费全算成零的那一次
举个例子:一家卖家具的小公司,系统里接了一家承运商的接口,下单时问它要运费。
那一次对方把运费这个数换了一种写法,原来是一个数字,改成了带单位的文字。
系统没报错。它按老办法去读,读不到就当成零,于是那一天的订单全部免运费。
三天以后对账才发现,收的钱比应付的少了一截。所谓接口,就是两个系统之间约定好的一套问答格式,格式变了,问答就变了味。
二、对方的改动通常就那三种
第一种,加一个新字段。旧字段还在,多给一样东西。
第二种,改名字或者换写法。同样的意思,换了个标签,或者数字变成了文字。
第三种,含义变了,名字照旧。这个字段以前算的是含税价,现在是不含税价,报文上一点痕迹都没有。
第一种最好办,第二种能靠报错发现,第三种最难查,因为系统以为自己读对了。
三、先报错和先算错,哪一种更难发现
先报错的那种,客户马上会感觉到,团队也会马上知道。
先算错的那种不会响。单子照样下,钱照样收,只是每一单里有一个数不对。
对得上的假象最危险。那家家具公司要是当场报错,当晚就会去联系对方;系统一声不响,错误跑了三天。
所以要给自己留一道能看见的口子:关键的那几个数,落库时要跟历史范围比一比,超出范围就记一条异常。
四、读法要不要严格:不认识的字段就报错
有两种读法。宽松的那种只挑自己要的字段,多出来的不管,少了的按零或者按空处理。
严格的另一种,格式跟约定不一样就当场拒绝,这笔请求不算成功。
宽松的坏处正是那家家具公司碰到的:读不到就当零,错误被吞掉。严格的坏处是小问题会打断业务,对方加一个字段你就可能全线报错。
做得起的折中是:关键字段按严格处理,次要一点的字段可以放宽,读不到就明确记一笔,不要按零顶上。
五、改名字那一种,怎么让它报出来
名字一改,老代码读不到原来的字段。如果按宽松读法,这件事可以安静很久。
做法是约定一个不存在的默认值:读不到时不要填零,也不要填空,而是留下一个明确标着没读到的记号,并让这条记录进异常清单。
这样业务可以继续,人也能当天看到有多少条没读到。
数字为零和没拿到数字,是两件事。把它们混在一起,账就对不上了。
六、含义变了那一种,只能靠人和纸
字段意思改了,报文上看不出来,只有对方的说明文档或者一通电话会说。
所以对对接的那几个字段,要留下一份自己写的说明:这个数是什么、含不含税、单位是元还是分、为空时代表什么。
这份说明是自己这一侧的资产。每次对接有变动,就在后面补一行日期和改动内容。
再定期一年一次,把这份说明发给对方确认一遍:这几个字段现在还是这个意思吗。
七、超时、重试和重复:一次调用变成两次
对方没回话,系统通常会再问一次。问两次不要紧,如果那一次其实成功了,只是回话丢了,就会变成两笔。
发货、扣款、发通知这一类动作,重复一次的后果看得见。
要防这一手,得在自己发出的每一笔请求里带一个唯一的单号,让对方按这个单号认:同一个单号送两次,只算一次事。
这一条要提前跟对方说好,不是这边单独能做完的事。谈的时候直接问:你们支不支持按单号去重。
八、提前知道:对方会告诉你吗
很多改动是对方发了新版本,这边才知道。
至少要把三件事问明白:改动会不会提前通知、提前几天、通知发到哪个邮箱或者哪个群。
如果对方说不通知,这一家就要按高风险对待,自己的读法要更严格一些。
还有一样能提前发现:拿一份写好的规矩去敲对方的接口,看它返回的字段还是不是约定的那几样,这叫接口自检。每天跑一次,变了当天就知道。
九、出问题时要备好的三种反应
第一种,退回旧的处理办法:新的读法出问题,一键换回上一个版本的读法。
第二种,用中间值顶上并标明:运费读不到时,按这一件商品最近一次成功的运费暂记,同时在单子上写明是暂估。
第三种,停下来问人:这一个数读不到就没办法算钱,那就把这一单先挂住,让人处理。
三种反应要在上线前就选好,不能等出事那天现场决定。挂住的那一单也要有人负责看,不然会一直挂着。
十、能不能在对方上线前先试一次
理想做法是对方有一个和真环境一样、可以随便敲的测试入口,新版本先在那里放几天。
要问清两件事:测试入口和线上是不是同一套规则,对方的新版本什么时候进测试入口。
如果对方只有线上一个环境,改动直接上线,那这一家就要按高风险对待,自检和异常清单要盯得更紧。
家具公司后来提的要求很简单:任何改动,先在她的测试入口放两天,再进线上。
十一、每一次对接的变化要记在哪
记在一个地方就行,但要固定:哪一天、对方改了哪一处、自己这边动了什么、有没有影响到客户。
这一份记录最大的用处不是查案,是谈判。第几次出问题、哪一类问题反复出现,都有据可查。
也是这一份记录,能让接手的新人半天明白这套对接踩过哪些坑。
十二、合同和沟通里该写的那几句
技术做尽,也抵不过对方一句话就改格式。能约束的只有纸。
三句要写:改动要提前几天通知;关键字段的含义变更要先协商;因为对方未通知的改动造成的损失怎么处理。
另外要有一句退路:合作终止时,对方要把这一路的对接说明交回来。
采购那一家时把这几句问清楚,比事后追讨便宜。
十三、小团队最少做哪几件
第一,把对接的每个字段写一份自己的说明,含单位和空值的含义。
第二,关键字段读不到时报异常,不要按零或者按空顶上。
第三,每天跑一次接口自检,字段和格式对不上就当天知道。
第四,每一笔请求带唯一单号,并问清对方能不能按单号去重。
第五,出事时怎么反应,事前决定,写在那份说明的最后。
十四、先做哪一步最要紧
先把那张字段说明写出来。一张表,列出对方给的每一个数、单位、为空时代表什么。
有了这张表,自检才知道该检查什么,异常才知道该报哪一条,谈判才知道对方改了哪一处。
接口出问题不可怕,可怕的是读了个错值还以为是对的。
本文作者:Aryee 发布时间:2026-10-26 07:31
本文出处:ARYEE.cn 固定链接:https://www.aryee.cn/archives/partner-api-changed-its-fields.html
转载或引用请连这一行一起带走;文中的代码与结论按当时环境成立,组件升级后请以官方文档为准。