收款与开票:钱到账才算成功

雅卡团队 · 2026-10-19T17:00

收款链路的设计目标是:钱到账才算成功,没到账绝不给成功回执。 这一条决定了掉单率的下限,也决定了出问题时你能不能对得清。

一、三种收款方式

方式适合场景到账确认
在线支付(扫码)个人用户小额充值、订阅续费支付平台异步通知,服务端验签后入账
二维码收款无商户号时的过渡方案人工核对后手工核销
对公转账企业客户大额预充财务确认到账后核销并开票

二、配置在线支付(以微信支付 v3 为例)

  1. 在后台「支付渠道」新增一条渠道,一个渠道一行;
  2. 填商户号、APIv3 密钥、证书序列号、私钥,以及微信支付公钥(公钥模式);
  3. 保存后密钥只存在服务端,列表里只回显掩码;后续编辑留空即表示不修改;
  4. 跑一次「渠道自检」:它会用一个不存在的订单号去探活,并反验公钥是否正确;
  5. 自检通过后再小额实付一笔,确认回调入账。

为什么一定要自检:公钥贴错时下单是成功的,只有等回调验签才会失败—— 那时候用户已经付了钱,你却入不了账。宁可在收款前拦下。

三、回调与掉单

回调处理是 fail-closed 的:配置缺失返回失败、验签失败返回失败、入账失败返回失败。 只有真正入账成功才回成功。这样支付平台会持续重试,直到你这边修好为止。

如果发现某笔订单「用户说付了、系统没到账」:

  1. 先在订单列表按订单号查状态;
  2. 查支付渠道后台的订单状态;
  3. 确认已付款但未入账的,按工单走人工补单,并记录原因; 不要直接改余额,否则对账时对不上。

四、发票

个人与企业都能在线申请开票。实名信息里的敏感字段(如身份证号)加密存储, 后台开票详情才可见明文,前端一律脱敏展示。开票记录与订单绑定,可随时回查。

五、踩坑清单

现象原因与处置
下单报「商户订单号错误」 订单号长度不在 6–32 位之间。系统生成的订单号已满足要求,但如果二次开发自己拼号,务必守这个长度区间。
用户付了钱但余额没变 回调验签失败(公钥/密钥填错)或回调地址公网不可达。先跑渠道自检,再看回调日志。
收银台链接被人改订单号 不可能生效:链接带签名,改任何参数都会校验失败。
改完渠道配置不生效 密钥类字段留空表示「不修改」;想真正清空要显式操作。
退款怎么走 当前由人工审批处理:用户提交工单 → 你核对订单与到账 → 线下/渠道后台退款 → 系统内登记。 不要把退款做成直接改余额。