Skip to content

Commit c8cdfb5

Browse files
authored
🆕 #3816 【微信支付】增加 V3 医保相关接口的完整支持
1 parent 8181645 commit c8cdfb5

File tree

17 files changed

+2166
-19
lines changed

17 files changed

+2166
-19
lines changed

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersRequest.java

Lines changed: 568 additions & 0 deletions
Large diffs are not rendered by default.

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/mipay/MedInsOrdersResult.java

Lines changed: 497 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
package com.github.binarywang.wxpay.bean.mipay;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Builder;
6+
import lombok.Data;
7+
import lombok.NoArgsConstructor;
8+
9+
/**
10+
* 医保退款通知请求
11+
* <p>
12+
* 从业机构调用该接口向微信医保后台通知医保订单的退款成功结果
13+
* 文档地址:https://pay.weixin.qq.com/doc/v3/partner/4012166534
14+
* @author xgl
15+
* @date 2025/12/20
16+
*/
17+
@Data
18+
@Builder(builderMethodName = "newBuilder")
19+
@NoArgsConstructor
20+
@AllArgsConstructor
21+
public class MedInsRefundNotifyRequest {
22+
23+
/**
24+
* <pre>
25+
* 字段名:医保自费混合订单号
26+
* 必填:是
27+
* 类型:string(32)
28+
* 描述:医保自费混合订单号
29+
* </pre>
30+
*/
31+
private String mixTradeNo;
32+
33+
/**
34+
* <pre>
35+
* 字段名:医疗机构的商户号
36+
* 变量名:sub_mchid
37+
* 必填:是
38+
* 类型:string(32)
39+
* 描述:医疗机构的商户号
40+
* </pre>
41+
*/
42+
@SerializedName("sub_mchid")
43+
private String subMchid;
44+
45+
/**
46+
* <pre>
47+
* 字段名:医保退款的总金额
48+
* 变量名:med_refund_total_fee
49+
* 必填:是
50+
* 类型:integer
51+
* 描述:单位分,医保退款的总金额。
52+
* </pre>
53+
*/
54+
@SerializedName("med_refund_total_fee")
55+
private Integer medRefundTotalFee;
56+
57+
/**
58+
* <pre>
59+
* 字段名:医保统筹退款金额
60+
* 变量名:med_refund_gov_fee
61+
* 必填:是
62+
* 类型:integer
63+
* 描述:单位分,医保统筹退款金额。
64+
* </pre>
65+
*/
66+
@SerializedName("med_refund_gov_fee")
67+
private Integer medRefundGovFee;
68+
69+
/**
70+
* <pre>
71+
* 字段名:医保个账退款金额
72+
* 变量名:med_refund_self_fee
73+
* 必填:是
74+
* 类型:integer
75+
* 描述:单位分,医保个账退款金额。
76+
* </pre>
77+
*/
78+
@SerializedName("med_refund_self_fee")
79+
private Integer medRefundSelfFee;
80+
81+
/**
82+
* <pre>
83+
* 字段名:医保其他退款金额
84+
* 变量名:med_refund_other_fee
85+
* 必填:是
86+
* 类型:integer
87+
* 描述:单位分,医保其他退款金额。
88+
* </pre>
89+
*/
90+
@SerializedName("med_refund_other_fee")
91+
private Integer medRefundOtherFee;
92+
93+
/**
94+
* <pre>
95+
* 字段名:医保退款成功时间
96+
* 变量名:refund_time
97+
* 必填:是
98+
* 类型:string(64)
99+
* 描述:遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE。
100+
* </pre>
101+
*/
102+
@SerializedName("refund_time")
103+
private String refundTime;
104+
105+
/**
106+
* <pre>
107+
* 字段名:从业机构\服务商退款单号
108+
* 变量名:out_refund_no
109+
* 必填:是
110+
* 类型:string(64)
111+
* 描述:有自费单时,从业机构\服务商应填与自费退款申请处一致的out_refund_no。否则从业机构透传医疗机构退款单号即可。
112+
* </pre>
113+
*/
114+
@SerializedName("out_refund_no")
115+
private String outRefundNo;
116+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.github.binarywang.wxpay.bean.mipay.enums;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
/**
6+
* 现金增加类型枚举
7+
* <p>
8+
* 描述医保自费混合支付中现金增加的类型
9+
*
10+
* @author xgl
11+
* @date 2025/12/20
12+
*/
13+
public enum CashAddTypeEnum {
14+
/**
15+
* 默认增加类型
16+
*/
17+
@SerializedName("DEFAULT_ADD_TYPE")
18+
DEFAULT_ADD_TYPE,
19+
/**
20+
* 运费
21+
*/
22+
@SerializedName("FREIGHT")
23+
FREIGHT,
24+
/**
25+
* 其他医疗费用
26+
*/
27+
@SerializedName("OTHER_MEDICAL_EXPENSES")
28+
OTHER_MEDICAL_EXPENSES
29+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.github.binarywang.wxpay.bean.mipay.enums;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
/**
6+
* 现金减少类型枚举
7+
* <p>
8+
* 描述医保自费混合支付中现金减少的类型
9+
*
10+
* @author xgl
11+
* @date 2025/12/20
12+
*/
13+
public enum CashReduceTypeEnum {
14+
/**
15+
* 默认减少类型
16+
*/
17+
@SerializedName("DEFAULT_REDUCE_TYPE")
18+
DEFAULT_REDUCE_TYPE,
19+
/**
20+
* 医院减免
21+
*/
22+
@SerializedName("HOSPITAL_REDUCE")
23+
HOSPITAL_REDUCE,
24+
/**
25+
* 药店折扣
26+
*/
27+
@SerializedName("PHARMACY_DISCOUNT")
28+
PHARMACY_DISCOUNT,
29+
/**
30+
* 折扣优惠
31+
*/
32+
@SerializedName("DISCOUNT")
33+
DISCOUNT,
34+
/**
35+
* 预付费抵扣
36+
*/
37+
@SerializedName("PRE_PAYMENT")
38+
PRE_PAYMENT,
39+
/**
40+
* 押金扣除
41+
*/
42+
@SerializedName("DEPOSIT_DEDUCTION")
43+
DEPOSIT_DEDUCTION
44+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.github.binarywang.wxpay.bean.mipay.enums;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
/**
6+
* 医保支付状态枚举
7+
* <p>
8+
* 描述医保自费混合支付中医保部分的支付状态
9+
*
10+
* @author xgl
11+
* @date 2025/12/20
12+
*/
13+
public enum MedInsPayStatusEnum {
14+
/**
15+
* 未知的医保支付状态
16+
*/
17+
@SerializedName("UNKNOWN_MED_INS_PAY_STATUS")
18+
UNKNOWN_MED_INS_PAY_STATUS,
19+
/**
20+
* 医保支付已创建
21+
*/
22+
@SerializedName("MED_INS_PAY_CREATED")
23+
MED_INS_PAY_CREATED,
24+
/**
25+
* 医保支付成功
26+
*/
27+
@SerializedName("MED_INS_PAY_SUCCESS")
28+
MED_INS_PAY_SUCCESS,
29+
/**
30+
* 医保支付已退款
31+
*/
32+
@SerializedName("MED_INS_PAY_REFUND")
33+
MED_INS_PAY_REFUND,
34+
/**
35+
* 医保支付失败
36+
*/
37+
@SerializedName("MED_INS_PAY_FAIL")
38+
MED_INS_PAY_FAIL,
39+
/**
40+
* 无需医保支付
41+
*/
42+
@SerializedName("NO_MED_INS_PAY")
43+
NO_MED_INS_PAY
44+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.github.binarywang.wxpay.bean.mipay.enums;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
/**
6+
* 混合支付状态枚举
7+
* <p>
8+
* 描述医保自费混合支付的整体状态
9+
*
10+
* @author xgl
11+
* @date 2025/12/20
12+
*/
13+
public enum MixPayStatusEnum {
14+
/**
15+
* 未知的混合支付状态
16+
*/
17+
@SerializedName("UNKNOWN_MIX_PAY_STATUS")
18+
UNKNOWN_MIX_PAY_STATUS,
19+
/**
20+
* 混合支付已创建
21+
*/
22+
@SerializedName("MIX_PAY_CREATED")
23+
MIX_PAY_CREATED,
24+
/**
25+
* 混合支付成功
26+
*/
27+
@SerializedName("MIX_PAY_SUCCESS")
28+
MIX_PAY_SUCCESS,
29+
/**
30+
* 混合支付已退款
31+
*/
32+
@SerializedName("MIX_PAY_REFUND")
33+
MIX_PAY_REFUND,
34+
/**
35+
* 混合支付失败
36+
*/
37+
@SerializedName("MIX_PAY_FAIL")
38+
MIX_PAY_FAIL
39+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.github.binarywang.wxpay.bean.mipay.enums;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
/**
6+
* 混合支付类型枚举
7+
* <p>
8+
* 描述医保自费混合支付的类型
9+
* 文档地址:https://pay.weixin.qq.com/doc/v3/partner/4012503131
10+
*
11+
* @author xgl
12+
* @date 2025/12/20 09:21
13+
*/
14+
public enum MixPayTypeEnum {
15+
16+
/**
17+
* 未知的混合支付类型,会被拦截。
18+
*/
19+
@SerializedName("UNKNOWN_MIX_PAY_TYPE")
20+
UNKNOWN_MIX_PAY_TYPE,
21+
22+
/**
23+
* 只向微信支付下单,没有向医保局下单。包括没有向医保局上传费用明细、预结算。
24+
*/
25+
@SerializedName("CASH_ONLY")
26+
CASH_ONLY,
27+
28+
/**
29+
* 只向医保局下单,没有向微信支付下单。如果医保局分账结果中有自费部份,但由于有减免抵扣,没有向微信支付下单,也是纯医保。
30+
*/
31+
@SerializedName("INSURANCE_ONLY")
32+
INSURANCE_ONLY,
33+
34+
/**
35+
* 向医保局下单,也向微信支付下单。如果医保预结算全部需自费,也属于混合类型。
36+
*/
37+
@SerializedName("CASH_AND_INSURANCE")
38+
CASH_AND_INSURANCE
39+
40+
41+
}

0 commit comments

Comments
 (0)