xiaoyong931011
2022-07-27 3280d1bd977e8fb5c9c60e615612fabb7b99c3e3
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
package cc.mrbird.febs.pay.model;
 
 
import cc.mrbird.febs.pay.util.RandomStringGenerator;
import cc.mrbird.febs.pay.util.Signature;
 
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
 
/**
 * 企业支付请求参数
 *
 * @author:jiangyouyao
 * @date 2017年5月25日
 */
public class JsApiPayComReqData {
 
    //每个字段具体的意思请查看API文档
    /**
     * 商户号
     */
    private String mchid = "";
 
    private String mch_appid = "";
 
    /**
     * 商户企业付款单号
     */
    private String partner_trade_no = "";
 
    /**
     * 随机字符串
     */
    private String nonce_str = "";
 
 
    private String check_name = "";
 
 
    /**
     * 签名
     */
    private String sign = "";
 
    /**
     * 付款金额    RMB(分)
     */
    private int amount = 0;
    /**
     * 备注
     */
    private String desc = "";
 
    private String openid = "";
 
 
    public JsApiPayComReqData() {
    }
 
 
    /**
     *
     * @author wzy
     * @param desc         描述
     * @param outTradeNo   商户企业付款单号
     * @param totalFee     付款金额
     * @param bankCode     收款号开户行
     */
    public JsApiPayComReqData(String mchID,String mch_appid,String paySecret ,String desc, String outTradeNo, int totalFee,
                              String openid, String check_name, String bankCode) {
        setMch_appid(mch_appid);
        //默认必须设置
        setMchid(mchID);
        setDesc(desc);
        setPartner_trade_no(outTradeNo);
        setAmount(totalFee);
        setOpenid(openid);
        setCheck_name(check_name);
        //随机字符串,不长于32 位
        setNonce_str(RandomStringGenerator.getRandomStringByLength(32));
        //根据API给的签名规则进行签名 【 必须要放在本方法的最后】
        String sign = Signature.getSign(toMap(),paySecret);
        setSign(sign);//把签名数据设置到Sign这个属性中
 
 
    }
 
    public String getMch_appid() {
        return mch_appid;
    }
 
    public void setMch_appid(String mch_appid) {
        this.mch_appid = mch_appid;
    }
 
    public String getCheck_name() {
        return check_name;
    }
 
    public void setCheck_name(String check_name) {
        this.check_name = check_name;
    }
 
    public String getMchid() {
        return mchid;
    }
 
    public void setMchid(String mchid) {
        this.mchid = mchid;
    }
 
    public String getNonce_str() {
        return nonce_str;
    }
 
    public void setNonce_str(String nonce_str) {
        this.nonce_str = nonce_str;
    }
 
    public String getSign() {
        return sign;
    }
 
    public void setSign(String sign) {
        this.sign = sign;
    }
 
    public String getPartner_trade_no() {
        return partner_trade_no;
    }
 
    public void setPartner_trade_no(String partner_trade_no) {
        this.partner_trade_no = partner_trade_no;
    }
 
    public String getOpenid() {
        return openid;
    }
 
    public void setOpenid(String openid) {
        this.openid = openid;
    }
 
    public int getAmount() {
        return amount;
    }
 
    public void setAmount(int amount) {
        this.amount = amount;
    }
 
    public String getDesc() {
        return desc;
    }
 
    public void setDesc(String desc) {
        this.desc = desc;
    }
 
    public Map<String, Object> toMap() {
        Map<String, Object> map = new HashMap<String, Object>();
        Field[] fields = this.getClass().getDeclaredFields();
        for (Field field : fields) {
            Object obj;
            try {
                obj = field.get(this);
                if (obj != null) {
                    map.put(field.getName(), obj);
                }
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        return map;
    }
}