本项目已集成微信支付退款功能,当用户取消订单时,系统会自动申请微信退款。
ruoyi-catdog/src/main/java/com/ruoyi/applet/utils/WechatRefundUtil.java
applyRefund(RefundRequest request)
ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiMallOrderController.java
POST /applet/mall/order/orderCancel
ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/WechatRefundNotifyController.java
POST /no-auth/wechat/refund
确保在 application.yml
中正确配置了微信支付参数:
wechat:
enabled: true
appId: your_app_id
merchantId: your_merchant_id
privateKeyPath: path/to/your/private_key.pem
merchantSerialNumber: your_merchant_serial_number
apiV3key: your_api_v3_key
notifyUrl: https://your-domain.com/prod-api/no-auth/wechat/notify
在微信商户平台配置退款通知地址:
https://your-domain.com/prod-api/no-auth/wechat/refund
POST /applet/mall/order/orderCancel
Content-Type: application/json
{
"id": 123456,
"remark": "用户取消订单"
}
响应示例:
{
"code": 200,
"msg": "订单取消成功,退款申请已提交:退款申请成功,退款单号:REFUND_1234567890"
}
WechatPayUtil
进行签名如需支持部分退款,可以修改 applyWechatRefund
方法:
// 设置部分退款金额
amountReq.refund = partialRefundAmount.multiply(new BigDecimal(100)).longValue();
可以添加退款查询接口:
@GetMapping("/refund/query/{refundNo}")
public AjaxResult queryRefund(@PathVariable String refundNo) {
// 实现退款查询逻辑
}
可以添加退款统计功能:
@GetMapping("/refund/statistics")
public AjaxResult getRefundStatistics() {
// 实现退款统计逻辑
}
A1: 检查以下几点:
A2: 检查以下几点:
A3: 退款历史记录在 oms_wechat_payment_history
表中,可以通过以下方式查询:
如有问题,请联系开发团队或查看相关日志文件。