财务和支付排查手册

本文围绕收付款单、在线支付、退款、白条还款、账户流水排查。适用于“支付成功业务单没变”“付款单重复/缺失”“退款不到账”“账户余额异常”等问题。

适用场景

  • 支付中心成功回调后采购单仍待支付。
  • 在线支付关闭后未生成退款或采购单状态不对。
  • 收款单、付款单状态和业务单据状态不一致。
  • 白条还款、专属授信、返利账户异常。
  • 重复回调导致财务数据疑似重复。

入口文件

  • 财务 PC:application/controllers/scm/Payment.phpReceipt.phpAccCheck.php
  • App 财务 code:application/config/appapis.php
  • 支付中心回调:application/controllers/tasks/PayCenterNotify.php
  • 全车件支付回调:application/controllers/tasks/QPayCenterNotify.php
  • 财务报表:application/Services/Report/AccountPaySer.phpAccountReceiveSer.php
  • MQ 生产:application/Services/Mq/MqSer.php

核心表

  • 账户流水主表:t_scm_account
  • 账户流水明细:t_scm_account_info
  • 往月账户流水:th_scm_account
  • 收付款主表:t_scm_payment
  • 收付款明细:t_scm_payment_info
  • 收付款日志:t_scm_payment_log
  • 授信还款单:t_scm_repayment_order
  • 采购支付明细:t_scm_po_order_payinfo
  • 采购主单:t_scm_po_order

状态和枚举

  • 收付款状态:0 已确认,1 已提交,2 已确认兼容,6 已撤销。
  • 采购支付类型:0 线下挂账,1 在线支付。
  • 支付中心事件:paycenter_pay_resultpaycenter_refund_resultpaycenter_pay_exceptionpaycenter_baitiao_return_pay_result
  • 常见交易类型:收款 153001,付款 153101,预收款 155001,退款 155002,余额支出 155003,采购订单 170401,采购关闭 170503

支付成功排查

  1. 查支付中心回调消息。
  • 事件类型应为 paycenter_pay_result
  • 核对支付单号、业务单号、支付状态、金额。
  1. t_scm_po_order_payinfo
  • 是否存在对应采购单支付明细。
  • 支付状态、支付流水号、金额是否更新。
  1. t_scm_paymentt_scm_payment_info
  • 是否生成付款单。
  • 金额是否和采购单、支付明细一致。
  • 状态是否已确认。
  1. 查采购主单。
  • 在线支付成功后,采购单应从待支付推进到后续状态。
  • 秒杀/活动来源还要看秒杀订单和活动数量。
  1. 查账户流水。
  • 账户流水是否记录对应交易类型。
  • 金额方向是否正确。

退款排查

  1. 确认触发退款的业务动作:采购关闭、采购退货、支付异常、售后。
  2. 查退款事件 paycenter_refund_result
  3. 查采购单是否进入待退款或已关闭状态。
  4. 查付款单/账户流水是否有退款方向记录。
  5. 重复退款回调只应更新一次最终状态,不能重复入账。

线下挂账和在线支付差异

| 维度 | 线下挂账 | 在线支付 | | --- | --- | --- | | 采购支付类型 | PAYMENT_TYPE_NORMAL | PAYMENT_TYPE_ONLINE | | 是否等待支付中心 | 否 | 是 | | 常见状态 | 审核通过后进入待出库 | 创建后进入待支付,成功后推进 | | 财务记录 | 多为挂账/账户流水 | 支付明细、付款单、支付流水 | | 关闭风险 | 关注关闭数量和账户 | 关注退款、超时、重复回调 |

白条和授信

  • 白条还款回调看 paycenter_baitiao_return_pay_result
  • 授信还款单看 t_scm_repayment_order
  • 专属授信相关基础表在 BS_EXCLUSIVE_BAITIAO_*BS_BAITIAO_*
  • 授信问题通常要同时查额度、还款单、支付回调、账户流水。

常用 SQL 模板

-- 采购支付明细
select * from t_scm_po_order_payinfo
where sid = :sid and orderId = :order_id;

-- 收付款主单和明细
select * from t_scm_payment
where sid = :sid and srcOrderNo = :bill_no;
select * from t_scm_payment_info
where sid = :sid and srcOrderNo = :bill_no;

-- 账户流水
select * from t_scm_account
where sid = :sid and srcOrderNo = :bill_no;
select * from t_scm_account_info
where sid = :sid and srcOrderNo = :bill_no;

常用 rg 命令

rg -n "paycenter_pay_result|paycenter_refund_result|paycenter_pay_exception" application/controllers/tasks/PayCenterNotify.php application/KzData/Enums
rg -n "SCM_PAYMENT|SCM_PAYMENT_INFO|PaymentEnums|PoOrderPayInfo" application
rg -n "TRANSTYPE_PAYMENT_RECEIPT|TRANSTYPE_PATMENT_ADD|TRANSTYPE_PAYMENT_RETURN|TRANSTYPE_PAYMENT_YSK" application/KzData/Enums/TransTypeEnums.php
rg -n "baitiao|Baitiao|Repayment|SCM_REPAYMENT_ORDER" application/controllers application/Services application/service

改动风险和回归清单

  • 在线支付采购:创建、支付成功、重复回调、超时、关闭退款。
  • 线下挂账采购:审核、入账、关闭。
  • 销售收款:收款单、账户流水、对账/核销。
  • 白条还款:还款单、支付回调、额度变化。
  • 报表:供应商往来账、客户往来账、付款/收款报表。