View Javadoc
1   package com.foxinmy.weixin4j.pay.payment.mch;
2   
3   import com.alibaba.fastjson.annotation.JSONField;
4   import com.foxinmy.weixin4j.pay.type.CredentialType;
5   import com.foxinmy.weixin4j.pay.type.CurrencyType;
6   import com.foxinmy.weixin4j.pay.type.CustomsCity;
7   
8   import javax.xml.bind.annotation.XmlElement;
9   
10  /**
11   * 报关对象
12   * 
13   * @className CustomsOrder
14   * @author jinyu(foxinmy@gmail.com)
15   * @date 2016年3月27日
16   * @since JDK 1.6
17   * @see
18   */
19  public class CustomsOrder extends MerchantResult {
20  
21  	private static final long serialVersionUID = 799510373861612386L;
22  	/**
23  	 * 微信支付订单号
24  	 */
25  	@XmlElement(name = "transaction_id")
26  	@JSONField(name = "transaction_id")
27  	private String transactionId;
28  	/**
29  	 * 商户订单号
30  	 */
31  	@XmlElement(name = "out_trade_no")
32  	@JSONField(name = "out_trade_no")
33  	private String outTradeNo;
34  	/**
35  	 * 商户子订单号,如有拆单则必传
36  	 */
37  	@XmlElement(name = "sub_order_no")
38  	@JSONField(name = "sub_order_no")
39  	private String subOrderNo;
40  	/**
41  	 * 货币类型,符合 ISO 4217 标准的三位字母代码,默认人民币:CNY
42  	 * 
43  	 * @see com.foxinmy.weixin4j.pay.type.CurrencyType
44  	 */
45  	@XmlElement(name = "fee_type")
46  	@JSONField(name = "fee_type")
47  	private CurrencyType feeType;
48  	/**
49  	 * 子订单金额,以分为单位,不能超过原订单金额,order_fee=transport_fee+product_fee(应付金额=物流费+商品价格),
50  	 * 如有拆单则必传。
51  	 */
52  	@XmlElement(name = "order_fee")
53  	@JSONField(name = "order_fee")
54  	private String orderFee;
55  	/**
56  	 * 物流费用,以分为单位,如有拆单则必传。
57  	 */
58  	@XmlElement(name = "transport_fee")
59  	@JSONField(name = "transport_fee")
60  	private String transportFee;
61  	/**
62  	 * 商品费用,以分为单位,如有拆单则必传。
63  	 */
64  	@XmlElement(name = "product_fee")
65  	@JSONField(name = "product_fee")
66  	private String productFee;
67  	/**
68  	 * 关税,以分为单位
69  	 */
70  	@XmlElement(name = "duty")
71  	@JSONField(name = "duty")
72  	private String dutyFee;
73  	/**
74  	 * 海关
75  	 */
76  	@XmlElement(name = "customs")
77  	@JSONField(name = "customs")
78  	private CustomsCity customsCity;
79  	/**
80  	 * 商户在海关登记的备案号,customsCity非NO,此参数必填
81  	 */
82  	@XmlElement(name = "mch_customs_no")
83  	@JSONField(name = "mch_customs_no")
84  	private String customsNo;
85  	/**
86  	 * 证件类型:暂只支持身份证,该参数是指用户信息,商户若有用户信息,可上送,系统将以商户上传的数据为准,进行海关通关报备
87  	 */
88  	@XmlElement(name = "cert_type")
89  	@JSONField(name = "cert_type")
90  	private CredentialType credentialType;
91  	/**
92  	 * 证件号码:身份证号,该参数是指用户信息,商户若有用户信息,可上送,系统将以商户上传的数据为准,进行海关通关报备;
93  	 */
94  	@XmlElement(name = "cert_id")
95  	@JSONField(name = "cert_id")
96  	private String credentialId;
97  	/**
98  	 * 用户姓名,该参数是指用户信息,商户若有用户信息,可上送,系统将以商户上传的数据为准,进行海关通关报备;
99  	 */
100 	@XmlElement(name = "name")
101 	@JSONField(name = "name")
102 	private String uname;
103 
104 	public CustomsOrder(String transactionId, String outTradeNo) {
105 		this.transactionId = transactionId;
106 		this.outTradeNo = outTradeNo;
107 		this.customsCity = CustomsCity.NO;
108 	}
109 
110 	public String getSubOrderNo() {
111 		return subOrderNo;
112 	}
113 
114 	public void setSubOrderNo(String subOrderNo) {
115 		this.subOrderNo = subOrderNo;
116 	}
117 
118 	public CurrencyType getFeeType() {
119 		return feeType;
120 	}
121 
122 	public void setFeeType(CurrencyType feeType) {
123 		this.feeType = feeType;
124 	}
125 
126 	public String getOrderFee() {
127 		return orderFee;
128 	}
129 
130 	public void setOrderFee(String orderFee) {
131 		this.orderFee = orderFee;
132 	}
133 
134 	public String getTransportFee() {
135 		return transportFee;
136 	}
137 
138 	public void setTransportFee(String transportFee) {
139 		this.transportFee = transportFee;
140 	}
141 
142 	public String getProductFee() {
143 		return productFee;
144 	}
145 
146 	public void setProductFee(String productFee) {
147 		this.productFee = productFee;
148 	}
149 
150 	public String getDutyFee() {
151 		return dutyFee;
152 	}
153 
154 	public void setDutyFee(String dutyFee) {
155 		this.dutyFee = dutyFee;
156 	}
157 
158 	public CustomsCity getCustomsCity() {
159 		return customsCity;
160 	}
161 
162 	public void setCustomsCity(CustomsCity customsCity) {
163 		this.customsCity = customsCity;
164 	}
165 
166 	public String getCustomsNo() {
167 		return customsNo;
168 	}
169 
170 	public void setCustomsNo(String customsNo) {
171 		this.customsNo = customsNo;
172 	}
173 
174 	public CredentialType getCredentialType() {
175 		return credentialType;
176 	}
177 
178 	public void setCredentialType(CredentialType credentialType) {
179 		this.credentialType = credentialType;
180 	}
181 
182 	public String getCredentialId() {
183 		return credentialId;
184 	}
185 
186 	public void setCredentialId(String credentialId) {
187 		this.credentialId = credentialId;
188 	}
189 
190 	public String getUname() {
191 		return uname;
192 	}
193 
194 	public void setUname(String uname) {
195 		this.uname = uname;
196 	}
197 
198 	public String getTransactionId() {
199 		return transactionId;
200 	}
201 
202 	public String getOutTradeNo() {
203 		return outTradeNo;
204 	}
205 
206 	@Override
207 	public String toString() {
208 		return "CustomsOrder [transactionId=" + transactionId + ", outTradeNo="
209 				+ outTradeNo + ", subOrderNo=" + subOrderNo + ", feeType="
210 				+ feeType + ", orderFee=" + orderFee + ", transportFee="
211 				+ transportFee + ", productFee=" + productFee + ", dutyFee="
212 				+ dutyFee + ", customsCity=" + customsCity + ", customsNo="
213 				+ customsNo + ", credentialType=" + credentialType
214 				+ ", credentialId=" + credentialId + ", uname=" + uname + ", "
215 				+ super.toString() + "]";
216 	}
217 }