协议支付-自研

大约 8 分钟

协议支付-自研

协议支付

服务IDzjrcuoip.payment.agreemt.self.mch.pay
VERSION1.0.0

服务详细描述

由开放平台接入的商户系统发起的协议支付服务。

注:参数中的必填要求:M为必填项,O为非必填项,C为条件选填项。

示例代码

PlatAgreemtPayDemoOp.java

/**
 * 协议支付-自研
 * 
 * @author
 */
@Service
public class PlatAgreemtPayDemoOp {

	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static void execute() {
		// 1.获取通讯连接对象
		INetTools netTools = NetToolsHttpFactory.getHttpInstance();
		// 2.生成公共请求报文对象
		OipReqBean oipReqBean = new OipReqBean();
		// 设置应用id
		oipReqBean.setAppId("应用id");
		// 设置开发者id
		oipReqBean.setDlpId("开发者id");
		// 设置产品id
		oipReqBean.setProdId("产品id");
		// 设置api方法名
		oipReqBean.setMethod("zjrcuoip.payment.agreemt.self.mch.pay");
		// 设置api版本
		oipReqBean.setVersion("1.0.0");
		// 设置时间戳
	    SimpleDateFormat sfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    oipReqBean.setTimestamp(sfs.format(new Date()));
		// 3.生成请求配置对象,配置请求地址/url等信息
		NetReqConfBean netReqConfBean = new NetReqConfBean();
		// 应用私钥
		netReqConfBean.setAppPrivateKey("应用私钥");
		// 请求地址
		netReqConfBean.setNetUrl("请求地址");
		// 开发者公钥
		netReqConfBean.setPublicKey("开发者公钥");
		// 设置业务报文
		Date d=new Date();
		SimpleDateFormat sf=new SimpleDateFormat("yyyyMMddHHmmss");
		//以map接收所有参数生成业务报文,主要是必输项,具体参考接口文档
		Map map =new HashMap();
        map.put("输入项必输字段", "字段值");
		String bizContent = JSON.toJSONString(map);
		// 生成业务报文json对象
		oipReqBean.setBizContent(bizContent);
		// 通讯获取报文对象
		OipRspBean oipRspBean = netTools.execute(oipReqBean, netReqConfBean);
		// 响应成功
		if (oipRspBean.isSuccess()) {
		    String bizJson = oipRspBean.getBizContent();
		    if (StringUtils.isNotBlank(bizJson)) {
				Map bizData = JSON.parseObject(bizJson, Map.class);
				System.out.println(bizData);
		    }
		}
	}

}

公共报文

[点击查看公共报文]

业务输入项

序号key中文名称是否必输类型长度说明
1mchSeq商户识别号MString32
2txId商户订单号MString3232个字符以内、只能包含字母、数字、下划线,需保证在商户端不重复。
3mrchOrderNo商户原始订单号OString64
4subOrderInfo子订单信息CList合并支付场景下该字段必输,最多支持10个子商户信息,详见subOrderInfo说明 非合并订单支付场景,禁止传入该字段
5purpPrtry业务种类MString7A001001-实物商品租赁 A001002-虚拟商户购买 A001003-预付类账户充值 A001004-航旅交通服务 A001005-活动票务订购 A001006-商业服务消费 A001007-生活服务消费 A001008-其他商家消费 A001009-金融服务
6txDtTm交易时间MDatetime14交易发起时间,格式yyyyMMddHHmmss
7amt交易金额MString15单位为元,精确到小数点后两位。
8ccy交易币种OString3默认CNY-人民币,指amt的币种
9settleCcy结算币种OString3商户指定结算币种,目前仅支持CNY-人民币。
10disctAmt可打折金额OString15参与优惠计算的金额,单位为元,精确到小数点后两位。如果该值未传入,但传入了<交易金额>和<不可打折金额>,则该值默认为<交易金额>-<不可打折金额>
11undisctAmt不可打折金额OString15不参与优惠计算的金额,单位为元,精确到小数点后两位。如果该值未传入,但传入了<交易金额>和<可打折金额>,则该值默认为<交易金额>-<可打折金额>
12subject订单标题MString256商品标题/交易标题/订单标题/订单关键字等。
13conId协议号MString27付款协议号
14signUnqId签约商户场景IDMString24目前指appId
15ip终端IP地址MString45用户端设备IP
16mac终端MAC地址OString32用户端设备MAC
17remark备注OString256备注信息
18attach附加数据OString127附加数据,在通知和查询接口中原样返回,该字段主要用于携带自定义数据。如包含特殊字符需做Base64编码
19txTp交易类型OString201-消费 不上送默认传01
20bizCgy业务类型OString4A001-消费 不上送默认传A001
21conScene消费场景OString3208:协议支付-自研 自研模式默认传08

