当前位置: 首页 > news >正文

对于退款/拒付这类逆向订单操作需要创建新的单号么

一、问题背景

这两天被问了这么一个问题,所以才开启了这个话题。问题如下:

支付中心一般都是由交易系统和支付系统两大系统构成,其中交易系统主要是处理跟商户或用户的请求,创建相关订单并发起支付,支付系统主要是处理跟支付通道的对接,将支付请求转给支付通道并处理响应。正常用户发起支付请求,交易系统创建交易订单,给到支付系统,支付系统创建支付单,并记录跟交易订单的关系,给到支付通道。但是如果遇到退款或者拒付的情况,想问一下,对于这种逆向订单,交易系统和支付系统还要创建新的逆向单号么

 

二、问题解决

1. 正向支付(正常支付流程)

  • 交易系统

    • 面向商户和用户,负责生成业务层面的 交易订单号(Trade Order ID),一般是平台唯一订单标识。

    • 订单状态:待支付、支付中、支付成功、支付失败。

    • 主要职责:记录交易请求、订单金额、商品、商户信息。

  • 支付系统

    • 面向支付通道(银行、Google Pay、Apple Pay、银联等)。

    • 负责生成 支付单号(Payment ID),与交易订单一一或一对多关联。

    • 订单状态:已受理、支付中、成功、失败。

    • 主要职责:处理支付路由、下发支付请求、接收通道回调、通知交易系统。

正向链路举例
用户下单 → 交易系统生成交易单 T202509090001 → 请求支付系统 → 支付系统生成支付单 P202509090001 → 调用 Google Pay / Apple Pay → 通道返回结果 → 支付系统更新支付单 → 交易系统更新交易单。


2. 逆向订单(退款 / 拒付场景)

为什么需要新的逆向单号?

  • 审计 & 幂等性:退款/拒付不是简单修改原单状态,而是一个新的资金流向,必须有独立编号。

  • 对账:正向支付与逆向交易需要分开记录,以便资金对账清晰。

  • 风控:拒付、退款可能原因复杂(欺诈、用户发起、银行撤销等),单独单号便于跟踪溯源。

  • 通道要求:支付通道(如银行、Google、Apple)通常要求每笔退款/拒付有唯一的 Refund ID/Dispute ID,不能直接复用支付单号。


3. 逆向订单在系统中的处理

  • 交易系统

    • 会生成 退款单号 / 拒付单号(Trade Refund ID)。

    • 与原始交易订单关联(例如 T202509090001-R01 表示交易单 T202509090001 的第一次退款)。

    • 状态:退款申请中、退款中、退款成功、退款失败;拒付处理中、拒付成功、拒付失败。

  • 支付系统

    • 同样需要生成 支付退款单 / 支付拒付单(Payment Refund ID / Payment Dispute ID)。

    • 与支付单绑定(例如 P202509090001-R01)。

    • 状态:受理、处理中、成功、失败。

    • 记录与支付通道(如 Google Pay API、Apple Pay API)的交互流水号(Refund Txn ID / Chargeback ID)。


4. Google Pay 的处理逻辑

  • Google Pay 本身并不直接做资金清算,而是作为 代扣渠道

  • 商户集成 Google Pay API 后,实际交易和退款要通过 网关/收单行/处理器

  • 对退款:

    • 商户系统必须生成 Refund ID 并调用收单行的退款 API;

    • Google Pay 只会作为支付授权入口,退款状态依赖收单行返回;

    • 退款单号在 交易系统和支付系统都需要单独记录,因为对账和风控都要追溯。


5. Apple Pay 的处理逻辑

  • Apple Pay 类似,它是 支付凭证(Tokenized Card)提供方,不做清算。

  • 商户发起退款时:

    • 必须生成 Refund ID,调用网关/收单行的退款接口;

    • Apple Pay 不会帮你生成退款单,商户/支付系统必须自行生成并追踪;

    • 对于拒付(chargeback),通常由发卡行触发,商户会收到异议单(Dispute/Chargeback ID),需要在支付系统和交易系统中挂载独立单号处理。


6. 设计对比总结

系统角色正向支付(订单/支付单)逆向交易(退款/拒付单)
交易系统 生成交易订单号(Trade Order ID)
记录商品/金额/商户信息
生成退款单号 / 拒付单号(Trade Refund/Dispute ID)
关联原交易单,追踪用户维度请求
支付系统 生成支付单号(Payment ID)
与交易单对应,调通道
生成退款/拒付支付单号(Payment Refund/Dispute ID)
与原支付单对应,调通道退款接口
Google Pay 提供支付授权 & Token,商户生成支付单 不生成退款单,商户需生成退款单号并调收单行退款 API
Apple Pay 提供支付 Token,商户生成支付单 不生成退款单,商户需生成退款单号并调网关/收单行退款 API

结论
无论是退款还是拒付,交易系统和支付系统都需要生成新的逆向单号,分别记录在交易层和支付层。

    • 交易系统:关注业务维度、用户/商户可见。

    • 支付系统:关注资金维度、通道可见。

    • Google Pay / Apple Pay:本身不管理逆向单,依赖商户/支付中心自行生成并与收单行交互。

 

http://www.gsyq.cn/news/1793.html

相关文章:

  • 小白如何零成本搭建一个属于自己的私人知识库
  • MathType7下载安装2025最新下载+安装教程(附安装包)
  • 【完结10章】Java大模型工程能力必修课,LangChain4j 入门到实践
  • 基于 RBF 神经网络的 PID 参数自适应整定—风力机变桨距控制
  • 故障分析:11GR DATAGRUAD环境BROKER配置Fast-Start Failover
  • 传统
  • 2025-09-10
  • DARPA AI网络挑战赛技术框架全解析:自动化漏洞挖掘与修复系统构建
  • apche 2.4 开启mod_cache_disk和mod_deflate后,磁盘上缓存的是压缩后的文件
  • 复现tensor2tensor代码时遇到的问题和相关链接
  • 再见 Cursor,Qoder 真香!这波要改写 AI 编程格局
  • 三.ubuntu22.04 使用C++部署PyTorch模型
  • alertmanager配置集群模式
  • AI 是否绑架了云原生创新?
  • Windows 7 局域网打印机共享设置
  • SPFA求负环
  • 磁盘存储器
  • 多变量的递归2-组合总和问题(每个数字可以使用多次)
  • 戴尔Precision 7865 塔式工作站|安装rocky liunx 8.10
  • ESP-IDF在vscode环境下编译速度
  • EtherCAT总线介绍及耦合器EK1100
  • centos服务器定时任务备份数据库脚本
  • 小红书全量笔记数据集(含标题、正文、标签、互动量、图片等),可用于NLP、推荐算法、大模型训练、爆款文章生成、精准营销与市场分析
  • 揭秘LedgerCTF的AES白盒挑战:逆向工程与密码学分析
  • 三万小时PB级院线级电影数据集,包含完整视频、音频和字幕多模态资源,专为视频大模型训练和多模态研究设计,适用于文生视频生成、影视剪辑、语义检索及智能内容管理
  • Mybatis
  • ECT-OS-JiuHuaShan 的终极使命是构建一个从数学到伦理皆可被绝对推理的确定性宇宙模型
  • 服务治理
  • ? #2
  • 软件开发方法与模型完全指南(从厨房到盛宴的完全指南)