rentaiming
2024-05-21 dd7ad1ab0ead2aa3c9f7fc35cc9b0635309c642a
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
/*package com.tencent.protocol;
 
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
 
import com.tencent.common.Configure;
import com.tencent.common.RandomStringGenerator;
import com.tencent.common.Signature;
 
*//**
 * 商户想用户付款(提现)
 *//*
public class PayToTheUserReqData {
 
    //每个字段具体的意思请查看API文档 https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2
    private String mch_appid;//公众账号appid        是    wx8888888888888888    String    微信分配的公众账号ID(企业号corpid即为此appId)
    private String mchid;//商户号        是    1900000109    String(32)    微信支付分配的商户号
    private String nonce_str;// 随机字符串        是    5K8264ILTKCH16CQ2502SI8ZNMTM67VS    String(32)    随机字符串,不长于32位
    private String sign;// 签名        是    C380BEC2BFD727A4B6845133519F3AD6    String(32)    签名,详见签名算法
    private String partner_trade_no;// 商户订单号        是    10000098201411111234567890    String    商户订单号,需保持唯一性
    private String openid;// 用户openid    是    oxTWIuGaIt6gTKsQRLau2M0yL16E    String    商户appid下,某用户的openid
    private String check_name;// 校验用户姓名选项    是    OPTION_CHECK    String    NO_CHECK:不校验真实姓名     FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账)    OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)
    private String re_user_name;// 收款用户姓名        可选    马花花    String    收款用户真实姓名。     如果check_name设置为FORCE_CHECK或OPTION_CHECK,则必填用户真实姓名
    private Integer amount;// 金额        是    10099    int    企业付款金额,单位为分
    private String desc;// 企业付款描述信息        是    理赔    String    企业付款操作说明信息。必填。
    private String spbill_create_ip = "127.0.0.1";// Ip地址        是    192.168.0.1    String(32)    调用接口的机器Ip地址
 
    *//**
     * 企业向用户付款
     * @param partner_trade_no 商户订单号,需保持唯一性
     * @param openid 商户appid下,某用户的openid
     * @param check_name 校验用户姓名选项:NO_CHECK:不校验真实姓名  FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账)OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)
     * @param re_user_name 收款用户姓名
     * @param amount 企业付款金额,单位为分
     * @param desc 企业付款描述信息
     * @param spbill_create_ip 调用接口的机器Ip地址
     *//*
    public PayToTheUserReqData(String partner_trade_no, String openid, String re_user_name, Integer amount, String desc){
 
        //微信分配的公众号ID(开通公众号之后可以获取到)
        setMch_appid(Configure.getAppid());
 
        //微信支付分配的商户号ID(开通公众号的微信支付功能之后可以获取到)
        setMchid(Configure.getMchid());
        setPartner_trade_no(partner_trade_no);
        setOpenid(openid);
        setCheck_name("OPTION_CHECK");//默认:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)
        //      setRe_user_name(re_user_name);
        setAmount(amount);
        setDesc(desc);
 
        //随机字符串,不长于32 位
        setNonce_str(RandomStringGenerator.getRandomStringByLength(32));
 
        //根据API给的签名规则进行签名
        String sign;
        try {
            sign = Signature.getSign(toMap());
            setSign(sign);//把签名数据设置到Sign这个属性中
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
 
    }
 
    public String getMch_appid() {
        return mch_appid;
    }
 
    public void setMch_appid(String mch_appid) {
        this.mch_appid = mch_appid;
    }
 
    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 String getCheck_name() {
        return check_name;
    }
 
    public void setCheck_name(String check_name) {
        this.check_name = check_name;
    }
 
    public String getRe_user_name() {
        return re_user_name;
    }
 
    public void setRe_user_name(String re_user_name) {
        this.re_user_name = re_user_name;
    }
 
    public Integer getAmount() {
        return amount;
    }
 
    public void setAmount(Integer amount) {
        this.amount = amount;
    }
 
    public String getDesc() {
        return desc;
    }
 
    public void setDesc(String desc) {
        this.desc = desc;
    }
 
    public String getSpbill_create_ip() {
        return spbill_create_ip;
    }
 
    public void setSpbill_create_ip(String spbill_create_ip) {
        this.spbill_create_ip = spbill_create_ip;
    }
 
 
    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;
    }
 
}
*/