CorpPaymentRecord.java

  1. package com.foxinmy.weixin4j.payment.mch;

  2. import java.util.Date;

  3. import javax.xml.bind.annotation.XmlAccessType;
  4. import javax.xml.bind.annotation.XmlAccessorType;
  5. import javax.xml.bind.annotation.XmlElement;
  6. import javax.xml.bind.annotation.XmlRootElement;

  7. import com.alibaba.fastjson.annotation.JSONField;
  8. import com.foxinmy.weixin4j.type.mch.CorpPaymentCheckNameType;
  9. import com.foxinmy.weixin4j.util.DateUtil;

  10. /**
  11.  * 企业付款记录
  12.  *
  13.  * @className CorpPaymentRecord
  14.  * @author jinyu(foxinmy@gmail.com)
  15.  * @date 2015年6月23日
  16.  * @since JDK 1.6
  17.  * @see
  18.  * @deprecated 迁移到子模块weixin4j-pay
  19.  */
  20. @Deprecated
  21. @XmlRootElement
  22. @XmlAccessorType(XmlAccessType.FIELD)
  23. public class CorpPaymentRecord extends MerchantResult {

  24.     private static final long serialVersionUID = -1926873539419750498L;

  25.     /**
  26.      * 微信订单订单号
  27.      */
  28.     @JSONField(name = "detail_id")
  29.     @XmlElement(name = "detail_id")
  30.     private String transactionId;
  31.     /**
  32.      * 商户订单号
  33.      */
  34.     @JSONField(name = "partner_trade_no")
  35.     @XmlElement(name = "partner_trade_no")
  36.     private String outTradeNo;
  37.     /**
  38.      * 交易状态 SUCCESS:转账成功 FAILED:转账失败
  39.      */
  40.     @JSONField(name = "status")
  41.     @XmlElement(name = "status")
  42.     private String transactionStatus;
  43.     /**
  44.      * 如果失败则应该有原因
  45.      */
  46.     @JSONField(name = "reason")
  47.     @XmlElement(name = "reason")
  48.     private String failureReason;
  49.     /**
  50.      * 收款用户openid
  51.      */
  52.     @JSONField(name = "openid")
  53.     @XmlElement(name = "openid")
  54.     private String openId;
  55.     /**
  56.      * 收款用户姓名
  57.      */
  58.     @JSONField(name = "transfer_name")
  59.     @XmlElement(name = "transfer_name")
  60.     private String transferName;
  61.     /**
  62.      * 付款金额(单位为分)
  63.      */
  64.     @JSONField(name = "payment_amount")
  65.     @XmlElement(name = "payment_amount")
  66.     private int paymentAmount;
  67.     /**
  68.      * 转账时间
  69.      */
  70.     @JSONField(name = "transfer_time")
  71.     @XmlElement(name = "transfer_time")
  72.     private String transferTime;
  73.     /**
  74.      * 校验用户姓名选项
  75.      *
  76.      * @see com.foxinmy.weixin4j.type.mch.CorpPaymentCheckNameType.type.MPPaymentCheckNameType
  77.      */
  78.     @XmlElement(name = "check_name")
  79.     @JSONField(name = "check_name")
  80.     private String checkNameType;
  81.     /**
  82.      * 企业付款描述信息
  83.      */
  84.     @XmlElement(name = "desc")
  85.     private String desc;
  86.     /**
  87.      * 实名验证结果 PASS:通过 FAILED:不通过
  88.      */
  89.     @JSONField(name = "check_name_result")
  90.     @XmlElement(name = "check_name_result")
  91.     private String checkNameResult;

  92.     protected CorpPaymentRecord() {
  93.         // jaxb required
  94.     }

  95.     public String getTransactionId() {
  96.         return transactionId;
  97.     }

  98.     public String getOutTradeNo() {
  99.         return outTradeNo;
  100.     }

  101.     public String getTransactionStatus() {
  102.         return transactionStatus;
  103.     }

  104.     /**
  105.      * 格式化交易状态
  106.      *
  107.      * @return
  108.      */
  109.     @JSONField(serialize = false)
  110.     public boolean getFormatTransactionStatus() {
  111.         return "success".equalsIgnoreCase(transactionStatus);
  112.     }

  113.     public String getFailureReason() {
  114.         return failureReason;
  115.     }

  116.     public String getOpenId() {
  117.         return openId;
  118.     }

  119.     public String getTransferName() {
  120.         return transferName;
  121.     }

  122.     public int getPaymentAmount() {
  123.         return paymentAmount;
  124.     }

  125.     /**
  126.      * <font color="red">调用接口获取单位为分,get方法转换为元方便使用</font>
  127.      *
  128.      * @return 元单位
  129.      */
  130.     @JSONField(serialize = false)
  131.     public double getFormatPaymentAmount() {
  132.         return paymentAmount / 100d;
  133.     }

  134.     public String getTransferTime() {
  135.         return transferTime;
  136.     }

  137.     /**
  138.      * 格式化转账时间
  139.      *
  140.      * @return
  141.      */
  142.     @JSONField(serialize = false)
  143.     public Date getFormatTransferTime() {
  144.         return transferTime != null ? DateUtil
  145.                 .parse2yyyyMMddHHmmss(transferTime) : null;
  146.     }

  147.     public String getCheckNameType() {
  148.         return checkNameType;
  149.     }

  150.     @JSONField(serialize = false)
  151.     public CorpPaymentCheckNameType getFormatCheckNameType() {
  152.         return checkNameType != null ? CorpPaymentCheckNameType
  153.                 .valueOf(checkNameType) : null;
  154.     }

  155.     public String getDesc() {
  156.         return desc;
  157.     }

  158.     public String getCheckNameResult() {
  159.         return checkNameResult;
  160.     }

  161.     /**
  162.      * 格式化交易状态
  163.      *
  164.      * @return
  165.      */
  166.     @JSONField(serialize = false)
  167.     public boolean getFormatCheckNameResult() {
  168.         return "pass".equalsIgnoreCase(checkNameResult);
  169.     }

  170.     @Override
  171.     public String toString() {
  172.         return "CorpPaymentRecord [transactionId=" + transactionId
  173.                 + ", outTradeNo=" + outTradeNo + ", transactionStatus="
  174.                 + getFormatTransactionStatus() + ", failureReason="
  175.                 + failureReason + ", openId=" + openId + ", transferName="
  176.                 + transferName + ", paymentAmount=" + getFormatPaymentAmount()
  177.                 + ", transferTime=" + transferTime + ", checkNameType="
  178.                 + checkNameType + ", desc=" + desc + ", checkNameResult="
  179.                 + getFormatCheckNameResult() + ", " + super.toString() + "]";
  180.     }
  181. }