业务说明

应用场景

用于网银支付业务,付款人的银行卡需要预先在银行网银或柜面开通网银支付功能可进行支付。商户调用该接口获取网银提交页面html,引导用户浏览器跳转至银行网银页面,用户在网银页面完成支付,支持个人网银和企业网银。

支付模式

商户可根据需求自由选择支付模式:
模式一:支付过程中展示通道方的银行选择页面,展示商户在控台配置好的所有银行,客户选完银行后展示银行网银页面。
模式二:调接口时指定银行,通道方页面只显示指定的银行,用户按要求通过指定银行支付。

两种模式可通过接口请求参数的bank_id(付款方银行编码)区分,不上送bank_id代表模式一,商户获取通道方的银行选择页面URL;上送bank_id代表模式二,商户获取指定的银行网银页面URL。

可通过调用【4.35 网银支持银行列表查询】接口获取支持银行的最新数据。

交易请求报文

JSON:

  1. {
  2. "request_type": "online_bankpay_request",
  3. "isspid": "39493002",
  4. "pos_id": "1511300001",
  5. "store_id": "1511300001",
  6. "pos_seq": "2018121400000004",
  7. "user_id": "user01",
  8. "system_id": "8888",
  9. "device_type": "4",
  10. "device_ip": "127.0.0.1",
  11. "memo": "订单备注",
  12. "online_bankpay_request": {
  13. "tx_amt": "1",
  14. "order_type": "P",
  15. "card_type": "D",
  16. "time_expire": "20221128235959",
  17. "goods_desc": "个人电脑",
  18. "gate_type": "01",
  19. "goods_short_name": "个人电脑",
  20. "gw_chnnl_tp": "01",
  21. "biz_tp": "100099",
  22. "bank_id": "01040000",
  23. "front_url": "https://www.baidu.com/",
  24. "notify_url": "https://www.baidu.com/",
  25. "extend_params": {
  26. "split_flag": "R",
  27. "plan_split_date": "20230418",
  28. "split_info": {
  29. "keep_amt": "800",
  30. "split_list": [
  31. {
  32. "merchant_id": "10000000000001",
  33. "div_amt": "150"
  34. },
  35. {
  36. "merchant_id": "10000000000002",
  37. "div_amt": "50"
  38. }
  39. ]
  40. }
  41. }
  42. },
  43. "sign": "314DA43E7E244105ECBD45F797264854"
  44. }

