OrderV2.java
package com.foxinmy.weixin4j.mp.oldpayment;
import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
import com.foxinmy.weixin4j.type.CurrencyType;
import com.foxinmy.weixin4j.type.TradeState;
import com.foxinmy.weixin4j.util.DateUtil;
/**
* V2订单信息
*
* @className OrderV2
* @author jinyu(foxinmy@gmail.com)
* @date 2014年11月2日
* @since JDK 1.6
* @see
*/
public class OrderV2 extends ApiResultV2 {
private static final long serialVersionUID = 4543552984506609920L;
/**
* 是订单状态,0 为成功,其他为失败;
*/
@JSONField(name = "trade_state")
private int tradeState;
/**
* 是交易模式,1 为即时到帐,其他保留;
*/
@JSONField(name = "trade_mode")
private int tradeMode;
/**
* 是银行类型;
*/
@JSONField(name = "bank_type")
private String bankType;
/**
* 是银行订单号;
*/
@JSONField(name = "bank_billno")
private String bankBillno;
/**
* 是总金额,单位为分;
*/
@JSONField(name = "total_fee")
private int totalFee;
/**
* 是币种,1 为人民币;
*/
@JSONField(name = "fee_type")
private int feeType;
/**
* 是财付通订单号;
*/
@JSONField(name = "transaction_id")
private String transactionId;
/**
* 是第三方订单号;
*/
@JSONField(name = "out_trade_no")
private String outTradeNo;
/**
* 表明是否分账,false 为无分账,true 为有分账;
*/
@JSONField(name = "is_split")
private boolean isSplit;
/**
* 表明是否退款,false 为无退款,ture 为退款;
*/
@JSONField(name = "is_refund")
private boolean isRefund;
/**
* attach 是商户数据包,即生成订单package 时商户填入的 attach;
*/
private String attach;
/**
* 支付完成时间;
*/
@JSONField(name = "time_end")
private String timeEnd;
/**
* 物流费用,单位为分;
*/
@JSONField(name = "transport_fee")
private int transportFee;
/**
* 物品费用,单位为分;
*/
@JSONField(name = "product_fee")
private int productFee;
/**
* 折扣价格,单位为分;
*/
private int discount;
/**
* 换算成人民币之后的总金额,单位为分,一般看 total_fee 即可。
*/
@JSONField(name = "rmb_total_fee")
private Integer rmbTotalFee;
public int getTradeState() {
return tradeState;
}
@JSONField(serialize = false)
public TradeState getFormatTradeState() {
return tradeState == 0 ? TradeState.SUCCESS : null;
}
public void setTradeState(int tradeState) {
this.tradeState = tradeState;
}
public int getTradeMode() {
return tradeMode;
}
public void setTradeMode(int tradeMode) {
this.tradeMode = tradeMode;
}
public String getBankType() {
return bankType;
}
public void setBankType(String bankType) {
this.bankType = bankType;
}
public String getBankBillno() {
return bankBillno;
}
public void setBankBillno(String bankBillno) {
this.bankBillno = bankBillno;
}
public int getTotalFee() {
return totalFee;
}
/**
* <font color="red">调用接口获取单位为分,get方法转换为元方便使用</font>
*
* @return 元单位
*/
@JSONField(serialize = false)
public double getFormatTotalFee() {
return totalFee / 100d;
}
public void setTotalFee(int totalFee) {
this.totalFee = totalFee;
}
public int getFeeType() {
return feeType;
}
@JSONField(serialize = false)
public CurrencyType getFormatFeeType() {
return feeType == 1 ? CurrencyType.CNY : null;
}
public void setFeeType(int feeType) {
this.feeType = feeType;
}
public String getTransactionId() {
return transactionId;
}
public void setTransactionId(String transactionId) {
this.transactionId = transactionId;
}
public String getOutTradeNo() {
return outTradeNo;
}
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
public boolean isSplit() {
return isSplit;
}
public void setSplit(boolean isSplit) {
this.isSplit = isSplit;
}
public boolean isRefund() {
return isRefund;
}
public void setRefund(boolean isRefund) {
this.isRefund = isRefund;
}
public String getAttach() {
return attach;
}
public void setAttach(String attach) {
this.attach = attach;
}
public String getTimeEnd() {
return timeEnd;
}
@JSONField(serialize = false)
public Date getFormatTimeEnd() {
return timeEnd != null ? DateUtil.parse2yyyyMMddHHmmss(timeEnd) : null;
}
public void setTimeEnd(String timeEnd) {
this.timeEnd = timeEnd;
}
public int getTransportFee() {
return transportFee;
}
/**
* <font color="red">调用接口获取单位为分,get方法转换为元方便使用</font>
*
* @return 元单位
*/
@JSONField(serialize = false)
public double getFormatTransportFee() {
return transportFee / 100d;
}
public void setTransportFee(int transportFee) {
this.transportFee = transportFee;
}
public int getProductFee() {
return productFee;
}
/**
* <font color="red">调用接口获取单位为分,get方法转换为元方便使用</font>
*
* @return 元单位
*/
@JSONField(serialize = false)
public double getFormatProductFee() {
return productFee / 100d;
}
public void setProductFee(int productFee) {
this.productFee = productFee;
}
public int getDiscount() {
return discount;
}
/**
* <font color="red">调用接口获取单位为分,get方法转换为元方便使用</font>
*
* @return 元单位
*/
@JSONField(serialize = false)
public double getFormatDiscount() {
return discount / 100d;
}
public void setDiscount(int discount) {
this.discount = discount;
}
public Integer getRmbTotalFee() {
return rmbTotalFee;
}
/**
* <font color="red">调用接口获取单位为分,get方法转换为元方便使用</font>
*
* @return 元单位
*/
@JSONField(serialize = false)
public double getFormatRmbTotalFee() {
return rmbTotalFee != null ? rmbTotalFee.doubleValue() / 100d : 0d;
}
public void setRmbTotalFee(int rmbTotalFee) {
this.rmbTotalFee = rmbTotalFee;
}
@Override
public String toString() {
return "Order [tradeState=" + tradeState + ", tradeMode=" + tradeMode
+ ", bankType=" + bankType + ", bankBillno=" + bankBillno
+ ", totalFee=" + totalFee + ", feeType=" + feeType
+ ", transactionId=" + transactionId + ", outTradeNo="
+ outTradeNo + ", isSplit=" + isSplit + ", isRefund="
+ isRefund + ", attach=" + attach + ", timeEnd=" + timeEnd
+ ", transportFee=" + transportFee + ", productFee="
+ productFee + ", discount=" + discount + ", rmbTotalFee="
+ rmbTotalFee + ", tradeState=" + getFormatTradeState()
+ ", totalFee=" + getFormatTotalFee() + ", feeType="
+ getFormatFeeType() + ", timeEnd=" + getFormatTimeEnd()
+ ", transportFee=" + getFormatTransportFee() + ", productFee="
+ getFormatProductFee() + ", discount=" + getFormatDiscount()
+ ", rmbTotalFee=" + getFormatRmbTotalFee() + ", "
+ super.toString() + "]";
}
}