顾客已扣款,但收银订单没生成/交易记录缺失,怎么快速定位
这种情况通常不是“没收款”,而是订单创建、支付回调、对账入账这条链路里有一段断了。你可以按“支付侧是否成功→我们是否收到回调→系统是否补单成功”去查。
- 顾客侧:让顾客提供支付成功页截图,至少要有金额、时间、商户单号/交易单号。
- 支付侧:到支付渠道后台查交易状态(成功/关闭/退款中)。别只看前端“success”。
- 系统侧:查创建订单日志、回调日志、入库失败日志,重点看报错时间点是否和扣款时间一致(系统时间为2026年3月7日)。
支付交易查询:用“查单”把真相拉出来
遇到“扣了款但没订单”,查单比猜原因更快。常见结果就两类:支付成功但没回调;回调到了但验签/入库失败。
- 支付成功:保存渠道交易号,作为补单的唯一凭证。
- 支付未成功:顾客看到扣款也可能是冻结/处理中,等渠道最终态;不要急着发货。
- 验签问题:很多是请求体不一致、URI带了query、编码不统一。小程序虚拟支付场景还要注意pay_sig和signature各自的适用接口。
- 环境混用:实测里常见“env填错/密钥混用”,例如iOS端一般要求env=0,把沙箱当现网会直接异常。
小例子:顾客付了99元,渠道查单是SUCCESS,但你们系统没有记录,八成是回调没入库或被防火墙拦了。
回调补单与对账补救:把钱和订单重新对齐
建议你在后台提供一键“补单/重放回调”能力,核心是幂等:同一笔渠道交易号重复来100次,也只能入账一次。
- 回调补单:按“商户单号/渠道交易号”触发查单→确认SUCCESS→写入订单→补发库存/发货/权益。
- 对账补救:下载渠道账单,做“T+0人工核对”。发现系统少单,就按账单逐条补;发现系统多记,就锁单并走退款。
- 处理口径:若支付成功但业务无法交付,直接走原路退款,别拖。
可执行建议(今天就能做)
- 把“查单按钮”放到收银订单列表页:输入手机号或金额区间也能定位。
- 给回调接口加监控:5分钟内回调成功率、验签失败数、入库失败数,异常就告警。
- 上线“自动补偿任务”:回调缺失时,每隔30秒查单一次,持续10分钟,仍不一致就进人工工单。
- 财务每天用账单做抽检:抽50笔对账,能很快发现系统性问题。