生产对账操作
支付对账按渠道账户和账期执行,账期使用渠道账户配置的时区。系统分别处理交易账单、账户资金账单和银行到账账单;三类事实不能互相替代。
账单来源与支持边界
| 渠道 | trade | fund | 原始证据 |
|---|---|---|---|
| 微信支付 | v3 tradebill,请求 ALL | v3 fundflowbill,默认 BASIC 账户 | 下载地址、SHA1、商户响应验签、原始 CSV |
| 支付宝 | alipay.data.dataservice.bill.downloadurl.query trade | 同接口 signcustomer | 官方下载地址、API 响应签名、原始 ZIP/CSV |
| 云闪付/银联 | 全渠道文件接口 txnType=76,解析 ZM/ZME | 全渠道交易文件不等于独立余额资金账单 | 银联响应验签、Base64/压缩包、ZM/ZME 原文件 |
下载、导入和解析失败会保留原件(若渠道已返回原件)并标记 rejected,不能降级为空账单。waiting / no_bill 表示渠道尚未提供文件,不是零交易;temporary 失败会按任务策略重试,permanent / integrity / format 需要人工处理。
沙箱账单和标准人工导入用于演示或补录,来源单独记录。只有生产渠道下载并通过完整性、商户身份、账期、币种、重复流水和汇总校验的账单,才可作为生产调账依据。
自动流程
- 系统为每个启用渠道账户按
trade/fund能力创建持久账期;账期覆盖扫描会补建缺失日期。 - 下载任务取得原始文件并写入私有文件存储。文件 SHA-256、渠道摘要、文件名、大小、解析器版本和标准化行号均可追溯。
- 解析器使用整数最小货币单位。金额、商户号、币种、账期、行数和渠道汇总不一致时拒绝发布。
- 发布账单版本后创建可恢复的核对运行,运行冻结本地事实快照、案件版本和资金余额快照。
- 支付/退款对账按商户订单号、渠道流水号及退款号匹配;多个支付应用可共享渠道账户,应用归属只从服务端订单事实派生。
- 失败账期按渠道出账窗口、指数退避和任务最大尝试次数处理。补偿任务只能调用原查单/退款查询链路,不直接修改账单证据。
对账运行完成后,系统将差异写入案件并保留发现、变化、解除、重新打开和人工处置事件。账单重新核对生成新运行,不覆盖旧运行快照。
银行到账核验
银行流水以 type=settlement、direction=in 导入;渠道结算事实以 type=settlement、direction=out 产生。财务人员在账单版本通过校验后创建到账分配:一笔到账可分配多个渠道结算,一笔渠道结算也可拆分到多个到账。
系统锁定账期和明细,使用整数金额校验两端剩余金额;同一到账/结算对重复提交必须使用相同金额。只有显式分配才会建立到账事实,相同金额或参考号不会自动匹配。未分配部分继续生成差异案件。
已发生分配的账单版本不能被新的账单静默替换。更正版必须经过替代版本与银行分配保护;需要调整时通过新的差异案件和审批记录处理。
差异和调账
差异类型包括本地单边、渠道单边、金额、状态、归属、汇总和余额差异。渠道单边、余额差异和未知归属必须先调查或挂账;系统不会因为金额相等自动增加商户可用余额。
人工调账必须引用生产渠道下载账单、差异案件当前版本和原始证据;申请人与审批人必须分离,执行时以双分录凭证原子写入。冲正通过关联原凭证的冲正审批完成。平台手续费与渠道资金账单是不同事实,不能把平台手续费分录直接当作渠道费用。
浏览器操作入口
/payment/recon:账期、账单版本、原件、标准明细、核对运行和差异案件。/payment/recon的银行到账分配:选择已校验银行账单和渠道结算,录入一笔或多笔分配金额后提交。- 账单原件下载会记录操作审计;文件存储必须为私有策略。
本文描述代码中的生产能力边界;未包含真实商户凭据联调结果,也不把沙箱或示例数据视为生产验证。