package cn.hmsoft.pay.impl.newupay;

/****************************
 * 
 * @note 银联新一代支付请求类 Version: 2.8.3
 * @author revisit@126.com
 * @Company: www.hmsoft.cn
 * @create 2018年2月9日 上午10:20:41
 * @version 4.0.0
 */
public class NewUPayOrderRequest {

	/*************
	 * 必填：AN8
	 * 
	 * 版本号:固定值：20140728
	*/
	private String Version = "20140728";
	/*************
	 * 选填：N1
	 * 
	 * 接入类型:0：商户身份接入（默认）;1:机构接入
	*/
	private String AccessType = "0";

	/*************
	 * 选填：N15
	 * 
	 * 接入机构号:以机构身份接入时必填
	*/
	private String InstuId;
	/*************
	 * 选填：N15
	 * 
	 * 收单机构号:ChinaPay分配
	*/
	private String AcqCode;
	/*************
	 * 必填：N15
	 * 
	 * 商户号:由ChinaPay分配的15位定长数字，用于确认商户身份
	*/
	private String MerId;
	/*************
	 * 必填：AN1..32
	 * 
	 * 商户订单号:必填，变长 32位，同一商户同一交易日期内不可重复
	*/
	private String MerOrderNo;
	/*************
	 * 必填：N8
	 * 
	 * 商户交易日期:商户提交交易的日期，例如交易日期为2015年1月2日，则值为20150102
	*/
	private String TranDate;
	/*************
	 * 必填：N6
	 * 
	 * 商户交易时间:商户提交交易的时间，例如交易时间10点11分22秒，则值为101122
	*/
	private String TranTime;
	/*************
	 * 必填：N1..20
	 * 
	 * 订单金额:单位：分
	*/
	private String OrderAmt;
	/*************
	 * 选填：N4
	 * 
	 * 交易类型:前台页面方式提交交易：商户可以不填此域，ChinaPay会根据商户交易配置在持卡人页面显示商户开通的交易类型，
	 * 由持卡人选择商户已开通的交易类型完成支付。 001个人网银支付 0002企业网银支付 0003授信交易 0004快捷支付 0005账单支付
	 * 0006认证支付 0007分期付款 0008后台支付 0201预授权交易
	*/
	private String TranType;

	/*************
	 * 必填：N4
	 * 
	 * 业务类型:固定值：0001
	*/
	private String BusiType = "0001";
	/*************
	 * 选填：A3
	 * 
	 * 交易币种:默认为人民币：CNY
	*/
	private String CurryNo;
	/*************
	 * 选填：N4
	 * 
	 * 分账类型:不分账不填写此域；如需要分账，填写格式如下： 0001：实时分账 0002：延时分账
	*/
	private String SplitType;

	/*************
	 * 选填：N1
	 * 
	 * 分账方式:不分账不填写此域； 订单分账方式 0：按金额分账 1：按比例分账
	*/
	private String SplitMethod;

	/*************
	 * 选填：ANS0..512
	 * 
	 * 商户订单分账信息:不分账不填写此域；账数据，使用规则： 商户号^金额或比例;商户号^金额或比例
	*/
	private String MerSplitMsg;

	/*************
	 * 选填：AN15
	 * 
	 * 支付机构号:取值参见附录C 无卡（快捷）支付此域传700000000000017
	*/
	private String BankInstNo;

	/*************
	 * 选填：ANS0..256
	 * 
	 * 商户前台通知地址:商户前台页面接收交易结果的地址，用于引导使用者支付后返回商户网站页面
	*/
	private String MerPageUrl;
	/*************
	 * 必填：ANS1..256
	 * 
	 * 商户后台通知地址:商户后台接收交易结果的地址
	*/
	private String MerBgUrl;
	/*************
	 * 选填：ANS0..128
	 * 
	 * 商品信息:用来描述购买商品的信息，ChinaPay原样返回
	*/
	private String CommodityMsg;
	/*************
	 * 选填：ANS0..1024
	 * 
	 * 商户私有域:商户自定义，ChinaPay原样返回
	*/
	private String MerResv;
	/*************
	 * 选填：ANS0..1024
	 * 
	 * 交易扩展域:交易扩展域，JSON格式填写,如：{ BusiId :00000001,P1:123, P2:756,
	 * P3:123,P4:23}。商户自定义使用，商户可根据商户自定义业务字段BusiId来填写P1到P10参数，
	 * 系统会存储P1到P10参数数据，可供商户查询使用。
	*/
	private String TranReserved;

	/*************
	 * 选填：ANS0..1024
	 * 
	 * 有卡交易信息域:商户页面收集卡号的交易必填（如：0003授信交易、0006认证支付、0007分期付款、0008后台消费、0201预授权交易），
	 * JSON格式填写，如：{ CertType :00000001, CertNo :123, CVV2:756, CardNo
	 * :123,CardValidityPeriod
	 * :123}，根据不同交易类型填写不同的卡信息，填写后进行BASE64编码，编码后采用RSA加密。包含字段
	 * ：CertType、CertNo、CVV2、CardNo、CardValidityPeriod
	*/
	private String CardTranData;
	/*************
	 * 选填：N0..5
	 * 
	 * 支付超时时间:单位：分钟，以ChinaPay接收交易的时间为准，超过此时间段后用户支付成功的交易，不通知商户，系统自动退款。若该字段值为0，
	 * 则交易无超时限制。
	*/
	private String PayTimeOut;
	/*************
	 * 选填：ANS0..20
	 * 
	 * 防钓鱼时间戳:当前系统时间，以北京时间为准。格式：YYYYMMDDHHMMSS
	*/
	private String TimeStamp;

