All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.binarywang.wxpay.bean.request.WxPayOrderReverseRequest Maven / Gradle / Ivy

There is a newer version: 4.6.9.B
Show newest version
package com.github.binarywang.wxpay.bean.request;

import com.github.binarywang.wxpay.exception.WxPayException;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import org.apache.commons.lang3.StringUtils;

/**
 * 
 * 撤销订单请求类
 * Created by Binary Wang on 2017-3-23.
 * @author binarywang(Binary Wang)
 * 
*/ @XStreamAlias("xml") public class WxPayOrderReverseRequest extends WxPayBaseRequest { /** *
   * 微信订单号
   * transaction_id
   * String(28)
   * 1217752501201400000000000000
   * 微信的订单号,优先使用
   * 
*/ @XStreamAlias("transaction_id") private String transactionId; /** *
   * 商户订单号
   * out_trade_no
   * String(32)
   * 1217752501201400000000000000
   * 商户系统内部的订单号
   * transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no
   * 
*/ @XStreamAlias("out_trade_no") private String outTradeNo; /** *
   * 签名类型
   * sign_type
   * 否
   * String(32)
   * HMAC-SHA256
   * 签名类型,目前支持HMAC-SHA256和MD5,默认为MD5
   **/
  @XStreamAlias("sign_type")
  private String signType;

  private WxPayOrderReverseRequest(Builder builder) {
    setTransactionId(builder.transactionId);
    setAppid(builder.appid);
    setOutTradeNo(builder.outTradeNo);
    setMchId(builder.mchId);
    setSignType(builder.signType);
    setSubAppId(builder.subAppId);
    setSubMchId(builder.subMchId);
    setNonceStr(builder.nonceStr);
    setSign(builder.sign);
  }

  public static Builder newBuilder() {
    return new Builder();
  }

  public String getTransactionId() {
    return this.transactionId;
  }

  public void setTransactionId(String transactionId) {
    this.transactionId = transactionId;
  }

  public String getOutTradeNo() {
    return this.outTradeNo;
  }

  public void setOutTradeNo(String outTradeNo) {
    this.outTradeNo = outTradeNo;
  }

  public String getSignType() {
    return this.signType;
  }

  public void setSignType(String signType) {
    this.signType = signType;
  }

  @Override
  protected void checkConstraints() throws WxPayException {
    if (StringUtils.isBlank(transactionId) && StringUtils.isBlank(outTradeNo)) {
      throw new WxPayException("transaction_id 和 out_trade_no不能同时为空!");
    }
  }

  public static final class Builder {
    private String transactionId;
    private String appid;
    private String outTradeNo;
    private String mchId;
    private String signType;
    private String subAppId;
    private String subMchId;
    private String nonceStr;
    private String sign;

    private Builder() {
    }

    public Builder transactionId(String transactionId) {
      this.transactionId = transactionId;
      return this;
    }

    public Builder appid(String appid) {
      this.appid = appid;
      return this;
    }

    public Builder outTradeNo(String outTradeNo) {
      this.outTradeNo = outTradeNo;
      return this;
    }

    public Builder mchId(String mchId) {
      this.mchId = mchId;
      return this;
    }

    public Builder signType(String signType) {
      this.signType = signType;
      return this;
    }

    public Builder subAppId(String subAppId) {
      this.subAppId = subAppId;
      return this;
    }

    public Builder subMchId(String subMchId) {
      this.subMchId = subMchId;
      return this;
    }

    public Builder nonceStr(String nonceStr) {
      this.nonceStr = nonceStr;
      return this;
    }

    public Builder sign(String sign) {
      this.sign = sign;
      return this;
    }

    public WxPayOrderReverseRequest build() {
      return new WxPayOrderReverseRequest(this);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy