package com.matrix.component.wechat.externalInterface.protocol.payComProtocol; import com.matrix.component.wechat.externalInterface.common.RandomStringGenerator; import com.matrix.component.wechat.externalInterface.common.Signature; import com.matrix.component.wechat.externalInterface.common.WechatConfigure; 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 mch_id = ""; /** * 商户企业付款单号 */ private String partner_trade_no = ""; /** * 随机字符串 */ private String nonce_str = ""; /** * 签名 */ private String sign = ""; /** * 收款方银行卡号 */ private String enc_bank_no = ""; /** * 收款方用户名 */ private String enc_true_name = ""; /** * 收款方开户行 */ private String bank_code = ""; /** * 付款金额 RMB(分) */ private int amount = 0; /** * 备注 */ private String desc = ""; public JsApiPayComReqData() { } /** * * @author wzy * @param desc 描述 * @param outTradeNo 商户企业付款单号 * @param totalFee 付款金额 * @param bankNo 银行卡号 * @param bankTrueName 收款号姓名 * @param bankCode 收款号开户行 */ public JsApiPayComReqData(String mchID,String paySecret ,String desc, String outTradeNo, int totalFee, String bankNo, String bankTrueName, String bankCode) { //默认必须设置 setMch_id(mchID); setDesc(desc); setPartner_trade_no(outTradeNo); setAmount(totalFee); //随机字符串,不长于32 位 setNonce_str(RandomStringGenerator.getRandomStringByLength(32)); //根据API给的签名规则进行签名 【 必须要放在本方法的最后】 String sign = Signature.getSign(toMap(),paySecret); setSign(sign);//把签名数据设置到Sign这个属性中 // setEnc_bank_no(); // setEnc_true_name(); // setBank_code(); } public String getMch_id() { return mch_id; } public void setMch_id(String mch_id) { this.mch_id = mch_id; } public String getEnc_bank_no() { return enc_bank_no; } public void setEnc_bank_no(String enc_bank_no) { this.enc_bank_no = enc_bank_no; } public String getEnc_true_name() { return enc_true_name; } public void setEnc_true_name(String enc_true_name) { this.enc_true_name = enc_true_name; } public String getBank_code() { return bank_code; } public void setBank_code(String bank_code) { this.bank_code = bank_code; } 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 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 toMap() { Map map = new HashMap(); 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; } }