zhanglin
2023-07-20 cde69bd6e9ce00b22df3690d85ea295459e3b168
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
package com.ruoyi.order.tools.request.ecommerce.refunds;
 
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
 
/**
 * <pre>
 * 退款状态改变后,微信会把相关退款结果发送给商户。
 * 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/refunds/chapter3_3.shtml
 * </pre>
 */
@Data
@EqualsAndHashCode
@JsonIgnoreProperties()
public class RefundNotifyRequest1 {
    /**
     * <pre>
     * 字段名:电商平台商户号
     * 变量名:sp_mchid
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  微信支付分配给电商平台的商户号 
     *  示例值:1900000100 
     * </pre>
     */
    @JsonProperty(value = "sp_mchid")
    private String spMchid;
 
    /**
     * <pre>
     * 字段名:二级商户号
     * 变量名:sub_mchid
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  微信支付分配给二级商户的商户号 
     *  示例值:1900000109 
     * </pre>
     */
    @JsonProperty(value = "sub_mchid")
    private String subMchid;
 
    /**
     * <pre>
     * 字段名:商户订单号
     * 变量名:out_trade_no
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  返回的商户订单号 
     *  示例值: 1217752501201407033233368018 
     * </pre>
     */
    @JsonProperty(value = "out_trade_no")
    private String outTradeNo;
 
    /**
     * <pre>
     * 字段名:微信订单号
     * 变量名:transaction_id
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  微信支付订单号 
     *  示例值: 1217752501201407033233368018 
     * </pre>
     */
    @JsonProperty(value = "transaction_id")
    private String transactionId;
 
    /**
     * <pre>
     * 字段名:商户退款单号
     * 变量名:out_refund_no
     * 是否必填:是
     * 类型:string[1,64]
     * 描述:
     *  商户退款单号 
     *  示例值: 1217752501201407033233368018 
     * </pre>
     */
    @JsonProperty(value = "out_refund_no")
    private String outRefundNo;
 
    /**
     * <pre>
     * 字段名:微信退款单号
     * 变量名:refund_id
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  微信退款单号 
     *  示例值: 1217752501201407033233368018 
     * </pre>
     */
    @JsonProperty(value = "refund_id")
    private String refundId;
 
    /**
     * <pre>
     * 字段名:退款状态
     * 变量名:refund_status
     * 是否必填:是
     * 类型:string[1,16]
     * 描述:
     *  退款状态,枚举值: 
     *  SUCCESS:退款成功
     *  CLOSE:退款关闭 
     *  ABNORMAL:退款异常,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可前往【服务商平台—>交易中心】,手动处理此笔退款 
     *  示例值:SUCCESS 
     * </pre>
     */
    @JsonProperty(value = "refund_status")
    private String refundStatus;
 
    /**
     * <pre>
     * 字段名:退款成功时间
     * 变量名:success_time
     * 是否必填:否
     * 类型:string[1,64]
     * 描述:
     *  1、退款成功时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日13点29分35秒。
     *  2、当退款状态为退款成功时返回此参数。
     *  示例值:2018-06-08T10:34:56+08:00 
     * </pre>
     */
    @JsonProperty(value = "success_time")
    private String successTime;
 
    /**
     * <pre>
     * 字段名:退款入账账户
     * 变量名:user_received_account
     * 是否必填:是
     * 类型:string[1,64]
     * 描述:
     *  取当前退款单的退款入账方。 
     *  退回银行卡:{银行名称}{卡类型}{卡尾号} 
     *  退回支付用户零钱: 支付用户零钱
     *  退还商户: 商户基本账户、商户结算银行账户
     *  退回支付用户零钱通:支付用户零钱通 
     *  示例值:招商银行信用卡0403 
     * </pre>
     */
    @JsonProperty(value = "user_received_account")
    private String userReceivedAccount;
 
    /**
     * <pre>
     * 字段名:+金额信息
     * 变量名:amount
     * 是否必填:是
     * 类型:object
     * 描述:金额信息 
     * </pre>
     */
    @JsonProperty(value = "amount")
    private Amount amount;
 
    @EqualsAndHashCode
    @Data
    @JsonIgnoreProperties()
    public static class Amount {
        /**
         * <pre>
         * 字段名:订单金额
         * 变量名:total
         * 是否必填:是
         * 类型:int
         * 描述:
         *  订单总金额,单位为分,只能为整数,详见支付金额
         *  示例值:999 
         * </pre>
         */
        @JsonProperty(value = "total")
        private Integer total;
 
        /**
         * <pre>
         * 字段名:退款金额
         * 变量名:refund
         * 是否必填:是
         * 类型:int
         * 描述:
         *  退款金额,币种的最小单位,只能为整数,不能超过原订单支付金额,如果有使用券,后台会按比例退。 
         *  示例值:999 
         * </pre>
         */
        @JsonProperty(value = "refund")
        private Integer refund;
 
        /**
         * <pre>
         * 字段名:用户支付金额
         * 变量名:payer_total
         * 是否必填:是
         * 类型:int
         * 描述:
         *  用户实际支付金额,单位为分,只能为整数,详见支付金额
         *  示例值:999 
         * </pre>
         */
        @JsonProperty(value = "payer_total")
        private Integer payerTotal;
 
        /**
         * <pre>
         * 字段名:用户退款金额
         * 变量名:payer_refund
         * 是否必填:是
         * 类型:int
         * 描述:
         *  退款给用户的金额,不包含所有优惠券金额 
         *  示例值:999 
         * </pre>
         */
        @JsonProperty(value = "payer_refund")
        private Integer payerRefund;
 
    }
 
}