Skip to content

模拟支付、退款 ​

这篇解决什么 ​

不接支付宝、微信,也能把下单、支付、退款、业务回写跑通。读完能在应用里打开 mock 渠道,用接入示例走完一单。

默认端口 48080,管理端前缀 /admin-api。先完成 支付功能设计。真渠道见后面的支付宝、微信篇。

示意图:模拟渠道下单、查单、退款都直接成功。没有渠道回调。

从哪改 ​

名称说明仓库路径
模块模拟渠道实现ruoyi-office/yudao-module-pay/
渠道码mockPayChannelEnum.MOCK
客户端配置类是空的 NonePayClientConfig.../client/impl/mock/MockPayClient.java
示例单表 pay_demo_order,应用 key demoPayDemoOrderServiceImpl
接口创建、支付回写、退款@RequestMapping("/pay/demo-order")
页面支付&退款案例views/pay/demo/order/index.vue
收银台隐藏路由,带 payOrderId/pay/cashier,PayCashier

菜单:接入示例 2161,支付&退款案例 2549,路由 /pay/demo/order。

在应用 demo 下增加渠道「模拟支付」。配置不用填密钥。然后发起示例订单,点「支付」进收银台,选 mock。

接入示例订单

本系统截图:支付管理 → 接入示例 → 支付&退款案例。先建单,再进收银台选模拟支付。

MockPayClient 下单立刻返回成功,渠道单号形如 MOCK-P-{outTradeNo},退款 MOCK-R-{outRefundNo}。解析回调会抛「无支付回调 / 无退款回调」,这是预期,不要去配渠道通知地址。

业务回写仍走 PayNotifyJob:支付模块认为单已成功后,POST 应用上的 orderNotifyUrl。示例接口是 POST /pay/demo-order/update-paid,@PermitAll,内部再校验支付单。退款是 POST /pay/demo-order/update-refunded。

先用模拟把闭环跑完

业务接入支付时,先把 PayOrderApi.createOrder、应用回调、退款三条接上,渠道再换成支付宝或微信。不要一上来就调沙箱。

模拟渠道不支持转账。doUnifiedTransfer 尚未实现。提现案例请走真渠道,见后续转账篇。

配置与操作 ​

走 支付管理 → 接入示例 → 支付&退款案例(菜单 2549,/pay/demo/order;接入示例目录 2161)。先在应用 demo 下加渠道「模拟支付」,配置不用填密钥。再建示例单,点「支付」进收银台,选 mock。

保存后 MockPayClient 立刻成功,渠道单号形如 MOCK-P-{outTradeNo}。业务回写仍走 PayNotifyJob,打应用上的 orderNotifyUrl(示例 POST /pay/demo-order/update-paid)。解析回调会抛「无支付回调」,不用配渠道通知地址。模拟渠道不支持转账。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版