package com.neusoft.smart.pos.dto.payment.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author zcf
 * @date 2018-01-08 10：43
 * @description 订单支付状态查询使用Response
 */
@ApiModel
@Data
public class PostQueryOrderResponse {

	@ApiModelProperty(name = "mcode", value = "商户号(聚合支付平台提供)", dataType = "String" ,example="NEU226104452154865")
	private String mcode;

	@ApiModelProperty(name = "payCode", value = "第三方支付单号(支付二维码)", dataType = "String" ,example="weixin：//wxpay/s/An4baqw")
	public String payCode;

	@ApiModelProperty(name = "timeExpire", value = "订单失效时间，格式为yyyyMMddHHmmss，有效时间至少5分钟,如果为空默认为2小时", dataType = "String" ,example="20180129172506")
	private String timeExpire;

	@ApiModelProperty(name = "tradeId", value = "聚合支付平台流水号", dataType = "String" ,example="151720983735135147")
	private String tradeId;

	@ApiModelProperty(name = "outerTradeNumber", value = "第三方支付平台支付流水号(支付成功后会返回)", dataType = "String" ,example="wx20180129151039d010396eb60382461353")
	private String outerTradeNumber;

	@ApiModelProperty(name = "orderNumber", value = "业务系统订单号", dataType = "String" ,example="201801301122")
	private String orderNumber;

	@ApiModelProperty(name = "payType", value = "支付方式(@1:微信扫码支付@2:支付宝扫码支付@3:支付宝当面资金授权支付@4:银联二维码支付)", dataType = "String" ,example="1",required=true)
	private String payType;

	@ApiModelProperty(name = "orderStatus", value = "订单状态(@1:待支付@2:已支付@3:退款中@4:已退款@5交易关闭)", dataType = "String" ,example="1",required=true)
	private String orderStatus;

	@ApiModelProperty(name = "sign", value = "签名(MD5加密字符串)", dataType = "String" ,example="5CFB108E5A9CAA78B141251BC2BD7F74",required=true)
	private String sign;
	
	public PostQueryOrderResponse() {
	}

	public PostQueryOrderResponse(String mcode,String payType,String payCode,String timeExpire,String tradeId,String outerTradeNumber,String orderNumber,String orderStatus) {
		this.mcode = mcode;
		this.payType = payType;
		this.payCode = payCode;
		this.timeExpire = timeExpire;
		this.tradeId = tradeId;
		this.outerTradeNumber = outerTradeNumber;
		this.orderNumber = orderNumber;
		this.orderStatus = orderStatus;
	}
}