subOrderInfo说明:

序号key中文名称是否必输类型长度说明
1subTxId子订单号MString32
2subMchSeq子订单商户识别号MString32
3subAmt子订单金额MString15单位为元,精确到小数点后两位。

业务输出项

序号key中文名称是否必输类型长度说明
1bizSts交易状态MString4指消费交易结果。01-交易处理中,02-交易成功,03-交易失败
2bizStsDesp交易状态描述MString255如:交易成功
3rjctRsnCd错误码OString32
4rjctRsn错误描述OString255

以下字段在bizSts为01-交易处理中时有返回:

序号key中文名称是否必输类型长度说明
1msgId交易流水号MString32收单交易系统生成的流水号
2txId商户订单号MString32请求的txId原样返回

以下字段在bizSts为02-交易成功时有返回:

序号key中文名称是否必输类型长度说明
1msgId交易流水号MString32收单交易系统生成的流水号
2txId商户订单号OString32请求的txId原样返回
3mrchOrderNo商户原始订单号OString64
4tradeNo支付流水号MString32支付系统生成的唯一流水号
6mrchNm特约商户简称MString128
8tradeDate交易日期MDate8格式为yyyyMMdd,对账用。
9timeEnd交易完成时间MDatetime14支付成功时有值,格式为yyyyMMddHHmmss。
10tunnel交易通道MString10ZJRCU-丰收互联
11txAmt交易金额MString15单位元,精确到小数点后两位。
12ccy标价币种OString3默认CNY-人民币。指txAmt的币种。
13ftPayAmt用户支付金额OString15买家付款的金额。单位为元,精确到小数点后两位
14ftPayccy用户支付币种OString3默认CNY-人民币。指ftPayAmt的币种。
15payCcyAmt支付币种订单金额OString15单位为元,精确到小数点后两位
16settleCcyAmt结算币种订单金额OString15单位为元,精确到小数点后两位
17settleCcy结算币种OString3商户指定的结算币种,目前仅支持人民币:CNY。
18settleTxRate结算币种兑换标价币种汇率OString32
19transPayRate标价币种兑换支付币种汇率OString32
20settleAmt应结金额MString15单位为元,精确到小数点后两位
21promTtlAmt优惠金额OString15优惠金额<=交易金额,交易金额-优惠金额=用户实付金额。单位为元,精确到小数点后两位
22payInfo支付详情OList详细字段见payInfo说明
23zjrcuPromInfo优惠详情OList详见zjrcuPromInfo说明。

payInfo说明:

序号key中文名称是否必输类型长度说明
1bankCode付款银行OString4
2acctTp支付账户类型MString40102-借记卡;0201-信用卡;0301-电子账户;0401-平台账户;0501-随心花;
3acctNo支付账号/卡号MString32
4amt支付金额MString15单位元,精确到小数点后两位. 当账户类型为借记卡/信用卡/电子账户/平台账户/随心花时,表示对应的账户支付金额; 当账户类型为积分时,表示积分抵扣金额。
5promBranNo营销机构号OString6acctTp为S001-积分时有值

zjrcuPromInfo说明:

序号key中文名称是否必输类型长度说明
1promTp优惠类型MString4PR01-随机减,PR02-票券
2promAmt优惠金额MString15单位为元,精确到小数点后两位。
3voucherId券/红包IDCString64当优惠类型为票券时,必输
4voucherNm券/红包名称CString64
5platContAmt银行出资金额CString15单位元,精确到小数点后两位
6mrchContAmt商户出资金额CString15单位元,精确到小数点后两位
7userContAmt用户支付金额CString15单位为元,精确到小数点后两位。用户在购买券时支付的金额
8promBranNo营销机构号OString6