package com.jsowell.adapay.common;

import lombok.Data;

/**
 * 关于支付，Adapay 系统内数据是通过 Payment对象 的形式进行流转，所有的支付相关信息都会存储在这个对象中，
 * 您可以通过 Adapay 开放的方法创建一个新的 Payment对象，也可以通过 Payment对象 的唯一标识 id 来查询一个已经存在的 Payment对象 状态
 */
@Data
public class AdaPayment {
	/**
	 * String(64)
	 *
	 * 由 Adapay 生成的支付对象 id， 该 id 在 Adapay 系统内唯一
	 */
	private String id;

	/**
	 *
	 * String(20)
	 *
	 * 支付对象，payment
	 */
	private String object;

	/**
	 * Timestamp
	 *
	 * 支付创建时的 10 位时间戳
	 */
	private String created_time;

	/**
	 * String(64)
	 *
	 * 请求订单号，只能为英文、数字或者下划线的一种或多种组合，保证在app_id下唯一
	 */
	private String order_no;

	/**
	 * String(5)
	 *
	 * 是否 prod模式，true 是 prod模式，false 是 mock模式
	 */
	private String prod_mode;

	/**
	 * String(64)
	 *
	 * 控制台 主页面应用的app_id
	 */
	private String app_id;

	/**
	 * String(20)
	 *
	 * 支付渠道，参见 支付渠道 说明
	 */
	private String pay_channel;

	/**
	 * String(16)
	 *
	 * 交易金额（必须大于 0），保留两位小数点，如0.10、100.05等
	 */
	private String pay_amt;

	/**
	 *
	 * String(3)
	 *
	 * 详见 货币代码
	 */
	private String currency;

	/**
	 * String(128)
	 *
	 * 可临时用来查询支付订单状态的链接，此链接的有效期只有30分钟
	 */
	private String query_url;

	/**
	 * String(128)
	 *
	 * 订单附加说明
	 */
	private String description;

	/**
	 * Map
	 *
	 * 支付渠道请求成功返回的额外参数。详见 支付渠道 expend参数 说明
	 */
	private String expend;

	/**
	 * String(64)
	 *
	 * 用户账单上的商户订单号
	 */
	private String party_order_id;

	/**
	 * String(64)
	 *
	 * 用户账单上的交易订单号
	 */
	private String out_trans_id;

	/**
	 * String(14)
	 *
	 * 用户支付完成时间
	 */
	private String end_time;

	/**
	 * String(16)
	 *
	 * 当前交易状态，参见 状态 说明
	 */
	private String status;

	/**
	 *
	 * String(32)
	 *
	 * 错误码，详见 错误
	 */
	private String error_code;

	/**
	 * String(128)
	 *
	 * 错误描述，详见 错误
	 */
	private String error_msg;

	/**
	 * String(32)
	 *
	 * 错误类型，详见 错误
	 */
	private String error_type;

	/**
	 * String(32)
	 *
	 * 当发生参数错误时返回具体的参数名，便于定位错误原因，详见 错误
	 */
	private String invalid_param;

}
