package cn.hmsoft.pay.impl.weixin.entity;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

/****************************************************
 * 支付通知
 * 
 * @author: 张小庆
 * @date: 2016年9月16日 下午8:03:23
 * @version: 2.0.0
 * @email: revisit@126.com
 * @Company: www.hmsoft.cn
 */
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class PayNoticeResponse {
	// 返回状态码 SUCCESS/FAIL 此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
	private String return_code;
	// 返回信息 返回信息，如非空，为错误原因
	private String return_msg;
	// 公众账号ID
	private String appid;
	// 商户号
	private String mch_id;
	// 设备号
	private String device_info;
	// 随机字符串
	private String nonce_str;
	// 签名
	private String sign;
	// 业务结果
	private String result_code;
	//<xml><appid><![CDATA[wxc45466e520132a44]]></appid><bank_type><![CDATA[CFT]]></bank_type><cash_fee><![CDATA[19982]]></cash_fee><coupon_count><![CDATA[1]]></coupon_count><coupon_fee>18</coupon_fee><coupon_fee_0><![CDATA[18]]></coupon_fee_0><coupon_id_0><![CDATA[2000000002182949158]]></coupon_id_0><device_info><![CDATA[WEB]]></device_info><fee_type><![CDATA[CNY]]></fee_type><is_subscribe><![CDATA[Y]]></is_subscribe><mch_id><![CDATA[1385815202]]></mch_id><nonce_str><![CDATA[33SMYFDJC39H14OCMZVEKAYTHIHV0LRA]]></nonce_str><openid><![CDATA[o6RNZxP9ObCsor8J2X8FDAfEdp0k]]></openid><out_trade_no><![CDATA[WX_1_20180120122207_00041387]]></out_trade_no><result_code><![CDATA[SUCCESS]]></result_code><return_code><![CDATA[SUCCESS]]></return_code><sign><![CDATA[E5079DC50A24096415D1412804FC332A]]></sign><time_end><![CDATA[20180120122217]]></time_end><total_fee>20000</total_fee><trade_type><![CDATA[JSAPI]]></trade_type><transaction_id><![CDATA[4200000058201801207405000612]]></transaction_id></xml>

	//优惠
	private Integer coupon_count;
	// 错误代码
	private String err_code;
	// 错误代码描述
	private String err_code_des;
	// 用户标识
	private String openid;
	// 是否关注公众账号 用户是否关注公众账号，Y-关注，N-未关注，仅在公众账号类型支付有效
	private String is_subscribe;
	// 交易类型 JSAPI、NATIVE、APP
	private String trade_type;
	// 付款银行
	private String bank_type;
	// 订单金额 订单总金额，单位为分
	private Integer total_fee;
	// 应结订单金额 应结订单金额=订单金额-非充值代金券金额，应结订单金额<=订单金额
	private Integer settlement_total_fee;
	// 货币种类
	private String fee_type;
	// 现金支付金额
	private Integer cash_fee;
	// 现金支付货币类型
	private String cash_fee_type;
	// 微信支付订单号
	private String transaction_id;
	// 商户系统的订单号，与请求一致
	private String out_trade_no;
	// 商家数据包，原样返回
	private String attach;
	// 支付完成时间
	private String time_end;

	private String xml_value;

	public String getReturn_code() {
		return return_code;
	}

	public void setReturn_code(String return_code) {
		this.return_code = return_code;
	}

	public String getReturn_msg() {
		return return_msg;
	}

	public void setReturn_msg(String return_msg) {
		this.return_msg = return_msg;
	}

	public String getAppid() {
		return appid;
	}

	public void setAppid(String appid) {
		this.appid = appid;
	}

	public String getMch_id() {
		return mch_id;
	}

	public void setMch_id(String mch_id) {
		this.mch_id = mch_id;
	}

	public String getDevice_info() {
		return device_info;
	}

	public void setDevice_info(String device_info) {
		this.device_info = device_info;
	}

	public String getNonce_str() {
		return nonce_str;
	}

	public void setNonce_str(String nonce_str) {
		this.nonce_str = nonce_str;
	}

	public String getSign() {
		return sign;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

	public String getResult_code() {
		return result_code;
	}

	public void setResult_code(String result_code) {
		this.result_code = result_code;
	}

	public String getErr_code() {
		return err_code;
	}

	public void setErr_code(String err_code) {
		this.err_code = err_code;
	}

	public String getErr_code_des() {
		return err_code_des;
	}

	public void setErr_code_des(String err_code_des) {
		this.err_code_des = err_code_des;
	}

	public String getOpenid() {
		return openid;
	}

	public void setOpenid(String openid) {
		this.openid = openid;
	}

	public String getIs_subscribe() {
		return is_subscribe;
	}

	public void setIs_subscribe(String is_subscribe) {
		this.is_subscribe = is_subscribe;
	}

	public String getTrade_type() {
		return trade_type;
	}

	public void setTrade_type(String trade_type) {
		this.trade_type = trade_type;
	}

	public String getBank_type() {
		return bank_type;
	}

	public void setBank_type(String bank_type) {
		this.bank_type = bank_type;
	}

	public Integer getTotal_fee() {
		return total_fee;
	}

	public void setTotal_fee(Integer total_fee) {
		this.total_fee = total_fee;
	}

	public Integer getSettlement_total_fee() {
		return settlement_total_fee;
	}

	public void setSettlement_total_fee(Integer settlement_total_fee) {
		this.settlement_total_fee = settlement_total_fee;
	}

	public String getFee_type() {
		return fee_type;
	}

	public void setFee_type(String fee_type) {
		this.fee_type = fee_type;
	}

	public Integer getCash_fee() {
		return cash_fee;
	}

	public void setCash_fee(Integer cash_fee) {
		this.cash_fee = cash_fee;
	}

	public String getCash_fee_type() {
		return cash_fee_type;
	}

	public void setCash_fee_type(String cash_fee_type) {
		this.cash_fee_type = cash_fee_type;
	}

	public String getTransaction_id() {
		return transaction_id;
	}

	public void setTransaction_id(String transaction_id) {
		this.transaction_id = transaction_id;
	}

	public String getOut_trade_no() {
		return out_trade_no;
	}

	public void setOut_trade_no(String out_trade_no) {
		this.out_trade_no = out_trade_no;
	}

	public String getAttach() {
		return attach;
	}

	public void setAttach(String attach) {
		this.attach = attach;
	}

	public String getTime_end() {
		return time_end;
	}

	public void setTime_end(String time_end) {
		this.time_end = time_end;
	}

	public String getXml_value() {
		return xml_value;
	}

	public void setXml_value(String xml_value) {
		this.xml_value = xml_value;
	}

	public Integer getCoupon_count() {
		return coupon_count;
	}

	public void setCoupon_count(Integer coupon_count) {
		this.coupon_count = coupon_count;
	}

}
