DownloadBillReqData.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.tencent.protocol.downloadbill_protocol;
  2. import com.tencent.common.Configure;
  3. import com.tencent.common.RandomStringGenerator;
  4. import com.tencent.common.Signature;
  5. import java.lang.reflect.Field;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. /**
  9. * User: rizenguo
  10. * Date: 2014/10/25
  11. * Time: 16:48
  12. */
  13. public class DownloadBillReqData {
  14. //每个字段具体的意思请查看API文档
  15. private String appid = "";
  16. private String mch_id = "";
  17. private String device_info = "";
  18. private String nonce_str = "";
  19. private String sign = "";
  20. private String bill_date = "";
  21. private String bill_type = "";
  22. /**
  23. * 请求对账单下载服务
  24. * @param deviceInfo 商户自己定义的扫码支付终端设备号,方便追溯这笔交易发生在哪台终端设备上
  25. * @param billDate 下载对账单的日期,格式:yyyyMMdd 例如:20140603
  26. * @param billType 账单类型
  27. * ALL,返回当日所有订单信息,默认值
  28. SUCCESS,返回当日成功支付的订单
  29. REFUND,返回当日退款订单
  30. REVOKED,已撤销的订单
  31. */
  32. public DownloadBillReqData(String deviceInfo,String billDate,String billType){
  33. //微信分配的公众号ID(开通公众号之后可以获取到)
  34. setAppid(Configure.getAppid());
  35. //微信支付分配的商户号ID(开通公众号的微信支付功能之后可以获取到)
  36. setMch_id(Configure.getMchid());
  37. //商户自己定义的扫码支付终端设备号,方便追溯这笔交易发生在哪台终端设备上
  38. setDevice_info(deviceInfo);
  39. setBill_date(billDate);
  40. setBill_type(billType);
  41. //随机字符串,不长于32 位
  42. setNonce_str(RandomStringGenerator.getRandomStringByLength(32));
  43. //根据API给的签名规则进行签名
  44. String sign = Signature.getSign(toMap());
  45. setSign(sign);//把签名数据设置到Sign这个属性中
  46. }
  47. public String getAppid() {
  48. return appid;
  49. }
  50. public void setAppid(String appid) {
  51. this.appid = appid;
  52. }
  53. public String getMch_id() {
  54. return mch_id;
  55. }
  56. public void setMch_id(String mch_id) {
  57. this.mch_id = mch_id;
  58. }
  59. public String getDevice_info() {
  60. return device_info;
  61. }
  62. public void setDevice_info(String device_info) {
  63. this.device_info = device_info;
  64. }
  65. public String getNonce_str() {
  66. return nonce_str;
  67. }
  68. public void setNonce_str(String nonce_str) {
  69. this.nonce_str = nonce_str;
  70. }
  71. public String getSign() {
  72. return sign;
  73. }
  74. public void setSign(String sign) {
  75. this.sign = sign;
  76. }
  77. public String getBill_date() {
  78. return bill_date;
  79. }
  80. public void setBill_date(String bill_date) {
  81. this.bill_date = bill_date;
  82. }
  83. public String getBill_type() {
  84. return bill_type;
  85. }
  86. public void setBill_type(String bill_type) {
  87. this.bill_type = bill_type;
  88. }
  89. public Map<String,Object> toMap(){
  90. Map<String,Object> map = new HashMap<String, Object>();
  91. Field[] fields = this.getClass().getDeclaredFields();
  92. for (Field field : fields) {
  93. Object obj;
  94. try {
  95. obj = field.get(this);
  96. if(obj!=null){
  97. map.put(field.getName(), obj);
  98. }
  99. } catch (IllegalArgumentException e) {
  100. e.printStackTrace();
  101. } catch (IllegalAccessException e) {
  102. e.printStackTrace();
  103. }
  104. }
  105. return map;
  106. }
  107. }