package cc.mrbird.febs.pay.model; import cc.mrbird.febs.pay.util.RandomStringGenerator; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; /** * User: rizenguo * Date: 2014/10/25 * Time: 13:54 */ public class ScanPayQueryReqData { //每个字段具体的意思请查看API文档 private String appid = ""; private String mch_id = ""; private String transaction_id = ""; private String out_trade_no = ""; private String nonce_str = ""; private String sign = ""; /** * 请求支付查询服务 * @param transactionID 是微信系统为每一笔支付交易分配的订单号,通过这个订单号可以标识这笔交易,它由支付订单API支付成功时返回的数据里面获取到。建议优先使用 * @param outTradeNo 商户系统内部的订单号,transaction_id 、out_trade_no 二选一,如果同时存在优先级:transaction_id>out_trade_no * @return API返回的XML数据 * @throws Exception */ public ScanPayQueryReqData(String transactionID, String outTradeNo){ //-------------------------------------------------------------------- //以下是测试数据,请商户按照自己的实际情况填写具体的值进去 //-------------------------------------------------------------------- //微信分配的公众号ID(开通公众号之后可以获取到) //setAppid(WechatConfigure.appID); //微信支付分配的商户号ID(开通公众号的微信支付功能之后可以获取到) // setMch_id(WechatConfigure.mchID); //transaction_id是微信系统为每一笔支付交易分配的订单号,通过这个订单号可以标识这笔交易,它由支付订单API支付成功时返回的数据里面获取到。 setTransaction_id(transactionID); //商户系统自己生成的唯一的订单号 setOut_trade_no(outTradeNo); //随机字符串,不长于32 位 setNonce_str(RandomStringGenerator.getRandomStringByLength(32)); //根据API给的签名规则进行签名 //String sign = Signature.getSign(toMap()); setSign(sign);//把签名数据设置到Sign这个属性中 } public String getAppid() { return appid; } public void setAppid(String appid) { this.appid = appid; } public String getMch_id() { return mch_id; } public void setMch_id(String mch_id) { this.mch_id = mch_id; } public String getTransaction_id() { return transaction_id; } public void setTransaction_id(String transaction_id) { this.transaction_id = transaction_id; } public String getOut_trade_no() { return out_trade_no; } public void setOut_trade_no(String out_trade_no) { this.out_trade_no = out_trade_no; } 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 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; } }