快捷支付页面版¶
本API为页面版接口需表单提交。
提供了开户、绑卡和支付三合一的接口,并且提供页面让用户录入身份和卡号信息,商户不需要额外调用开户和绑卡接口, 也不需要开发页面采集用户信息,可以快速接入快捷支付功能。这种接入方式支持贷记卡支付。充值场景不支持贷记卡。
充值时:出入款方均为用户;支付时:出款方为用户,入款方为商户。
涉及到的接口包括: 快捷支付页面版接口、 线上交易查询接口 、 线上交易退款接口、 线上退款查询接口。
请求参数¶
- 请求地址
https://spin.cloudpnr.com/top-online-ser/integrationPayPage
- 公共请求参数
请求报文头HEADER - 「接口规则-参数规定-报文头」 ,请求报文体BODY - 「接口规则-参数规定-报文体」 ,响应报文体 - 「接口规则-参数规定-响应报文体」
- 请求参数(data)
参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 |
---|---|---|---|---|
请求流水号 | req_seq_id | 变长64位String | 必须 | |
请求日期 | req_date | 定长8位String | 必须 | YYYYMMDD |
产品号 | product_id | 变长32位String | 必须 | |
商户号 | huifu_id | 变长32位String | 必须 | |
用户号 | user_huifu_id | 变长32位String | 可选 | |
订单金额 | trans_amt | 变长12位String | 必须 | 订单金额,单位元,需保留小数点后两位,例如:1.00,最低传入0.01 |
设备信息 | device_info | String | 必须 | 设备信息 |
网联扩展信息 | nacl_info | String | 可选 | 网联扩展信息 |
异步通知地址 | mer_notice_url | 变长512位String | 必须 | virgo://#{http_server_url} 例:virgo://http://www.xxx.com/getResp |
页面跳转地址 | business_url | 变长120位String | 可选 | 前端跳转地址 virgo://#{http_server_url} |
订单类型 | order_type | 固定1位String | 可选 | P:支付;R:充值, 默认:P |
延时标记 | is_delay_acct | 固定1位String | 可选 | 是否延时交易,1为延迟 0为不延迟 |
分账串 | acct_split_bunch | JSON | 可选 | 请求分账串 |
请求类型 | request_type | 固定1位String | 可选 | P:PC页面版;M:H5页面版, 默认:P |
订单有效期 | time_expire | 固定14位String | 可选 | 订单失效时间 YYYYMMDDHHMMSS格式 |
风控信息 | risk_check_info | 变长4000位String | 必须 | jsonstring, 风控信息 |
商户私有域 | mer_priv | 变长1024位String | 可选 |
设备信息¶
参数 | 中文名 | 类型 | 必填 | 最大长度 | 说明 |
---|---|---|---|---|---|
trx_device_type | 设备类型 | String | Y | 2 | 01:手机,02:平板,03:手表,04:PC |
trx_device_ip | 交易设备IP | String | Y | 45 | 用于标识交易设备IP地址,目前暂传IPv4格式 |
trx_device_mac | 交易设备MAC | String | N | 12 | 去掉特殊的连接符号,如冒号、连接符 |
trx_device_imei | 交易设备IMEI | String | N | 15 | |
trx_device_imsi | 交易设备IMSI | String | N | 15 | |
trx_device_icc_id | 交易设备ICCID | String | N | 20 | |
trx_device_wifi_mac | 交易设备WIFIMAC | String | N | 12 | |
trx_device_gps | 交易设备GPS | String | N | 23 |
网联扩展信息¶
参数 | 中文名 | 类型 | 必填 | 最大长度 | 说明 |
---|---|---|---|---|---|
pyer_trx_trm_tp | 付款方交易终端类型 | String | N | 2 | 01:电脑,02:手机,03:平板设备,04:可穿戴设备,05数字电视,06条码支付受理终端,99其他 |
pyer_trx_trm_no | 付款方交易终端编码 | String | N | 32 | |
pyee_acct_id | 收款方账户编号 | String | N | 34 | |
pyee_nm | 收款方账户名称 | String | N | 60 | 不能包含特殊字符 |
pyee_acct_tp | 收款方账户类型 | String | N | 2 | 03:个人支付账户;04:单位支付账户 |
pyee_trx_trm_tp | 收款方交易终端类型 | String | N | 2 | 01:电脑,02:手机,03:平板设备,04:可穿戴设备,05数字电视,06条码支付受理终端,99其他 |
pyee_trx_trm_no | 收款方交易终端编码 | String | N | 32 | |
mer_type | 商户类型 | String | N | 2 | 01:法人,02:其他组织,03:个体工商户,04:自然人 |
mer_id_type | 商户证件类型 | String | N | 2 | 商户证件类型 |
mer_id_no | 商户证件编码 | String | N | 32 | |
mer_cat_code | 商户行业类别 | String | N | 4 | 商户行业类别 |
goods_short_name | 商品简称 | String | N | 40 | 不能包含特殊字符 |
biz_tp | 业务种类 | String | N | 6 | 业务种类 |
商户证件类型¶
meridType | 备注 |
---|---|
01 | 身份证 |
02 | 军官证 |
03 | 护照 |
04 | 户口簿 |
05 | 士兵证 |
06 | 港澳通行证 |
07 | 台湾通行证 |
08 | 临时身份证 |
09 | 外国人居留证 |
10 | 警官证 |
11 | 营业执照 |
12 | 组织机构代码证 |
13 | 税务登记证 |
14 | 统一社会信用代码证 |
99 | 其他 |
- 异步响应参数(resp_data)
参数 | 中文名 | 类型 | 必填 | 最大长度 | 说明 |
---|---|---|---|---|---|
sub_resp_code | 返回码 | String | Y | 8 | 业务返回码 |
sub_resp_desc | 返回描述 | String | Y | 512 | 业务返回描述 |
req_seq_id | 请求流水号 | String | Y | 64 | |
req_date | 请求日期 | String | Y | 8 | |
hf_seq_id | 汇付流水号 | String | N | 128 | |
product_id | 产品号 | String | Y | 32 | |
huifu_id | 商户号 | String | Y | 32 | |
mer_priv | 商户私有域 | String | N | 1024 | |
trans_amt | 订单金额 | String | N | 12 | |
trans_stat | 交易状态 | String | N | 1 | P:处理中,S:成功,F:失败 |
user_huifu_id | 用户号 | String | N | 32 | |
bank_id | 银行代号 | String | N | 8 | |
debit_flag | 借贷标识 | String | N | 1 | D:借记;C:贷记 |
acct_split_bunch | 分账串 | JSON | N | 返回分账串 | |
fee_amt | 手续费 | String | N | 12 | |
is_delay_acct | 是否延时分账 | String | N | 1 | 0:实时;1:延时 |
is_div | 是否分账交易 | String | N | 1 | 0:非分账交易;1:是分账交易 |
fee_flag | 手续费扣款标志 | String | N | 1 | 1:外扣;2:内扣 |
bank_code | 通道返回码 | String | N | 8 | |
bank_message | 通道返回描述 | String | N | 128 | |
trans_type | 交易类型 | String | Y | 交易类型 |
交易类型¶
transType | 备注 |
---|---|
QUICK_PAY | 快捷支付 |
QUICK_RECHARGE | 快捷充值 |
请求示例¶
java
String url = " https://spin-test.cloudpnr.com/top-online-ser/integrationPayPage";
String data = "{'req_seq_id':'20210111intepay002','req_date':'20210111','product_id':'MYPAY','huifu_id':'6666000103423237','user_huifu_id':'','trans_amt':'1.02','device_info':{'trx_device_type':'01','trx_device_ip':'127.0.0.1'},'mer_notice_url':'virgo://http://www.baidu.com','is_delay_acct':'0','acct_split_bunch':{'fee_huifu_id':'6666000103423237','fee_acct_id':'C00091082','acct_infos':[{'huifu_id':'6666000103423237','acct_id':'C00091082','div_amt':'1.02'}]},'request_type':'P', 'risk_check_info':{'riskMngInfo':{'subTradeType':'4300'}, 'ipAddr':'172.0.0.1'}}";
String sign = "JxLPBAlbKnElfoeAXNSww0a1GZf6KGgAtu2qJdLOQKX7RqxOF/ltU5OvmJAwo1An4dVHB26wTD/mA+aypijAa4jTS2Y666InO++3AYePNorTOCCHha9TAiAEDDwJc7Hnvq0K5ZM51jSuppxlP/lSuFzjv98B8Q5anGAudzroV6dscm8wtDQ4donqcnl+OmNRCYGgjWR/li0sEMQF9CTR0vP2tzRvtDQiDOJOxt/YUpTS746Scl4no83y45CLh8Gy/mIii2IxqBu35IOLl27zkgGcBqYiwWwRoUqZR9waUVel7PFyVypRZBpwD8t3ocTHxVfUUcQ4mpSpVEECb3ROQQ=="; // 加签
StringBuilder sb = new StringBuilder();
sb.append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
sb.append("<HTML>");
sb.append(" <HEAD><TITLE>sender</TITLE></HEAD>");
sb.append(" <BODY style=\"display: none\">");
sb.append("<form name=\"submitForm\" action=\"" + url + "\" method=\"post\">");
sb.append("<input type=\"hidden\" name=\"sign\" value=\"" + sign + "\"/>");
sb.append("<input type=\"hidden\" name=\"data\" value=\"" + data + "\"/>");
sb.append("<input type=\"hidden\" name=\"signType\" value=\"RSA2\"/>");
sb.append("<input type=\"hidden\" name=\"format\" value=\"JSON\"/>");
sb.append("<input type=\"hidden\" name=\"charset\" value=\"UTF-8\"/>");
sb.append("<input type=\"hidden\" name=\"version\" value=\"1.0.0\"/>");
sb.append("<input type=\"hidden\" name=\"sysId\" value=\"TEST\"/>");
sb.append("</from>");
sb.append("<script>window.document.submitForm.submit();</script>");
sb.append(" </BODY>");
sb.append("</HTML>");
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
writer.write(sb.toString());
writer.close();
响应示例¶
页面跳转