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
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
package com.ruoyi.order.tools.response.ecommerce.profitsharing;
 
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.order.tools.response.AbstractResponse;
import lombok.Data;
import lombok.EqualsAndHashCode;
 
/**
 * <pre>
 * 微信订单支付成功后,由电商平台发起分账请求,将结算后的资金分给分账接收方。
 * 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/profitsharing/chapter3_1.shtml
 * 状态码    错误码    描述    解决方案
 * 500    SYSTEM_ERROR    系统错误    系统异常,请使用相同参数稍后重新调用
 * 400    PARAM_ERROR    订单号格式不正确    请使用正确的参数重新调用
 * 400    INVALID_REQUEST    非分账订单不支持分账    请根据返回的错误信息确认违反的业务规则
 * 429    FREQUENCY_LIMITED    对同笔订单分账频率过高    请降低频率后重试
 * 403    RULE_LIMIT    分账金额超出最大分账比例    分账金额超出最大分账比例
 * 403    NO_AUTH    商户无权限    请开通商户号分账权限
 * </pre>
 */
@Data
@EqualsAndHashCode
@JsonIgnoreProperties()
public class ProfitSharingApplyResponse extends AbstractResponse {
    /**
     * <pre>
     * 字段名:二级商户号
     * 变量名:sub_mchid
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  分账出资的电商平台二级商户,填写微信支付分配的商户号。
     *  示例值:1900000109
     * </pre>
     */
    @JsonProperty(value = "sub_mchid")
    private String subMchid;
 
    /**
     * <pre>
     * 字段名:微信订单号
     * 变量名:transaction_id
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  微信支付订单号。
     *  示例值: 4208450740201411110007820472
     * </pre>
     */
    @JsonProperty(value = "transaction_id")
    private String transactionId;
 
    /**
     * <pre>
     * 字段名:商户分账单号
     * 变量名:out_order_no
     * 是否必填:是
     * 类型:string[1,64]
     * 描述:
     *  商户系统内部的分账单号,在商户系统内部唯一(单次分账、多次分账、完结分账应使用不同的商户分账单号),同一分账单号多次请求等同一次。
     *  示例值:P20150806125346
     * </pre>
     */
    @JsonProperty(value = "out_order_no")
    private String outOrderNo;
 
    /**
     * <pre>
     * 字段名:微信分账单号
     * 变量名:order_id
     * 是否必填:是
     * 类型:string[1,64]
     * 描述:
     *  微信分账单号,微信系统返回的唯一标识。
     *  示例值: 6754760740201411110007865434
     * </pre>
     */
    @JsonProperty(value = "order_id")
    private String orderId;
 
    /**
     * <pre>
     * 字段名:分账单状态
     * 变量名:status
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  分账单状态,枚举值:
     * PROCESSING:处理中
     * FINISHED:处理完成
     *  示例值: FINISHED
     * </pre>
     */
    @JsonProperty(value = "status")
    private String status;
 
    /**
     * <pre>
     * 字段名:分账接收方列表
     * 变量名:receivers
     * 是否必填:是
     * 类型:array
     * 描述:
     *  分账接收方列表
     * </pre>
     */
    @JsonProperty(value = "status")
    private Receivers receivers;
 
    @EqualsAndHashCode
    @Data
    @JsonIgnoreProperties()
    public static class Receivers {
        /**
         * <pre>
         * 字段名:分账金额
         * 变量名:amount
         * 是否必填:是
         * 类型:int
         * 描述:
         *  分账金额,单位为分,只能为整数,不能超过原订单支付金额及最大分账比例金额。
         *  示例值:10
         * </pre>
         */
        @JsonProperty(value = "amount")
        private Integer amount;
 
        /**
         * <pre>
         * 字段名:分账描述
         * 变量名:description
         * 是否必填:是
         * 类型:string[1,80]
         * 描述:
         *  分账的原因描述,将体现在资金账单和分账账单中。
         *  示例值:分帐1900000110
         * </pre>
         */
        @JsonProperty(value = "description")
        private String description;
 
