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