From f00a71965a435e5de2f9e5ee6e1a989f46a7033e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charon-=E5=BC=A0=E5=90=8C=E5=AD=A6?= <38038850+xgl6@users.noreply.github.com> Date: Wed, 24 Dec 2025 15:47:54 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E4=BF=AE=E6=94=B9=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=8C=BB=E4=BF=9D=E6=94=AF=E4=BB=98=E6=A8=A1=E5=9D=97=E7=9A=84?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E6=80=A7=E9=97=AE=E9=A2=98=EF=BC=8C=E4=B8=BB?= =?UTF-8?q?=E8=A6=81=E6=B6=89=E5=8F=8A=E5=AD=97=E6=AE=B5=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E6=A0=87=E5=87=86=E5=8C=96=E3=80=81=E6=95=B0=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=B0=83=E6=95=B4=E5=92=8C=20API=20=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E7=AD=BE=E5=90=8D=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wxpay/bean/mipay/MedInsOrdersRequest.java | 49 +++++++++++++------ .../wxpay/bean/mipay/MedInsOrdersResult.java | 26 +++++----- .../bean/mipay/MedInsRefundNotifyRequest.java | 10 ---- .../wxpay/service/MiPayService.java | 3 +- .../wxpay/service/impl/MiPayServiceImpl.java | 4 +- .../service/impl/MiPayServiceImplTest.java | 3 +- 6 files changed, 51 insertions(+), 44 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersRequest.java index 1819b328c..b651100a5 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersRequest.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersRequest.java @@ -12,6 +12,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; /** * 医保自费混合收款下单请求 @@ -25,6 +26,7 @@ import lombok.NoArgsConstructor; @Builder(builderMethodName = "newBuilder") @NoArgsConstructor @AllArgsConstructor +@Accessors(chain = true) public class MedInsOrdersRequest { /** @@ -282,72 +284,72 @@ public class MedInsOrdersRequest { * 字段名:总金额 * 变量名:total_fee * 必填:否 - * 类型:long + * 类型:Integer * 描述:总金额 * */ @SerializedName("total_fee") - public Long totalFee; + public Integer totalFee; /** *
    * 字段名:医保统筹基金支付金额
    * 变量名:med_ins_gov_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:医保统筹基金支付金额
    * 
*/ @SerializedName("med_ins_gov_fee") - public Long medInsGovFee; + public Integer medInsGovFee; /** *
    * 字段名:医保个人账户支付金额
    * 变量名:med_ins_self_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:医保个人账户支付金额
    * 
*/ @SerializedName("med_ins_self_fee") - public Long medInsSelfFee; + public Integer medInsSelfFee; /** *
    * 字段名:医保其他基金支付金额
    * 变量名:med_ins_other_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:医保其他基金支付金额
    * 
*/ @SerializedName("med_ins_other_fee") - public Long medInsOtherFee; + public Integer medInsOtherFee; /** *
    * 字段名:医保现金支付金额
    * 变量名:med_ins_cash_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:医保现金支付金额
    * 
*/ @SerializedName("med_ins_cash_fee") - public Long medInsCashFee; + public Integer medInsCashFee; /** *
    * 字段名:微信支付现金支付金额
    * 变量名:wechat_pay_cash_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:微信支付现金支付金额
    * 
*/ @SerializedName("wechat_pay_cash_fee") - public Long wechatPayCashFee; + public Integer wechatPayCashFee; /** *
@@ -462,6 +464,11 @@ public class MedInsOrdersRequest {
    * 支付人身份信息
    * 
*/ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Accessors(chain = true) public static class PersonIdentification { /** *
@@ -507,18 +514,23 @@ public class MedInsOrdersRequest {
    * 现金增加明细实体
    * 
*/ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Accessors(chain = true) public static class CashAddEntity { /** *
      * 字段名:现金增加金额
      * 变量名:cash_add_fee
      * 必填:是
-     * 类型:long
+     * 类型:Integer
      * 描述:现金增加金额
      * 
*/ @SerializedName("cash_add_fee") - public Long cashAddFee; + public Integer cashAddFee; /** *
@@ -538,18 +550,23 @@ public class MedInsOrdersRequest {
    * 现金减少明细实体
    * 
*/ + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Accessors(chain = true) public static class CashReduceEntity { /** *
      * 字段名:现金减少金额
      * 变量名:cash_reduce_fee
      * 必填:是
-     * 类型:long
+     * 类型:Integer
      * 描述:现金减少金额
      * 
*/ @SerializedName("cash_reduce_fee") - public Long cashReduceFee; + public Integer cashReduceFee; /** *
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersResult.java
index 4fc68e279..9a119d872 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersResult.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersResult.java
@@ -65,7 +65,7 @@ public class MedInsOrdersResult {
    * 
*/ @SerializedName("med_ins_pay_status") - public MedInsPayStatusEnum medInsPayStatusEnum; + public MedInsPayStatusEnum medInsPayStatus; /** *
@@ -320,72 +320,72 @@ public class MedInsOrdersResult {
    * 字段名:总金额
    * 变量名:total_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:总金额
    * 
*/ @SerializedName("total_fee") - public Long totalFee; + public Integer totalFee; /** *
    * 字段名:医保统筹基金支付金额
    * 变量名:med_ins_gov_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:医保统筹基金支付金额
    * 
*/ @SerializedName("med_ins_gov_fee") - public Long medInsGovFee; + public Integer medInsGovFee; /** *
    * 字段名:医保个人账户支付金额
    * 变量名:med_ins_self_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:医保个人账户支付金额
    * 
*/ @SerializedName("med_ins_self_fee") - public Long medInsSelfFee; + public Integer medInsSelfFee; /** *
    * 字段名:医保其他基金支付金额
    * 变量名:med_ins_other_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:医保其他基金支付金额
    * 
*/ @SerializedName("med_ins_other_fee") - public Long medInsOtherFee; + public Integer medInsOtherFee; /** *
    * 字段名:医保现金支付金额
    * 变量名:med_ins_cash_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:医保现金支付金额
    * 
*/ @SerializedName("med_ins_cash_fee") - public Long medInsCashFee; + public Integer medInsCashFee; /** *
    * 字段名:微信支付现金支付金额
    * 变量名:wechat_pay_cash_fee
    * 必填:否
-   * 类型:long
+   * 类型:Integer
    * 描述:微信支付现金支付金额
    * 
*/ @SerializedName("wechat_pay_cash_fee") - public Long wechatPayCashFee; + public Integer wechatPayCashFee; /** *
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsRefundNotifyRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsRefundNotifyRequest.java
index b6e15a364..cb935b52c 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsRefundNotifyRequest.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsRefundNotifyRequest.java
@@ -20,16 +20,6 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 public class MedInsRefundNotifyRequest {
 
-  /**
-   * 
-   * 字段名:医保自费混合订单号
-   * 必填:是
-   * 类型:string(32)
-   * 描述:医保自费混合订单号
-   * 
- */ - private String mixTradeNo; - /** *
    * 字段名:医疗机构的商户号
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/MiPayService.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/MiPayService.java
index 83b75ad40..5e2f678c1 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/MiPayService.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/MiPayService.java
@@ -87,8 +87,9 @@ public interface MiPayService {
    * 
* * @param request 医保退款通知请求参数 + * @param mixTradeNo 【医保自费混合订单号】 医保自费混合订单号 * @throws WxPayException the wx pay exception */ - void medInsRefundNotify(MedInsRefundNotifyRequest request) throws WxPayException; + void medInsRefundNotify(MedInsRefundNotifyRequest request, String mixTradeNo) throws WxPayException; } diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/MiPayServiceImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/MiPayServiceImpl.java index 3063d7731..769b789fa 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/MiPayServiceImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/MiPayServiceImpl.java @@ -59,8 +59,8 @@ public class MiPayServiceImpl implements MiPayService { } @Override - public void medInsRefundNotify(MedInsRefundNotifyRequest request) throws WxPayException { - String url = String.format("%s/v3/med-ins/refunds/notify?mix_trade_no=%s", this.payService.getPayBaseUrl(), request.getMixTradeNo()); + public void medInsRefundNotify(MedInsRefundNotifyRequest request, String mixTradeNo) throws WxPayException { + String url = String.format("%s/v3/med-ins/refunds/notify?mix_trade_no=%s", this.payService.getPayBaseUrl(), mixTradeNo); this.payService.postV3(url, GSON.toJson(request)); } diff --git a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/MiPayServiceImplTest.java b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/MiPayServiceImplTest.java index 23c3c5681..095d355bd 100644 --- a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/MiPayServiceImplTest.java +++ b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/MiPayServiceImplTest.java @@ -131,13 +131,12 @@ public class MiPayServiceImplTest { // 解析请求参数 MedInsRefundNotifyRequest request = GSON.fromJson(requestParamStr, MedInsRefundNotifyRequest.class); - request.setMixTradeNo(mixTradeNo); MiPayService miPayService = wxPayService.getMiPayService(); try { // 调用医保退款通知方法,预期会失败,因为是模拟数据 - miPayService.medInsRefundNotify(request); + miPayService.medInsRefundNotify(request,mixTradeNo); log.info("医保退款通知调用成功"); } catch (WxPayException e) { // 预期会抛出异常,因为是模拟数据