        /**
         * <pre>
         * 字段名:分账失败原因
         * 变量名:fail_reason
         * 是否必填:否
         * 类型:string[1,32]
         * 描述:
         *  分账失败原因,当分账结果result为CLOSED(已关闭)时,返回该字段
         * 枚举值:
         * 1、ACCOUNT_ABNORMAL : 分账接收账户异常
         * 2、NO_RELATION : 分账关系已解除
         * 3、RECEIVER_HIGH_RISK : 高风险接收方
         * 4、RECEIVER_REAL_NAME_NOT_VERIFIED : 接收方未实名
         * 5、NO_AUTH : 分账权限已解除
         * 6、RECEIVER_RECEIPT_LIMIT : 接收方已达收款限额
         * 7、PAYER_ACCOUNT_ABNORMAL : 分出方账户异常
         *  示例值:NO_RELATION
         * </pre>
         */
        @JsonProperty(value = "fail_reason")
        private String failReason;
 
        /**
         * <pre>
         * 字段名:分账明细单号
         * 变量名:detail_id
         * 是否必填:是
         * 类型:string[1,64]
         * 描述:
         *  微信分账明细单号,每笔分账业务执行的明细单号,可与资金账单对账使用
         *  示例值:36011111111111111111111
         * </pre>
         */
        @JsonProperty(value = "detail_id")
        private String detailId;
 
        /**
         * <pre>
         * 字段名:完成时间
         * 变量名:finish_time
         * 是否必填:是
         * 类型:string[1,64]
         * 描述:
         *  分账完成时间,遵循RFC3339标准格式,格式为
         * yyyy-MM-DDTHH:mm:ss.sss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss.sss表示时分秒毫秒,
         * TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35:120+08:00表示北京时间2015年05月20日13点29分35秒。
         *  示例值:2015-05-20T13:29:35.120+0
         * </pre>
         */
        @JsonProperty(value = "finish_time")
        private String finishTime;
 
        /**
         * <pre>
         * 字段名:分账接收方账号
         * 变量名:receiver_account
         * 是否必填:是
         * 类型:string[1,64]
         * 描述:
         *  分账接收方账号:
         * 类型是MERCHANT_ID时,是商户号(mch_id或者sub_mch_id)
         * 类型是PERSONAL_OPENID时,是个人openid,
         *  示例值:1900000109
         * </pre>
         */
        @JsonProperty(value = "receiver_account")
        private String receiverAccount;
 
        /**
         * <pre>
         * 字段名:分账接收商户号
         * 变量名:receiver_mchid
         * 是否必填:是
         * 类型:string[1,32]
         * 描述:
         *  仅分账接收方类型为MERCHANT_ID时,填写微信支付分配的商户号
         *  示例值:1900000110
         * </pre>
         */
        @JsonProperty(value = "receiver_mchid")
        private String receiverMchid;
 
        /**
         * <pre>
         * 字段名:分账结果
         * 变量名:result
         * 是否必填:是
         * 类型:string[1,32]
         * 描述:
         *  枚举值:
         * PENDING:待分账
         * SUCCESS:分账成功
         * CLOSED:已关闭
         *  示例值:SUCCESS
         * </pre>
         */
        @JsonProperty(value = "result")
        private String result;
 
        /**
         * <pre>
         * 字段名:分账接收方类型
         * 变量名:type
         * 是否必填:是
         * 类型:string[1,32]
         * 描述:
         *  枚举值:
         * MERCHANT_ID:商户号(mch_id或者sub_mch_id)
         * PERSONAL_OPENID:个人openid(由服务商的APPID转换得到)
         * PERSONAL_SUB_OPENID:个人sub_openid(由品牌主的APPID转换得到)
         *  示例值:MERCHANT_ID
         * </pre>
         */
        @JsonProperty(value = "type")
        private String type;
 
    }
 
}