支付失败时页面弹出“10021”,当天 340 次请求里有 85 次用户直接关页,客服不知道怎么解释。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
{"code":10021,"messageKey":"pay.card_declined"}
curl -s -X POST /api/pay -d '{"orderNo":"T1024"}'
后端只返回数字错误码,文案表放在前端,新增码值没有同步。前端查不到时把 code 原样显示。错误码和文案的版本是两套发布节奏。这一点先确认清楚,后面就不用反复试。
「错误码未本地化」这类改动最怕改一半,回滚脚本先准备好,再动生产。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
具体做法是,错误码表由后端统一维护 返回 code 加 messageKey;前端按当前语言渲染 messageKey 缺省显示通用提示;发布时校验前后端错误码集合一致;构造 10021 触发一次 看页面提示。
改完照着核一遍,页面显示“银行卡被拒绝”而不是 10021,未登记码值走通用提示。
