提交 9c21d0d8 authored 作者: hzh's avatar hzh

部分功能实现

上级 21c4dadf
......@@ -3,6 +3,8 @@ package org.dromara.common.pay.domain;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* @author hzh
* @date 2024-12-31
......@@ -11,4 +13,80 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class JsapiRefundNotifyModel {
/**
* 【商户号】商户下单时传入的商户号。
*/
private String mchid;
/**
* 【商户订单号】 商户下单时传入的商户系统内部订单号。
*/
private String out_trade_no;
/**
* 【微信支付订单号】 微信支付侧订单的唯一标识。
*/
private String transaction_id;
/**
* 【商户退款单号】 商户申请退款时传的商户系统内部退款单号。
*/
private String out_refund_no;
/**
* 【微信支付退款单号】 申请退款受理成功时,该笔退款单在微信支付侧生成的唯一标识。
*/
private String refund_id;
/**
* 【退款状态】 退款状态:
* SUCCESS—退款成功
* CLOSED—退款关闭。
* PROCESSING—退款处理中
* ABNORMAL—退款异常,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可前往商户平台-交易中心,手动处理此笔退款,可参考: 退款异常的处理,或者通过发起异常退款接口进行处理。
*/
private String refund_status;
/**
* 【退款成功时间】 退款成功的时间。
*/
private String success_time;
/**
* 【退款入账账户】
*/
private String user_received_account;
/**
* 【退款金额】 退款总金额,单位为元。
*/
private Amount amount;
@Data
@Accessors(chain = true)
public static class Amount implements Serializable {
/**
* 订单总金额,单位为分。
*/
private Integer total;
/**
* 【退款金额】 退款标价金额,单位为分,可以做部分退款
*/
private Integer refund;
/**
* 用户支付金额,单位为分。
*/
private Integer payer_total;
/**
* 【用户退款金额】 退款给用户的金额,单位为分,不包含所有优惠券金额
*/
private Integer payer_refund;
}
}
......@@ -83,5 +83,5 @@ public interface IWxPayService {
* @param outRefundNo 退款单号
* @return 退款结果
*/
JsapiRefundNotifyModel refundQuery(String outRefundNo);
org.dromara.common.pay.domain.RefundModel refundQuery(String outRefundNo);
}
......@@ -287,7 +287,7 @@ public class WxPayServiceImpl implements IWxPayService {
}
@Override
public JsapiRefundNotifyModel refundQuery(String outRefundNo) {
public org.dromara.common.pay.domain.RefundModel refundQuery(String outRefundNo) {
try {
log.info("退款订单查询,退款单号:{}", outRefundNo);
IJPayHttpResponse response = WxPayApi.v3(
......@@ -307,7 +307,7 @@ public class WxPayServiceImpl implements IWxPayService {
//验签成功
if (verifySignature) {
JSONObject result = JSONUtil.parseObj(response.getBody());
return JSON.parseObject(JSON.toJSONString(result), JsapiRefundNotifyModel.class);
return JSON.parseObject(JSON.toJSONString(result), org.dromara.common.pay.domain.RefundModel.class);
}
}
throw new RuntimeException("退款单:" + outRefundNo + "查询失败!");
......
package org.dromara.order.service;
import org.dromara.common.pay.domain.JsapiNotifyModel;
import org.dromara.common.pay.domain.JsapiRefundNotifyModel;
/**
* @author hzh
......@@ -38,6 +37,6 @@ public interface IOrderPayService {
* @param outRefundNo 商户申请退款时传入的商户系统内部退款单号。
* @return 退款结果
*/
JsapiRefundNotifyModel refundQuery(String outRefundNo);
org.dromara.common.pay.domain.RefundModel refundQuery(String outRefundNo);
}
......@@ -102,7 +102,7 @@ public class WeChatOrderPayServiceImpl implements IOrderPayService {
* @param model 退款回调参数
*/
private void dealRefundOrder(JsapiRefundNotifyModel model) {
//TODO 处理退款订单
}
@GlobalTransactional(rollbackFor = Exception.class)
......@@ -116,11 +116,8 @@ public class WeChatOrderPayServiceImpl implements IOrderPayService {
@GlobalTransactional(rollbackFor = Exception.class)
@Override
public JsapiRefundNotifyModel refundQuery(String outRefundNo) {
JsapiRefundNotifyModel model = wxPayService.refundQuery(outRefundNo);
//处理退款订单
dealRefundOrder(model);
return model;
public org.dromara.common.pay.domain.RefundModel refundQuery(String outRefundNo) {
return wxPayService.refundQuery(outRefundNo);
}
private void dealOrder(JsapiNotifyModel model) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论