XML:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <business_trans>
  3. <request_type>online_bankpay_request</request_type>
  4. <isspid>39493002</isspid>
  5. <pos_id>1511300001</pos_id>
  6. <store_id>1511300001</store_id>
  7. <pos_seq>1511300000002</pos_seq>
  8. <user_id>user01</user_id>
  9. <system_id>8888</system_id>
  10. <device_type>4</device_type>
  11. <device_ip>127.0.0.1</device_ip>
  12. <memo>订单备注</memo>
  13. <online_bankpay_request>
  14. <tx_amt>1</tx_amt>
  15. <order_type>P</order_type>
  16. <card_type>D</card_type>
  17. <time_expire>20221128235959</time_expire>
  18. <goods_desc>个人电脑</goods_desc>
  19. <gate_type>01</gate_type>
  20. <goods_short_name>个人电脑</goods_short_name>
  21. <gw_chnnl_tp>01</gw_chnnl_tp>
  22. <biz_tp>100099</biz_tp>
  23. <bank_id>01040000</bank_id>
  24. <front_url><![CDATA[https://www.baidu.com/]]></front_url>
  25. <notify_url><![CDATA[https://www.baidu.com/]]></notify_url>
  26. <extend_params><![CDATA[扩展参数(JSONObject)]]></extend_params>
  27. </online_bankpay_request>
  28. </business_trans>

交易请求报文说明

节点名称中文名称类型说明是否必填
sign报文签名String(32)请求报文格式为JSON时必填
计算签名方式请看2.1章节
可空
request_type请求类型String(32)固定值:online_bankpay_request必填
isspid商户号String(8)翼码商户号,由翼码提供必填
pos_id终端号String(20)商户自定义终端号必填
store_id门店号String(20)商户自定义门店号必填
pos_seq支付请求流水号String(32)同一个翼码商户号下唯一,不可重复使用,且大于12位必填
user_id操作员标识String(20)操作员号可空
system_id系统平台号String(4)由翼码提供必填
device_type设备类型String(1)2:平板
4:PC
发起交易设备的类型
必填
device_ip设备IPString(15)发起交易设备的公网IP必填
memo订单备注String(128)可空
online_bankpay_request
->tx_amt
交易金额Number(9)支付金额,单位为分,不支持小数点必填
online_bankpay_request
->order_type
订单类型String(1)P:支付
R:充值
必填
online_bankpay_request
->card_type
卡类型String(1)D:借记卡
C:贷记卡(信用卡)
必填
online_bankpay_request
->time_expire
订单失效时间String(14)格式yyyyMMddHHmmss
注:工商银行需传90min以上方能成功
必填
online_bankpay_request
->goods_desc
商品描述String(64)必填
online_bankpay_request
->gate_type
网关支付类型String(2)01:个人网关
02:企业网关
必填
online_bankpay_request
->goods_short_name
商品简称String(40)不能包含特殊字符
详细字符见下文
必填
online_bankpay_request
->gw_chnnl_tp
网关支付受理渠道String(2)01:电脑浏览器
02:手机浏览器
03:手机应用程序
99:其他
必填
online_bankpay_request
->biz_tp
业务种类String(6)取值详见【7.1 业务种类】必填
online_bankpay_request
->bank_id
付款方银行编码String(8)若未填入付款方银行编码时,同步返回银行选择页面(模式一);
若填入付款方银行编码时,同步返回具体银行页面(模式二)。
取值详见【7.2 银行编码】
可空
online_bankpay_request
->front_url
页面跳转地址String(120)页面跳转地址,跳转至商户前端地址
具体说明见下文
格式以http或https开头
使用XML格式报文时,建议使用CDATA标签包裹内容
可空
online_bankpay_request
->notify_url
异步通知地址String(256)异步通知文档见4.20
使用XML格式报文时,建议使用CDATA标签包裹内容
可空
online_bankpay_request
->extend_params
扩展参数JSONObject用于扩展一些特殊的支付参数字段,详细参数见下表
使用XML格式报文时,建议使用CDATA标签包裹内容
可空

自定义门店号(store_id)和自定义终端号(pos_id)需经过4.1终端绑定交易接口绑定成功过的值才可以调用,绑定一次即可不需要重复绑定。

goods_short_name 商品简称

不能包含的特殊字符如下:<、>、&、'、"、|、%、#、^、-

front_url 页面跳转地址

  1. front_url若传入:交易在通道提供的支付页未跳转至银行页出现失败,通道方将交易同步回调数据data通过支付结果页面,以form表单POST的请求方式提交,将data结果传给商户。
  2. front_url若传入:银行处理完成后会提示“返回商户”,此时点击返回,通道方会回调跳转到商户指定的页面front_url。
  3. front_url不传入:支付成功或失败,均会在通道提供的支付结果页面展示结果。

extend_params 扩展参数

JSON节点类型说明是否必填范例
split_flagString分账标识
N:不分账
R:实时分账
D:延时分账
不传该节点时,将按控制台配置处理
该节点与分账功能相关具体联系业务确认开通功能
可空R
plan_split_dateString预分账日期,格式:yyyymmdd
仅延时分账类型(split_flag=D)时支持传入
可空20230418
split_infoJSONObject分账信息
仅支持请求实时分账split_flag=R
该节点与分账功能相关具体联系业务确认开通功能
可空 

分账业务相关的特别说明:
1. split_flag=N 不分账时,split_info不允许传入;
2. split_flag=R 实时分账时,split_info必传,其中keep_amt与div_amt叠加必须全额分完整笔订单;
3. split_flag=D 延时分账时,split_info不允许传入,在后续流程中调用延迟交易确认接口完成分账,或使用翼码分账系统界面进行分账。

split_info 分账信息

JSON节点类型说明是否必填范例
is_clean_splitStringN:不使用净值分账
Y:使用净值分账
不传默认为N,即不使用净值分账
净值分账目前仅对部分通道开放,使用此能力前请先与技术支持确认
净值分账仅在交易手续费内扣时才起作用
当使用净值分账时,分账信息和分账明细必须要传分账比例,且分账方自留比例(keep_percentage)与所有分账比例(div_percentage)之和必须要为100%
可空Y
keep_amtString分账方自留金额,单位为分,可传0表示不自留
不使用净值分账(is_clean_split=N)时,该节点必填,分账方自留比例(keep_percentage)节点无效
可空1000
keep_percentageString分账方自留比例,单位为%,最多支持小数点后两位,可传0表示不自留
使用净值分账(is_clean_split=Y)时,该节点必填,分账方自留金额(keep_amt)节点无效
可空50.26
split_listArray分账明细必填 
split_list 分账明细
JSON节点类型说明是否必填范例
merchant_idString分账接收方的分账商户号必填10000000000001
div_amtString分账金额,单位为分,必须大于0
不使用净值分账(is_clean_split=N)时,该节点必填,分账比例(div_percentage)节点无效
可空1000
div_percentageString分账比例,单位为%,最多支持小数点后两位,必须大于0
使用净值分账(is_clean_split=Y)时,该节点必填,分账金额(div_amt)节点无效
可空23.55

若业务涉及100%分账给接收方,请于业务对接人联系申请使用净值分账功能。

extend_params 样例:

  1. {
  2. "split_flag": "R",
  3. "plan_split_date": "20230418",
  4. "split_info": {
  5. "keep_amt": "800",
  6. "split_list": [
  7. {
  8. "merchant_id": "10000000000001",
  9. "div_amt": "150"
  10. },
  11. {
  12. "merchant_id": "10000000000002",
  13. "div_amt": "50"
  14. }
  15. ]
  16. }
  17. }

交易返回报文

JSON:

  1. {
  2. "response_type": "online_bankpay_response",
  3. "isspid": "39493002",
  4. "pos_id": "6666666666",
  5. "pos_seq": "2018121400000004",
  6. "trans_time": "20181214143516",
  7. "sys_seq": "0741136885a748c1",
  8. "form_url": "https://spin.cloudpnr.com/web/bankpay?templateId=1&hfSeqId=default220715",
  9. "result": {
  10. "id": "9998",
  11. "comment": "下单成功,等待用户支付"
  12. },
  13. "sign": "F6106656C20AB23B547B0C30DD819793"
  14. }

XML:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <business_trans>
  3. <response_type>online_bankpay_response</response_type>
  4. <isspid>39493002</isspid>
  5. <pos_id>1511300001</pos_id>
  6. <pos_seq>1511300000002</pos_seq>
  7. <sys_seq>0311095321465179</sys_seq>
  8. <trans_time>20160311095321</trans_time>
  9. <form_url><![CDATA[https://spin.cloudpnr.com/web/bankpay?templateId=1&hfSeqId=default220715]]></form_url>
  10. <result>
  11. <id>9998</id>
  12. <comment>下单成功,等待用户支付</comment>
  13. </result>
  14. </business_trans>

交易返回报文说明

标准接口会因业务升级需要而新增节点,请在解析返回报文时避免新增未知节点产生的程序出错!

节点名称中文名称类型说明是否必填
sign报文签名String(32)返回报文格式为JSON时必填
计算签名方式请看2.1章节
可选
response_type返回类型String(32)固定值:online_bankpay_response必填
isspid商户号String(8)翼码商户号,由翼码提供必填
pos_id终端号String(20)商户自定义终端号必填
pos_seq支付请求流水号String(32)支付请求流水号,和请求报文相同必填
sys_seq随机串号String(16)随机生成串号,仅用于日志跟踪用,不保存必填
trans_time接口返回时间String(14)接口返回时间,格式:yyyyMMddHHmmss必填
form_url网银提交页面地址String(256)网银提交页面跳转地址
商户可以直接跳转到当前页面进行选择银行进行支付
当XML报文时使用CDATA标签包裹
可选
result
->id
响应码String(4)9998:下单成功,等待用户支付
其它表示失败,错误信息说明见“响应码解释”字段
必填
result
->comment
响应码解释String(64)响应码对应中文注解,用于显示提示必填

标准接口会因业务升级需要而新增节点,请在解析返回报文时避免新增未知节点产生的程序出错!