zhanglin
2023-07-23 a7359ca2d8337b0796e36f3a3722790647bd7c62
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
package com.ruoyi.order.tools.request.ecommerce.profitsharing;
 
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
 
 
/**
 * <pre>
 * 微信订单支付成功后,由电商平台发起分账请求,将结算后的资金分给分账接收方。
 * 文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/profitsharing/chapter3_1.shtml
 * </pre>
 */
@Data
@EqualsAndHashCode
@JsonIgnoreProperties()
public class ProfitSharingApplyRequest {
    /**
     * <pre>
     * 字段名:公众账号ID
     * 变量名:appid
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  body 电商平台的appid(公众号APPID或者小程序APPID)。 
     *  示例值:wx8888888888888888 
     * </pre>
     */
    @JsonProperty(value = "appid")
    private String appid;
 
    /**
     * <pre>
     * 字段名:二级商户号
     * 变量名:sub_mchid
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  body 分账出资的电商平台二级商户,填写微信支付分配的商户号。 
     *  示例值:1900000109 
     * </pre>
     */
    @JsonProperty(value = "sub_mchid")
    private String subMchid;
 
    /**
     * <pre>
     * 字段名:微信订单号
     * 变量名:transaction_id
     * 是否必填:是
     * 类型:string[1,32]
     * 描述:
     *  body 微信支付订单号。 
     *  示例值: 4208450740201411110007820472 
     * </pre>
     */
    @JsonProperty(value = "transaction_id")
    private String transactionId;
 
    /**
     * <pre>
     * 字段名:商户分账单号
     * 变量名:out_order_no
     * 是否必填:是
     * 类型:string[1,64]
     * 描述:
     *  body 商户系统内部的分账单号,在商户系统内部唯一(单次分账、多次分账、完结分账应使用不同的商户分账单号),同一分账单号多次请求等同一次。 
     *  示例值:P20150806125346 
     * </pre>
     */
    @JsonProperty(value = "out_order_no")
    private String outOrderNo;
 
    /**
     * <pre>
     * 字段名:+分账接收方列表
     * 变量名:receivers
     * 是否必填:是
     * 类型:array
     * 描述:body 分账接收方列表,支持设置出资商户作为分账接收方,单次分账最多可有5个分账接收方 
     * </pre>
     */
    @JsonProperty(value = "receivers")
    private List<Receivers> receivers;
 
    /**
     * <pre>
     * 字段名:是否分账完成
     * 变量名:finish
     * 是否必填:是
     * 类型:boolean
     * 描述:
     *  body 是否完成分账
     *  1、如果为true,该笔订单剩余未分账的金额会解冻回电商平台二级商户;
     *  2、如果为false,该笔订单剩余未分账的金额不会解冻回电商平台二级商户,可以对该笔订单再次进行分账。
     *  示例值:true 
     * </pre>
     */
    @JsonProperty(value = "finish")
    private Boolean finish;
 
    @EqualsAndHashCode
    @Data
    @JsonIgnoreProperties()
    public static class Receivers {
        /**
         * <pre>
         * 字段名:分账接收方类型
         * 变量名:type
         * 是否必填:是
         * 类型:string[1,32]
         * 描述:
         *  分账接收方类型,枚举值: 
         *  MERCHANT_ID:商户
         *  PERSONAL_OPENID:个人
         *  示例值:MERCHANT_ID 
         * </pre>
         */
        @JsonProperty(value = "type")
        private String type;
 
        /**
         * <pre>
         * 字段名:分账接收方账号
         * 变量名:receiver_account
         * 是否必填:是
         * 类型:string[1,64]
         * 描述:
         *  分账接收方账号:
         *  类型是MERCHANT_ID时,是商户号(mch_id或者sub_mch_id)
         *  类型是PERSONAL_OPENID时,是个人openid,openid获取方法 
         *  示例值:1900000109 
         * </pre>
         */
        @JsonProperty(value = "receiver_account")
        private String receiverAccount;
 
        /**
         * <pre>
         * 字段名:分账金额
         * 变量名:amount
         * 是否必填:是
         * 类型:int
         * 描述:
         *  分账金额,单位为分,只能为整数,不能超过原订单支付金额及最大分账比例金额。 
         *  示例值:190 
         * </pre>
         */
        @JsonProperty(value = "amount")
        private Integer amount;
 
        /**
         * <pre>
         * 字段名:分账描述
         * 变量名:description
         * 是否必填:是
         * 类型:string[1,80]
         * 描述:
         *  分账的原因描述,分账账单中需要体现。 
         *  示例值:分给商户1900000109 
         * </pre>
         */
        @JsonProperty(value = "description")
        private String description;
 
        /**
         * <pre>
         * 字段名:分账个人姓名
         * 变量名:receiver_name
         * 是否必填:条件选填
         * 类型:string[1, 10240]
         * 描述:
         *  可选项,在接收方类型为个人的时可选填,若有值,会检查与 receiver_name 是否实名匹配,不匹配会拒绝分账请求 
         *  1、分账接收方类型是PERSONAL_OPENID时,是个人姓名的密文(选传,传则校验) 此字段的加密方法详见:敏感信息加密说明 
         *  2、使用微信支付平台证书中的公钥 
         *  3、使用RSAES-OAEP算法进行加密 
         *  4、将请求中HTTP头部的Wechatpay-Serial设置为证书序列号 
         *  示例值:hu89ohu89ohu89o 
         * </pre>
         */
        @JsonProperty(value = "receiver_name")
        private String receiverName;
 
    }
 
}