news 2026/7/23 20:23:30

支付单、业务单与退款单三表对齐实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
支付单、业务单与退款单三表对齐实战指南

支付单、业务单、退款单:一次订场退款里的三表对齐

背景

「快约球」订场链路里,用户支付成功后会同时存在:

概念表 / 字段职责
业务订场单venue_bookingspay_status/booking_status场次是否确认、是否取消
支付单payment_ordersstatus与微信商户单号、金额、用户绑定
退款流水payment_refundsout_refund_no、金额、微信退款号、来源

早期取消订场只改业务表,并返回mock_refunded/wechat_pending占位——资金侧没有真实退款,后台也没有按会员聚合的订单视图。这在演示可以,在对账不行。

目标

  1. 用户取消与后台退款走同一条PaymentService.refundPaidOrder
  2. 已支付订场退款后:支付单refunded,业务单取消并释放slot_offer
  3. Admin 能按userId列出该会员全部支付单,并对paid发起退款。
  4. 微信未就绪且开启 mock 时,明确记mock,不假装已打到微信。

状态机(支付单)

pending → paid → refunding → refunded ↘ closed / failed(下单失败或关单)

说明:

  • refunding:已向微信发起或本地进入退款流程。
  • 微信返回SUCCESS:落payment_refunds.status=success,订单refunded,再执行业务冲正。
  • 微信返回PROCESSING:退款流水记processing业务上仍可先释放场地(避免档期继续被占),资金到账靠微信侧异步完成;产品文案不要写「秒到账」。

关键实现要点

1. 退款入口统一

Admin: POST /api/v1/admin/orders/{id}/refund User cancel (已支付订场): refundVenueBookingIfPaid(bookingId) ↓ PaymentService.refundPaidOrder(outTradeNo, reason, source) ↓ WeChatPayV3Client.createRefund(...) 或 mock ↓ applyBizAfterRefund → venueDirectBookingService.applyRefundCancel(bookingId)

source区分admin/user_cancel,方便以后审计。

2. 三表写入顺序

建议顺序:

  1. 插入payment_refunds(pending)
  2. 支付单paid → refunding
  3. 调微信(或 mock)
  4. 更新退款流水 + 支付单refunded
  5. 业务冲正(订场取消 + 释放时段)

微信调用失败时:退款流水failed,支付单回退到paid,避免卡在refunding无法重试。

3. 按会员查单

Admin 列表增加userId条件,并对users.username / nickname做关键词检索。
业务类型包含:player_membershipteam_vipvenue_booking

这比单独再做一张「会员订单宽表」更便宜:支付域本来就有user_id

4. 会员 / VIP 退款的产品选择

订场退款会冲正业务;会员与 VIP只退支付单,不自动撤销权益
原因:权益回收涉及到期日、叠加开通、人工赠送,自动扣回容易误伤。钱和权分离,交给运营。

接口与表(便于对照)

  • Flyway:V60__payment_refunds.sql(另有启动兜底PaymentRefundsTableMigration
  • 微信:POST /v3/refund/domestic/refunds
  • 支付单扩展状态:refunding/refunded

小结

建议
只改业务表、资金占位用户取消与后台退款必须共用履约
退款失败卡在 refunding失败回退paid,允许重试
PROCESSING 当失败可先释放库存,文案写清「处理中」
会员退款自动降级先退款,权益回收单独策略

远程库 + 微信退款的系统里,状态对齐比多做一个按钮重要。先让三张表能互相解释,再谈分账与对账报表。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/23 20:22:02

二手机床合同避坑:付款方式、验收标准与售后条款设计

在二手机床交易中,合同是保障买卖双方权益的核心文件。然而,由于设备状况复杂、信息不对称,合同条款若设计不当,极易引发纠纷。本文从法律和实操角度,解析付款方式、验收标准与售后条款的关键设计要点,并提…

作者头像 李华
网站建设 2026/7/23 20:17:52

AI Agent 面试题 609:RAG系统中的检索召回率和精确率如何平衡?

🔥 AI Agent 面试题 609:RAG系统中的检索召回率和精确率如何平衡?摘要:本文深入解析了「RAG系统中的检索召回率和精确率如何平衡?」这一 AI Agent 领域的核心面试题。文章从 检索排序优化 的基本概念出发,系…

作者头像 李华
网站建设 2026/7/23 20:17:52

计算机毕业设计之在线图书商城系统

本毕业设计的内容是设计并且实现一个基于JSP技术的在线图书商城系统。它是在Windows下,以MYSQL为数据库开发平台,Tomcat网络信息服务作为应用服务器。在线图书商城系统的功能已基本实现,主要包括用户、图书信息、留言交流、订单信息等。论文主…

作者头像 李华
网站建设 2026/7/23 20:17:11

OpenClaw本地AI助手部署与配置指南

1. OpenClaw本地AI助手部署全流程解析OpenClaw作为一款新兴的本地AI助手框架,正在技术社区引发广泛关注。不同于云端AI服务,本地部署方案让开发者能够完全掌控数据流向,特别适合需要处理敏感信息或追求响应速度的应用场景。我在实际部署过程中…

作者头像 李华
网站建设 2026/7/23 20:17:00

书匠策AI:智能写作工具如何革新论文创作流程

1. 探秘书匠策AI:论文写作的智能革命去年帮导师审阅研究生论文时,一个现象让我印象深刻:超过60%的初稿都存在文献综述结构混乱、方法论表述不清的问题。这正是"书匠策AI"这类智能写作工具要解决的核心痛点——它不像传统写作软件只…

作者头像 李华