协议支付-服务商
大约 8 分钟
协议支付-服务商
协议支付
服务ID | zjrcuoip.payment.agreemt.mch.pay |
---|---|
VERSION | 1.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.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 | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | mchSeq | 商户识别号 | M | String | 32 | |
2 | txId | 商户订单号 | M | String | 32 | 32个字符以内、只能包含字母、数字、下划线,需保证在商户端不重复。 |
3 | mrchOrderNo | 商户原始订单号 | O | String | 64 | |
4 | subOrderInfo | 子订单信息 | C | List | 合并支付场景下该字段必输,最多支持10个子商户信息,详见subOrderInfo说明 非合并订单支付场景,禁止传入该字段 | |
5 | purpPrtry | 业务种类 | M | String | 7 | A001001-实物商品租赁 A001002-虚拟商户购买 A001003-预付类账户充值 A001004-航旅交通服务 A001005-活动票务订购 A001006-商业服务消费 A001007-生活服务消费 A001008-其他商家消费 A001009-金融服务 |
6 | txDtTm | 交易时间 | M | Datetime | 14 | 交易发起时间,格式yyyyMMddHHmmss |
7 | amt | 交易金额 | M | String | 15 | 单位为元,精确到小数点后两位。 |
8 | ccy | 交易币种 | O | String | 3 | 默认CNY-人民币,指amt的币种 |
9 | settleCcy | 结算币种 | O | String | 3 | 商户指定结算币种,目前仅支持CNY-人民币。 |
10 | disctAmt | 可打折金额 | O | String | 15 | 参与优惠计算的金额,单位为元,精确到小数点后两位。如果该值未传入,但传入了<交易金额>和<不可打折金额>,则该值默认为<交易金额>-<不可打折金额> |
11 | undisctAmt | 不可打折金额 | O | String | 15 | 不参与优惠计算的金额,单位为元,精确到小数点后两位。如果该值未传入,但传入了<交易金额>和<可打折金额>,则该值默认为<交易金额>-<可打折金额> |
12 | subject | 订单标题 | M | String | 256 | 商品标题/交易标题/订单标题/订单关键字等。 |
13 | conId | 协议号 | M | String | 27 | 付款协议号 |
14 | signUnqId | 签约商户场景ID | M | String | 24 | 目前指appId |
15 | ip | 终端IP地址 | M | String | 45 | 用户端设备IP |
16 | mac | 终端MAC地址 | O | String | 32 | 用户端设备MAC |
17 | remark | 备注 | O | String | 256 | 备注信息 |
18 | attach | 附加数据 | O | String | 127 | 附加数据,在通知和查询接口中原样返回,该字段主要用于携带自定义数据。如包含特殊字符需做Base64编码 |
19 | txTp | 交易类型 | O | String | 2 | 01-消费 不上送默认传01 |
20 | bizCgy | 业务类型 | O | String | 4 | A001-消费 不上送默认传A001 |
21 | conScene | 消费场景 | M | String | 32 | 07:协议支付-服务商 |
subOrderInfo说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | subTxId | 子订单号 | M | String | 32 | |
2 | subMchSeq | 子订单商户识别号 | M | String | 32 | |
3 | subAmt | 子订单金额 | M | String | 15 | 单位为元,精确到小数点后两位。 |
业务输出项
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | bizSts | 交易状态 | M | String | 4 | 指消费交易结果。01-交易处理中,02-交易成功,03-交易失败 |
2 | bizStsDesp | 交易状态描述 | M | String | 255 | 如:交易成功 |
3 | rjctRsnCd | 错误码 | O | String | 32 | |
4 | rjctRsn | 错误描述 | O | String | 255 |
以下字段在bizSts为01-交易处理中时有返回:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | msgId | 交易流水号 | M | String | 32 | 收单交易系统生成的流水号 |
2 | txId | 商户订单号 | M | String | 32 | 请求的txId原样返回 |
以下字段在bizSts为02-交易成功时有返回:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | msgId | 交易流水号 | M | String | 32 | 收单交易系统生成的流水号 |
2 | txId | 商户订单号 | O | String | 32 | 请求的txId原样返回 |
3 | mrchOrderNo | 商户原始订单号 | O | String | 64 | |
4 | tradeNo | 支付流水号 | M | String | 32 | 支付系统生成的唯一流水号 |
6 | mrchNm | 特约商户简称 | M | String | 128 | |
8 | tradeDate | 交易日期 | M | Date | 8 | 格式为yyyyMMdd,对账用。 |
9 | timeEnd | 交易完成时间 | M | Datetime | 14 | 支付成功时有值,格式为yyyyMMddHHmmss。 |
10 | tunnel | 交易通道 | M | String | 10 | ZJRCU-丰收互联 |
11 | txAmt | 交易金额 | M | String | 15 | 单位元,精确到小数点后两位。 |
12 | ccy | 标价币种 | O | String | 3 | 默认CNY-人民币。指txAmt的币种。 |
13 | ftPayAmt | 用户支付金额 | O | String | 15 | 买家付款的金额。单位为元,精确到小数点后两位 |
14 | ftPayccy | 用户支付币种 | O | String | 3 | 默认CNY-人民币。指ftPayAmt的币种。 |
15 | payCcyAmt | 支付币种订单金额 | O | String | 15 | 单位为元,精确到小数点后两位 |
16 | settleCcyAmt | 结算币种订单金额 | O | String | 15 | 单位为元,精确到小数点后两位 |
17 | settleCcy | 结算币种 | O | String | 3 | 商户指定的结算币种,目前仅支持人民币:CNY。 |
18 | settleTxRate | 结算币种兑换标价币种汇率 | O | String | 32 | |
19 | transPayRate | 标价币种兑换支付币种汇率 | O | String | 32 | |
20 | settleAmt | 应结金额 | M | String | 15 | 单位为元,精确到小数点后两位 |
21 | promTtlAmt | 优惠金额 | O | String | 15 | 优惠金额<=交易金额,交易金额-优惠金额=用户实付金额。单位为元,精确到小数点后两位 |
22 | payInfo | 支付详情 | O | List | 详细字段见payInfo说明 | |
23 | zjrcuPromInfo | 优惠详情 | O | List | 详见zjrcuPromInfo说明。 |
payInfo说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | bankCode | 付款银行 | O | String | 4 | |
2 | acctTp | 支付账户类型 | M | String | 4 | 0102-借记卡;0201-信用卡;0301-电子账户;0401-平台账户;0501-随心花; |
3 | acctNo | 支付账号/卡号 | M | String | 32 | |
4 | amt | 支付金额 | M | String | 15 | 单位元,精确到小数点后两位. 当账户类型为借记卡/信用卡/电子账户/平台账户/随心花时,表示对应的账户支付金额; 当账户类型为积分时,表示积分抵扣金额。 |
5 | promBranNo | 营销机构号 | O | String | 6 | acctTp为S001-积分时有值 |
zjrcuPromInfo说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | promTp | 优惠类型 | M | String | 4 | PR01-随机减,PR02-票券 |
2 | promAmt | 优惠金额 | M | String | 15 | 单位为元,精确到小数点后两位。 |
3 | voucherId | 券/红包ID | C | String | 64 | 当优惠类型为票券时,必输 |
4 | voucherNm | 券/红包名称 | C | String | 64 | |
5 | platContAmt | 银行出资金额 | C | String | 15 | 单位元,精确到小数点后两位 |
6 | mrchContAmt | 商户出资金额 | C | String | 15 | 单位元,精确到小数点后两位 |
7 | userContAmt | 用户支付金额 | C | String | 15 | 单位为元,精确到小数点后两位。用户在购买券时支付的金额 |
8 | promBranNo | 营销机构号 | O | String | 6 |