package com.repair.model.result;

import lombok.Data;

import javax.xml.bind.annotation.XmlRootElement;

/**
 * 微信支付结果返回
 *
 * @author QT-666
 *
 */
@Data
@XmlRootElement(name="xml")
public class PayResult {
	private String appid;// 微信分配的公众账号ID（企业号corpid即为此appId）
	private String attach;//附加数据，在查询API和支付通知中原样返回，可作为自定义参数使用。
	private String bank_type;// 银行类型，采用字符串类型的银行标识，银行类型见银行列表
	private String fee_type;// 货币类型，符合ISO4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型
	private String is_subscribe;// 用户是否关注公众账号，Y-关注，N-未关注，仅在公众账号类型支付有效
	private String mch_id;// 微信支付分配的商户号
	private String nonce_str;// 随机字符串，不长于32位
	private String openid;// 用户在商户appid下的唯一标识
	private String out_trade_no;// 商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*@
								// ，且在同一个商户号下唯一。
	private String result_code;// SUCCESS/FAIL
	private String return_code;// 此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
	private String sign;// 签名，详见签名算法
	private String sub_mch_id;//
	private String time_end;// 支付完成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则
	private int total_fee;// 订单总金额，单位为分
	private String trade_type;// JSAPI、NATIVE、APP
	private String transaction_id;// 微信支付订单号
	private int cash_fee;// 现金金额

	private String device_info; //微信支付分配的终端设备号，
    private String sign_type;//签名类型，目前支持HMAC-SHA256和MD5，默认为MD5
    private String settlement_total_fee ;//应结订单金额=订单金额-非充值代金券金额，应结订单金额<=订单金额。
    private String cash_fee_type;//货币类型，符合ISO4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型
    private String  coupon_fee;//代金券金额<=订单金额，订单金额-代金券金额=现金支付金额，详见支付金额
    private String coupon_count;//代金券使用数量
    private String coupon_type_$n;// CASH--充值代金券 NO_CASH---非充值代金券 仅在使用了免充值代金券时有返回（取值：CASH、NO_CASH）。$n为下标,从0开始编号，举例：coupon_type_0
    private String coupon_id_$n;//代金券ID,$n为下标，从0开始编号
    private String coupon_fee_$n;//单个代金券支付金额,$n为下标，从0开始编号
	private String trade_state;

	@Override
	public String toString() {
		return "PayResult [appid=" + appid + ", attach=" + attach
				+ ", bank_type=" + bank_type + ", fee_type=" + fee_type
				+ ", is_subscribe=" + is_subscribe + ", mch_id=" + mch_id
				+ ", nonce_str=" + nonce_str + ", openid=" + openid
				+ ", out_trade_no=" + out_trade_no + ", result_code="
				+ result_code + ", return_code=" + return_code + ", sign="
				+ sign + ", sub_mch_id=" + sub_mch_id + ", time_end="
				+ time_end + ", total_fee=" + total_fee + ", trade_type="
				+ trade_type + ", transaction_id=" + transaction_id
				+ ", cash_fee=" + cash_fee +",trade_state="+trade_state;
	}

}
