AppReqData.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. package com.tencent.protocol.pay_protocol;
  2. /**
  3. * User: gaojie
  4. * Date: 2017/05/10
  5. * Time: 16:42
  6. */
  7. import com.tencent.common.Configure;
  8. import com.tencent.common.RandomStringGenerator;
  9. import com.tencent.common.Signature;
  10. import java.lang.reflect.Field;
  11. import java.util.HashMap;
  12. import java.util.Map;
  13. /**
  14. * app发送
  15. */
  16. public class AppReqData {
  17. //每个字段具体的意思请查看API文档
  18. private String appid = "";
  19. private String partnerid = "";
  20. private String prepayid = "";
  21. private String _package = "Sign=WXPay";
  22. private String noncestr = "";
  23. private String timestamp = "";
  24. private String sign = "";
  25. public AppReqData(String prepayid){
  26. setPrepayid(prepayid);
  27. //微信分配的公众号ID(开通公众号之后可以获取到)
  28. setAppid(Configure.getAppid());
  29. //微信支付分配的商户号ID(开通公众号的微信支付功能之后可以获取到)
  30. setPartnerid(Configure.getMchid());
  31. int timestamp = Math.toIntExact(System.currentTimeMillis() / 1000);
  32. setTimestamp(String.valueOf(timestamp));
  33. //随机字符串,不长于32 位
  34. setNoncestr(RandomStringGenerator.getRandomStringByLength(32));
  35. //根据API给的签名规则进行签名
  36. String sign = Signature.getSign(toMap());
  37. setSign(sign);//把签名数据设置到Sign这个属性中
  38. }
  39. public String getAppid() {
  40. return appid;
  41. }
  42. public void setAppid(String appid) {
  43. this.appid = appid;
  44. }
  45. public String getNoncestr() {
  46. return noncestr;
  47. }
  48. public void setNoncestr(String noncestr) {
  49. this.noncestr = noncestr;
  50. }
  51. public String getSign() {
  52. return sign;
  53. }
  54. public void setSign(String sign) {
  55. this.sign = sign;
  56. }
  57. public Map<String,Object> toMap(){
  58. Map<String,Object> map = new HashMap<String, Object>();
  59. Field[] fields = this.getClass().getDeclaredFields();
  60. for (Field field : fields) {
  61. Object obj;
  62. try {
  63. obj = field.get(this);
  64. if(obj!=null){
  65. String name = field.getName();
  66. if(name == "_package") name = "package";
  67. map.put(name, obj);
  68. }
  69. } catch (IllegalArgumentException e) {
  70. e.printStackTrace();
  71. } catch (IllegalAccessException e) {
  72. e.printStackTrace();
  73. }
  74. }
  75. return map;
  76. }
  77. public String getPartnerid() {
  78. return partnerid;
  79. }
  80. public void setPartnerid(String partnerid) {
  81. this.partnerid = partnerid;
  82. }
  83. public String getPrepayid() {
  84. return prepayid;
  85. }
  86. public void setPrepayid(String prepayid) {
  87. this.prepayid = prepayid;
  88. }
  89. public String get_package() {
  90. return _package;
  91. }
  92. public void set_package(String _package) {
  93. this._package = _package;
  94. }
  95. public String getTimestamp() {
  96. return timestamp;
  97. }
  98. public void setTimestamp(String timestamp) {
  99. this.timestamp = timestamp;
  100. }
  101. }