View Javadoc
1   package com.foxinmy.weixin4j.pay.model;
2   
3   import com.alibaba.fastjson.annotation.JSONCreator;
4   import com.alibaba.fastjson.annotation.JSONField;
5   import com.foxinmy.weixin4j.model.WeixinAccount;
6   import com.foxinmy.weixin4j.util.StringUtil;
7   
8   /**
9    * 微信支付账户
10   *
11   * @className WeixinPayAccount
12   * @author jinyu(foxinmy@gmail.com)
13   * @date 2015年6月26日
14   * @since JDK 1.6
15   * @see
16   */
17  public class WeixinPayAccount extends WeixinAccount {
18  
19      private static final long serialVersionUID = -2791256176906048632L;
20      /**
21       * 公众号支付请求中用于加密的密钥
22       */
23      private final String paySignKey;
24      /**
25       * 微信支付分配的商户号
26       */
27      private final String mchId;
28      /**
29       * 加载支付证书文件的密码(默认为商户号)
30       */
31      private String certificateKey;
32      /**
33       * 商户证书文件(默认加载classpath:ca.p12)
34       */
35      private String certificateFile;
36      /**
37       * 微信支付分配的设备号
38       */
39      private String deviceInfo;
40      /**
41       * 财付通商户身份的标识
42       */
43      private String partnerId;
44  
45      /**
46       * 微信分配的子商户公众账号ID
47       */
48      private String subId;
49      /**
50       * 微信支付分配的子商户号
51       */
52      private String subMchId;
53  
54      /**
55       * 支付商户信息
56       *
57       * @param id
58       *            公众号唯一的身份ID(必填)
59       * @param paySignKey
60       *            支付密钥字符串(必填)
61       * @param mchId
62       *            微信支付分配的商户号(必填)
63       */
64      public WeixinPayAccount(String id, String paySignKey, String mchId) {
65          this(id, paySignKey, mchId, mchId, "classpath:ca.p12");
66      }
67  
68      /**
69       * 支付商户信息
70       *
71       * @param id
72       *            公众号唯一的身份ID(必填)
73       * @param paySignKey
74       *            支付密钥字符串(必填)
75       * @param mchId
76       *            微信支付分配的商户号(必填)
77       * @param certificateKey
78       *            加载支付证书文件的密码(默认为商户号)
79       * @param certificateFile
80       *            商户证书文件(默认加载classpath:ca.p12)
81       */
82      public WeixinPayAccount(String id, String paySignKey, String mchId, String certificateKey, String certificateFile) {
83          this(id, null, paySignKey, mchId, certificateKey, certificateFile, null, null, null, null);
84      }
85  
86      /**
87       * 支付商户信息
88       *
89       * @param id
90       *            公众号唯一的身份ID(必填)
91       * @param secret
92       *            公众号调用接口的凭证(最好填写)
93       * @param paySignKey
94       *            支付密钥字符串(必填)
95       * @param mchId
96       *            微信支付分配的商户号(必填)
97       * @param certificateKey
98       *            加载支付证书文件的密码(默认为商户号)
99       * @param certificateFile
100      *            商户证书文件(默认加载classpath:ca.p12)
101      * @param deviceInfo
102      *            微信支付分配的设备号(非必填)
103      * @param partnerId
104      *            财付通的商户号(非必填)
105      * @param subId
106      *            微信分配的子商户公众账号ID(非必填)
107      * @param subMchId
108      *            微信支付分配的子商户号(非必填)
109      */
110     @JSONCreator
111     public WeixinPayAccount(@JSONField(name = "id") String id, @JSONField(name = "secret") String secret,
112                             @JSONField(name = "paySignKey") String paySignKey, @JSONField(name = "mchId") String mchId,
113                             @JSONField(name = "certificateKey") String certificateKey,
114                             @JSONField(name = "certificateFile") String certificateFile,
115                             @JSONField(name = "deviceInfo") String deviceInfo, @JSONField(name = "partnerId") String partnerId,
116                             @JSONField(name = "subId") String subId, @JSONField(name = "subMchId") String subMchId) {
117         super(id, secret);
118         this.paySignKey = paySignKey;
119         this.mchId = mchId;
120         this.certificateKey = certificateKey;
121         this.certificateFile = certificateFile;
122         this.deviceInfo = deviceInfo;
123         this.partnerId = partnerId;
124         this.subId = subId;
125         this.subMchId = subMchId;
126     }
127 
128     public String getPaySignKey() {
129         return paySignKey;
130     }
131 
132     public String getMchId() {
133         return mchId;
134     }
135 
136     public String getDeviceInfo() {
137         return deviceInfo;
138     }
139 
140     public String getCertificateKey() {
141         return StringUtil.isBlank(certificateKey) ? mchId : certificateKey;
142     }
143 
144     public String getPartnerId() {
145         return partnerId;
146     }
147 
148     public String getSubId() {
149         return subId;
150     }
151 
152     public String getSubMchId() {
153         return subMchId;
154     }
155 
156     public void setCertificateKey(String certificateKey) {
157         this.certificateKey = certificateKey;
158     }
159 
160     public String getCertificateFile() {
161         return certificateFile;
162     }
163 
164     public void setCertificateFile(String certificateFile) {
165         this.certificateFile = certificateFile;
166     }
167 
168     public void setDeviceInfo(String deviceInfo) {
169         this.deviceInfo = deviceInfo;
170     }
171 
172     public void setPartnerId(String partnerId) {
173         this.partnerId = partnerId;
174     }
175 
176     public void setSubId(String subId) {
177         this.subId = subId;
178     }
179 
180     public void setSubMchId(String subMchId) {
181         this.subMchId = subMchId;
182     }
183 
184     @Override
185     public String toString() {
186         return "WeixinPayAccount [" + super.toString() + ", paySignKey=" + paySignKey + ", mchId=" + mchId
187                 + ", certificateKey=" + certificateKey + ",certificateFile =" + certificateFile + ", deviceInfo="
188                 + deviceInfo + ", partnerId=" + partnerId + ", subId=" + subId + ", subMchId=" + subMchId + "]";
189     }
190 }