	/*************
	 * 必填：ANS1..128
	 * 
	 * 防钓鱼客户浏览器IP:客户浏览器端IP，如商户开通校验IP防钓鱼验证，可填写此域做防钓鱼使用。ChinaPay会获取持卡人访问IP和该字段进行比较
	 * ，如果不一致，则会进行防钓鱼提示或拦截交易
	*/
	private String RemoteAddr;
	/*************
	 * 选填：ANS0..1024
	 * 
	 * 风控数据:Json格式，填写后进行BASE64编码，编码后采用RSA加密
	*/
	private String RiskData;

	/*************
	 * 必填：
	 * 
	 * 签名:商户报文签名信息，报文中的所有字段都参与签名（Signature除外）
	*/
	private String Signature;

	public String getVersion() {
		return Version;
	}

	public void setVersion(String version) {
		Version = version;
	}

	public String getAccessType() {
		return AccessType;
	}

	public void setAccessType(String accessType) {
		AccessType = accessType;
	}

	public String getInstuId() {
		return InstuId;
	}

	public void setInstuId(String instuId) {
		InstuId = instuId;
	}

	public String getAcqCode() {
		return AcqCode;
	}

	public void setAcqCode(String acqCode) {
		AcqCode = acqCode;
	}

	public String getMerId() {
		return MerId;
	}

	public void setMerId(String merId) {
		MerId = merId;
	}

	public String getMerOrderNo() {
		return MerOrderNo;
	}

	public void setMerOrderNo(String merOrderNo) {
		MerOrderNo = merOrderNo;
	}

	public String getTranDate() {
		return TranDate;
	}

	public void setTranDate(String tranDate) {
		TranDate = tranDate;
	}

	public String getTranTime() {
		return TranTime;
	}

	public void setTranTime(String tranTime) {
		TranTime = tranTime;
	}

	public String getOrderAmt() {
		return OrderAmt;
	}

	public void setOrderAmt(String orderAmt) {
		OrderAmt = orderAmt;
	}

	public String getTranType() {
		return TranType;
	}

	public void setTranType(String tranType) {
		TranType = tranType;
	}

	public String getBusiType() {
		return BusiType;
	}

	public void setBusiType(String busiType) {
		BusiType = busiType;
	}

	public String getCurryNo() {
		return CurryNo;
	}

	public void setCurryNo(String curryNo) {
		CurryNo = curryNo;
	}

	public String getSplitType() {
		return SplitType;
	}

	public void setSplitType(String splitType) {
		SplitType = splitType;
	}

	public String getSplitMethod() {
		return SplitMethod;
	}

	public void setSplitMethod(String splitMethod) {
		SplitMethod = splitMethod;
	}

	public String getMerSplitMsg() {
		return MerSplitMsg;
	}

	public void setMerSplitMsg(String merSplitMsg) {
		MerSplitMsg = merSplitMsg;
	}

	public String getBankInstNo() {
		return BankInstNo;
	}

	public void setBankInstNo(String bankInstNo) {
		BankInstNo = bankInstNo;
	}

	public String getMerPageUrl() {
		return MerPageUrl;
	}

	public void setMerPageUrl(String merPageUrl) {
		MerPageUrl = merPageUrl;
	}

	public String getMerBgUrl() {
		return MerBgUrl;
	}

	public void setMerBgUrl(String merBgUrl) {
		MerBgUrl = merBgUrl;
	}

	public String getCommodityMsg() {
		return CommodityMsg;
	}

	public void setCommodityMsg(String commodityMsg) {
		CommodityMsg = commodityMsg;
	}

	public String getMerResv() {
		return MerResv;
	}

	public void setMerResv(String merResv) {
		MerResv = merResv;
	}

	public String getTranReserved() {
		return TranReserved;
	}

	public void setTranReserved(String tranReserved) {
		TranReserved = tranReserved;
	}

	public String getCardTranData() {
		return CardTranData;
	}

	public void setCardTranData(String cardTranData) {
		CardTranData = cardTranData;
	}

	public String getPayTimeOut() {
		return PayTimeOut;
	}

	public void setPayTimeOut(String payTimeOut) {
		PayTimeOut = payTimeOut;
	}

	public String getTimeStamp() {
		return TimeStamp;
	}

	public void setTimeStamp(String timeStamp) {
		TimeStamp = timeStamp;
	}

	public String getRemoteAddr() {
		return RemoteAddr;
	}

	public void setRemoteAddr(String remoteAddr) {
		RemoteAddr = remoteAddr;
	}

	public String getRiskData() {
		return RiskData;
	}

	public void setRiskData(String riskData) {
		RiskData = riskData;
	}

	public String getSignature() {
		return Signature;
	}

	public void setSignature(String signature) {
		Signature = signature;
	}

}
