iOS开发之网银在线支付快捷支付商户接口规范
来源:互联网 发布:看漫威漫画的软件 编辑:程序博客网 时间:2024/04/29 10:58
网银在线支付快捷支付商户接口规范
如果您在开发过程中遇到任何技术问题,可以咨询我们的技术支持人员:
联系邮箱: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形式。
3.4 请求/响应公共参数列表
字段名
变量名
类型
说明
可空
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
3.5 请求相应XML样例
格式如下:
请求/响应公共报文:
<?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.1 含义
在进行支付前,收集持卡人的签约信息,提交至网银在线快捷支付地址,网银在线根据商户提供的持卡人的签约信息,完成签约的过程,每次交易之前都要进行签约。
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
7 附录
7.1 字符集编码表
编码
含义
GBK
GBK编码
UTF-8
UTF-8编码
7.2 卡类型编码表
编码
含义
C
信用卡
D
借记卡
7.3 交易类型编码表
编码
含义
V
签约
S
消费
Q
查询
R
退款
7.4 币种编码表
编码
含义
CNY
人民币
7.5 交易返回状态编码表
编码
含义
0
成功
3
退款
4
部分退款
6
处理中
7
失败
7.6 交易返回信息编码表
返回码
返回信息
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
风险校验失败
- iOS开发之网银在线支付快捷支付商户接口规范
- 支付宝在线支付接口开发教程
- 在线支付接口开发总结
- 在线支付接口开发总结
- 在线支付接口开发总结
- 在线支付开发接口总结
- iOS集成支付宝开发“抱歉,该商户未开通支付宝服务,无法支付”
- 网银在线支付接口和应用
- 网银在线支付接口和应用
- 网银在线支付接口和应用
- 银联在线支付----测试商户账号注册
- 支付宝快捷支付开发
- iOS开发:快速集成支付宝快捷支付
- iOS开发:2分钟快速集成支付宝快捷支付
- iOS 开发之支付
- iOS 开发之支付
- 支付宝在线支付接口
- 微信商户开发文档之扫码支付
- ios强制横屏
- idea快捷键
- CentOS下配置ODBC连接MySQL数据库 V2.0
- TensorFlow 训练 MNIST 数据(二)
- 自定义Vie
- iOS开发之网银在线支付快捷支付商户接口规范
- C++ RGB图片水平翻转
- Linux:管理动态链接库
- 二叉树的遍历
- 专项测试(一)兼容测试1-app兼容性测试
- ffmpeg opencv 打开视频文件,并且播放
- 多线程程序在多核和单核上运行的不同
- 关于无法使用xx-pc附加到应用程序iisexpress.exe
- Windows下Python开发环境搭建及 Python的HelloWorld示例