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 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; } }