| |||
| |||
如果您在开发过程中遇到任何技术问题,可以咨询我们的技术支持人员:
联系邮箱:010-62428538、62428630
(1)商户根据网银在线支付平台提供的接口规则,生成加密报文信息,将请求发送至网银在线快捷支付地址
(2)网银在线支付系统对请求数据进行处理,进行安全校验等验证,一系列验证通过后便会解密报文中的加密信息,处理这次发送过来的数据请求。
(4)返回处理的结果数据
对于处理完成的交易会以两种方式把数据反馈给商户:
1):前台通知: 交易结束后,网银在线实时发送给商户
2):后台通知: 如果商户请求的数据中通知地址不为空,则服务器异步发起通知,按照商户在请求时上送的通知地址发送通知
(5)商户对获取的返回结果数据进行处理。
3 报文格式 ·
在网银在线快捷支付的所有交易中,请求和响应报文格式均为XML格式。
| 名词 | 描述 |
| 签约 | 使用快捷支付进行付款前,用户及银行卡信息须提交给银行进行验证,以保证信息的准确性。 |
| 支付 | 签约完成后,即可进行快捷支付;每次支付前都必须进行签约。 |
| Api访问地址 | https://quick.chinabank.com.cn/express.htm |
3.3 响应机制
商户向API地址发送post请求,请求参数名称charset和req,charset是告诉快捷业务使用那种编码解码数据(具体查看字符编码表7.1),req是交易数据(具体数据格式看下文)。
商户发送交易数据至快捷业务,快捷业务处理请求,返回响应数据,resp=响应数据
有时可能由于商户网络原因没有接到同步响应结果,网银快捷支付、退款接口支持异步通知机制,异步通知机制推送3次响应数据,每次间隔为1分钟。
下文讲解如何发送和解析网银在线快捷支付数据。明文数据格式如:3.4请求/响应公共参数列表。注:各支付接口只有data不同;数据格式为XML形式。
| 字段名 | 变量名 | 类型 | 说明 | 可空 |
| VERSION | 版本号 | String/10 | 1.1.0 | N |
| MERCHANT | 商户号 | String/10 | 由网银在线提供 | N |
| TERMINAL | 终端号 | String/10 | 由网银在线提供 | N |
| DATA | 持卡人数据和交易数据 | String | 按二级参数和三级参数组成XML格式数据,然后使用3DES加密。 | N |
| SIGN | 数据签名 | String/32 | MD5签名,签名数据为所有参数加签名密钥 | N |
格式如下:
| 请求/响应公共报文: <?xml version="1.0" encoding="UTF-8"?> <CHINABANK> <VERSION>1.1.0</VERSION> <MERCHANT>22310318</MERCHANT> <TERMINAL>00000001</TERMINAL> <DATA>N64mYYKJlowxXcDqdJsLqFz1EP1fxld0jgGVmKkabOFWxOlMNUXwApcJkn3j6NXMB7fOa1Q8TsVsWac5HuPDpbA0H23xFPJT3hEghwZoM9JIxoPVDbUeruH9bWu0s9V5wEbI77O42jv3dIs6yXc84SBRjzJoEawq7xQp7tli0P5tHkzfShJ+Y75zMj4mml4yNMTRJaFAYcGRpQ3LW7dZl36m9X2a/C8bAGZs/L3pi33tEc9/cFgpIt9cR8pLSAhxIvcUOv6ViCG1ShpeXZzovmxA/hloRGGXWXjbU+fbyjJ9aWlKkmUFg5b9pZ9xzOExUnRKrfHtzZg0xNEloUBhwamZp3eA1E5PRMLjn8LrEL5JjkGyCyoi9g4B3W73b37FU7NoYOKONaPNwyaxdcFZtKvgr1e65um6CYZ5jET5P7hDDKV3gXpJM9IHnY9A9rUBo0Kx+Q1Agn6dwx1UeI2wzX/D7mB+sUU/2LA/QTZzQUpnZYAoIUQ7LH/D7mB+sUU/gSyKNt+Ut/Fjp+aKsLzTlMndmxARgsrUf8PuYH6xRT/8E5iifJLJXwrawkW/KcRM9zgxMZgCdSV/w+5gfrFFP4Sj8WNP1q74Ejw0/MtF5MOELSmkHwKkxkyPimY9R8qSncMdVHiNsM154HXhN6O3fg== </DATA> <SIGN>9b54c90ecfb26f948606a58cde4198ec</SIGN> </CHINABANK>
<DATA/>元素是交易过程中的主要数据需要用3DES加密,加密密钥需要在网银在线后台设置; <SIGN/>元素是为了验证请求/响应的合法性,是<VERSION/>、<MERCHANT/>、<TERMINAL/> <DATA/>元素一起用MD5加密之后的值,MD5加密密钥需要在网银在线后台设置; 发送请求时整个XML需要用BASE64编码之后发送 |
| 其中请求DATA元素格式如下 <?xml version="1.0" encoding="UTF-8"?> <DATA> <CARD> <BANK>HXB</BANK> <TYPE>D</TYPE> <NO>6226300310013502</NO> <EXP></EXP> <CVV2></CVV2> <NAME>测试三</NAME> <IDTYPE>I</IDTYPE> <IDNO>320923198307235731</IDNO> <PHONE>13800138000</PHONE> </CARD> <TRADE> <TYPE>V</TYPE> <ID>1371478419979</ID> <AMOUNT>12345</AMOUNT> <CURRENCY>CNY</CURRENCY> </TRADE> </DATA> 响应DATA元素格式如下: <?xml version="1.0" encoding="UTF-8"?> <DATA> <TRADE> <TYPE>V</TYPE> <ID>1371478419979</ID> <AMOUNT>12345</AMOUNT> <CURRENCY>CNY</CURRENCY> </TRADE> <RETURN> <CODE>0000</CODE> <DESC>成功</DESC> </RETURN> </DATA> |
4 接入范例
4.1 概述
网银在线提供快捷支付:快捷支付每次交易都要进行签约,每次签约时都需要输入验证码验证;
4.2 接入代码示例
1.XML中的<DATA/>元素用3DES加密.
2.<VERSION/>、<MERCHANT/>、<TERMINAL/>、<DATA/>(3DES加密之后)一起MD5加密形成签名<SIGN/>,签名用于校验请求的合法行.
3.整个XML最后用BASE64编码.
4.发送POST请求到网线在线快捷支付地址,参数为req(加密之后的XML)、charset为xml字符编码方式.
5.得到网银在线返回信息后,用同样的方法解析.
注:<DATA/>元素中的具体内容,需要根据具体的业务逻辑决定。
5 签约确认快捷支付
在进行支付前,收集持卡人的签约信息,提交至网银在线快捷支付地址,网银在线根据商户提供的持卡人的签约信息,完成签约的过程,每次交易之前都要进行签约。
5.2 签约请求DATA元素内容
交易请求接口DATA参数说明
|
| 字段名 | 变量名 | 类型 | 说明 | 可空 |
| CARD | BANK | 持卡人支付卡号发卡行 | String/5 |
| N |
| TYPE | 持卡人支付卡号卡类型 | String/1 | 信用卡:C / 借记卡:D | N | |
| NO | 持卡人支付卡号 | String/19 |
| N | |
| EXP | 持卡人信用卡有效期 | String/4 | 年年月月 | Y | |
| CVV2 | 持卡人信用卡校验码 | String/4 |
| Y | |
| NAME | 持卡人姓名 | String/100 |
| N | |
| IDTYPE | 持卡人证件类型 | String/1 | 身份证:I | N | |
| IDNO | 持卡人证件号 | String/20 |
| N | |
| PHONE | 持卡人手机号 | String/20 |
| N | |
| TRADE | TYPE | 交易类型 | String/1 | V | N |
| ID | 交易号 | String/30 | 数字或字母 | N | |
| AMOUNT | 交易金额 | String/12 | 单位:分 | N | |
| CURRENCY | 交易币种 | String/3 | 人民币:CNY | N |
5.3 签约响应DATA元素内容
交易回复接口DATA参数说明
|
| 字段名 | 变量名 | 类型 | 说明 |
| TRADE | TYPE | 交易类型 | String/1 | V |
| ID | 交易号 | String/30 | 数字或字母 | |
| AMOUNT | 交易金额 | String/12 | 单位:分 | |
| CURRENCY | 交易币种 | String/3 | 人民币:CNY | |
| RETURN | CODE | 交易返回码 | String/10 |
|
| DESC | 交易返回码信息 | String/100 |
|
5.4 消费请求DATA元素内容
交易请求接口DATA参数说明
|
| 字段名 | 变量名 | 类型 | 说明 | 可空 |
| CARD | BANK | 持卡人支付卡号发卡行 | String/5 |
| N |
| TYPE | 持卡人支付卡号卡类型 | String/1 | 信用卡:C / 借记卡:D | N | |
| NO | 持卡人支付卡号 | String/19 |
| N | |
| EXP | 持卡人信用卡有效期 | String/4 |
| Y | |
| CVV2 | 持卡人信用卡校验码 | String/4 |
| Y | |
| NAME | 持卡人姓名 | String/100 |
| N | |
| IDTYPE | 持卡人证件类型 | String/1 | 身份证:I | N | |
| IDNO | 持卡人证件号 | String/20 |
| N | |
| PHONE | 持卡人手机号 | String/20 |
| N | |
| TRADE | TYPE | 交易类型 | String/1 | S | N |
| ID | 交易号 | String/30 | 数字或字母 | N | |
| AMOUNT | 交易金额 | String/12 | 单位:分 | N | |
| CURRENCY | 交易币种 | String/3 | 人民币:CNY | N | |
| DATE | 交易日期 | String/8 | yyyyMMdd | Y | |
| TIME | 交易时间 | String/6 | HHmmss | Y | |
| NOTICE | 通知地址 | String/100 | 如果为空,交易结束后不主动向商户发送结果通知 | Y | |
| NOTE | 交易备注 | String/100 | 原文返回 | Y | |
| CODE | 交易验证码 | String/10 | 由网银校验验证码时必填 | Y |
5.5 消费响应DATA元素内容
交易回复接口DATA参数说明
|
| 字段名 | 变量名 | 类型 | 说明 |
| TRADE | TYPE | 交易类型 | String/1 | S |
| ID | 交易号 | String/30 | 数字或字母 | |
| AMOUNT | 交易金额 | String/12 | 单位:分 | |
| CURRENCY | 交易币种 | String/3 | 人民币:CNY | |
| DATE | 交易日期 | String/8 | yyyyMMdd(订单支付完成日期) | |
| TIME | 交易时间 | String/6 | HHmmss(订单支付完成时间) | |
| NOTE | 交易备注 | String/100 | 原文返回 | |
| STATUS | 交易返回状态 | String/1 | 成功:0 / 处理中:6 / 失败:7 | |
| RETURN | CODE | 交易返回码 | String/10 |
|
| DESC | 交易返回码信息 | String/100 |
|
6 其他公共接口DATA元素内容
6.1 查询交易请求DATA元素内容
交易请求接口DATA参数说明
|
| 字段名 | 变量名 | 类型 | 说明 | 可空 |
| TRADE | TYPE | 交易类型 | String/1 | Q | N |
| ID | 交易号 | String/30 | 数字或字母 | N |
6.2 查询交易响应DATA元素内容
交易回复接口DATA参数说明
|
| 字段名 | 变量名 | 类型 | 说明 |
| TRADE | TYPE | 交易类型 | String/1 | S |
| ID | 交易号 | String/30 | 数字或字母 | |
| AMOUNT | 交易金额 | String/12 | 单位:分 | |
| CURRENCY | 交易币种 | String/3 | 人民币:CNY | |
| DATE | 交易日期 | String/8 | yyyyMMdd(订单支付完成日期) | |
| TIME | 交易时间 | String/6 | HHmmss(订单支付完成时间) | |
| NOTE | 交易备注 | String/100 | 原文返回 | |
| STATUS | 交易返回状态 | String/1 | 成功:0 退款:3 失败:7 | |
| RETURN | CODE | 交易返回码 | String/10 |
|
| DESC | 交易返回码信息 | String/100 |
|
6.3 退款请求DATA元素内容
交易请求接口DATA参数说明
|
| 字段名 | 变量名 | 类型 | 说明 | 可空 |
| TRADE | TYPE | 交易类型 | String/1 | R | N |
| ID | 交易号 | String/30 | 数字或字母 | N | |
| OID | 原交易号 | String/30 | 数字或字母 | N | |
| AMOUNT | 交易金额 | String/12 | 单位:分 | N | |
| CURRENCY | 交易币种 | String/3 | 人民币:CNY | N | |
| DATE | 交易日期 | String/8 | yyyyMMdd | Y | |
| TIME | 交易时间 | String/6 | HHmmss | Y | |
| NOTICE | 通知地址 | String/100 | 如果为空,交易结束后不主动向商户发送结果通知 | Y | |
| NOTE | 交易备注 | String/100 | 原文返回 | Y |
6.4 退款响应DATA元素内容
交易回复接口DATA参数说明
|
| 字段名 | 变量名 | 类型 | 说明 |
| TRADE | TYPE | 交易类型 | String/1 | R |
| ID | 交易号 | String/30 | 数字或字母 | |
| OID | 原交易号 | String/30 | 数字或字母 | |
| AMOUNT | 交易金额 | String/12 | 单位:分 | |
| CURRENCY | 交易币种 | String/3 | 人民币:CNY | |
| DATE | 交易日期 | String/8 | yyyyMMdd(退款请求发送日期) | |
| TIME | 交易时间 | String/6 | HHmmss(退款请求发送时间) | |
| NOTE | 交易备注 | String/100 | 原文返回 | |
| STATUS | 交易返回状态 | String/1 | 成功:0 / 退款:3 / 部分退款:4 / 处理中:6 / 失败:7 | |
| RETURN | CODE | 交易返回码 | String/10 |
|
| DESC | 交易返回码信息 | String/100 |
|
| 编码 | 含义 |
| GBK | GBK编码 |
| UTF-8 | UTF-8编码 |
| 编码 | 含义 |
| C | 信用卡 |
| D | 借记卡 |
| 编码 | 含义 |
| V | 签约 |
| S | 消费 |
| Q | 查询 |
| R | 退款 |
| 编码 | 含义 |
| CNY | 人民币 |
| 编码 | 含义 |
| 0 | 成功 |
| 3 | 退款 |
| 4 | 部分退款 |
| 6 | 处理中 |
| 7 | 失败 |
| 返回码 | 返回信息 |
| 0000 | 成功 |
| 0001 | 处理中 |
| EEE0001 | 系统异常 |
| EEE0002 | 网络异常 |
| EEE0003 | 银行异常 |
| EEE0004 | 数据库异常 |
| EES0001 | 报文解析异常 |
| EES0002 | 字符集不正确 |
| EES0003 | 版本号不正确 |
| EES0004 | 商户号不正确 |
| EES0005 | 终端号不正确 |
| EES0006 | 交易数据不正确 |
| EES0007 | 数据签名不正确 |
| EES0008 | 权限不正确 |
| EES0009 | 密钥不正确 |
| EES0010 | 发卡行不正确 |
| EES0011 | 卡类型不正确 |
| EES0012 | 交易卡号不正确 |
| EES0013 | 卡有效期不正确 |
| EES0014 | 卡安全码不正确 |
| EES0015 | 持卡人姓名不正确 |
| EES0016 | 持卡人证件类型不正确 |
| EES0017 | 持卡人证件号不正确 |
| EES0018 | 持卡人手机号不正确 |
| EES0019 | 交易类型不正确 |
| EES0020 | 交易号不正确 |
| EES0021 | 交易金额不正确 |
| EES0022 | 交易币种不正确 |
| EES0023 | 交易日期不正确 |
| EES0024 | 交易时间不正确 |
| EES0025 | 交易通知地址不正确 |
| EES0026 | 交易备注不正确 |
| EES0027 | 交易验证码不正确 |
| EES0028 | 交易卡号网银不受理 |
| EES0029 | 交易卡号商户不受理 |
| EES0030 | 交易受理银行繁忙 |
| EES0031 | 交易受理渠道繁忙 |
| EES0032 | 交易重复 |
| EES0033 | 交易号重复 |
| EES0034 | 交易验证码申请不受理 |
| EES0035 | 交易验证码过期 |
| EES0036 | 交易不存在 |
| EES0037 | 原交易号不正确 |
| EES0038 | 原交易不允许此操作 |
| EES0039 | 原交易处理中 |
| EES0040 | 退款余额不足 |
| EES0041 | 查询银行列表错误 |
| EES0042 | 找不到相应的银行列表信息 |
| EES0043 | 卡号未签约 |
| EES0044 | 卡号未做签约申请 |
| EEB0001 | 银行交易不支持 |
| EEB0002 | 银行签约失败 |
| EEB0003 | 银行解约失败 |
| EEB0004 | 银行交易失败 |
| EEB0005 | 银行签约姓名校验失败 |
| EEB0006 | 银行签约手机号校验失败 |
| EEB0007 | 银行签约证件号校验失败 |
| EEB0008 | 银行签约卡有效期校验失败 |
| EEB0009 | 银行签约卡安全码校验失败 |
| EEB0010 | 银行不支持的卡类型 |
| EEB0011 | 银行不支持的卡号 |
| EEB0012 | 银行卡号状态异常 |
| EEB0013 | 银行卡号未开通快捷业务 |
| EEB0014 | 银行卡号余额不足 |
| EEB0015 | 银行单笔金额超限 |
| EEB0016 | 银行日交易金额超限 |
| EEB0017 | 银行日交易次数超限 |
| EER0001 | 风险校验失败 |
136

被折叠的 条评论
为什么被折叠?



