中国工商银行网上银行网上支付接口规范共23页文档文档格式.docx
- 文档编号:14072698
- 上传时间:2022-10-18
- 格式:DOCX
- 页数:17
- 大小:24.54KB
中国工商银行网上银行网上支付接口规范共23页文档文档格式.docx
《中国工商银行网上银行网上支付接口规范共23页文档文档格式.docx》由会员分享,可在线阅读,更多相关《中国工商银行网上银行网上支付接口规范共23页文档文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
6.客户输入后提交;
7.银行查询客户相关信息;
8.返回客户在银行的预留信息;
9.客户确认;
10.返回交易确认页面;
11.不同类型客户使用各自认证方式进行交易确认,支持静态支付密码、动态口令卡、证书签名;
12.银行校验后进行支付处理;
13.将结果形成通知消息并有银行端签名信息,返回客户端;
14.引导客户返回商户网站,地址是订单中提供的商户url,此url支持http和https及自定义端口;
B2C在线支付接口版本说明:
1.0.0.0(基本支付)
1.0.0.1(支持英文界面)
1.0.0.2(内部保留)
1.0.0.3(保留1.0.0.1功能,优化通知方式)
1.0.0.4(商户订单中指定支付卡,不强制使用e卡支付,不允许客户的支付卡透支支付,专门用于基金商户进行基金直销业务,同1.0.0.3通知方式)
通知消息模式区别:
原有模式:
支付处理后,后台发送商户通知;
新增模式:
支付完成后或客户点击“返回商户”,利用客户浏览器跳转,完成商户通知的转发,后台不再单独发送商户通知。
对于不同类型商户接口区别:
对于购物类型商城只支持使用1.0.0.0/1.0.0.1/1.0.0.3
对于基金直销类型网站商城只支持使用1.0.0.4
第2章商户接口
接口定义通过接口名称和接口版本号来标识,以便将来的扩展;
新通知方式的B2C接口称为新模式B2C接口;
原有后台发送http通知的方式称为原模式接口;
2.1支付接口
2.1.1支付接口表单定义
新模式接口的交易数据整合到一个xml格式串,作为表单的一项整体提交,不再同原来每个字段都是key-value形式;
FORM表单数据如下:
变量名称
变量命名
长度定义
说明
接口名称
interfaceName
MAX(30)
必输,
取值:
“ICBC_PERBANK_B2C”
接口版本号
interfaceVersion
MAX(15)
“1.0.0.3”
交易数据
tranData
无限制
必输,签名;
整合所有交易数据形成的xml明文串,并做BASE64编码;
具体格式定义见下文;
注意:
需有xml头属性;
整个字段使用BASE64编码;
xml明文中没有回车换行和多余空格;
订单签名数据
merSignMsg
商户使用工行提供的签名API和商户证书将tranData的xml明文串进行签名,得到二进制签名数据,然后进行BASE64编码后得到可视的merSignMsg;
签名时是针对tranData的xml明文,不是将tranData进行BASE64编码后的串;
商城证书公钥
merCert
商户用二进制方式读取证书公钥文件后,进行BASE64编码后产生的字符串;
注:
1、数据中不能包含“|”、“&
”、“=”,这些字符为银行端程序保留字符;
中文变量使用GBK编码。
2、从商户Post过来的数据,参数名的名称必须与上表中完全相同,名称中的字母大小写均要相同,不能进行随意更改(在form中的提交按钮<
inputtype=”submit”……>
中submit不能有Name属性);
此外,如果其他input项的Name中使用了双引号,如:
<
inputtype=textname="
merCert"
value="
xxxxxxx"
>
,则一定注意在引号内不要包含空格,不要写成“merURL”,如果拼写错误或者多了空格,将造成数据无法识别,无法正常进行支付
3、接口名称和版本号一定要和上表中相同.。
4、商户提交数据中的空格将被认为是有效字符被接收,请商户开发时注意对多余空格的控制。
5、tranData交易数据的xml串需要有xml的头,即<
?
xmlversion="
1.0"
encoding="
GBK"
standalone="
no"
2.1.2tranData数据定义
=16
交易日期时间
orderDate
=14
格式为:
YYYYMMDDHHmmss
要求在银行系统当前时间的前1小时和后12小时范围内,否则判定交易时间非法。
订单号
orderid
客户支付后商户网站产生的一个唯一的定单号,该订单号应该在相当长的时间内不重复。
工行通过订单号加订单日期来唯一确认一笔订单的重复性。
订单金额
amount
MAX(10)
客户支付订单的总金额,一笔订单一个,以分为单位。
不可以为零,必需符合金额标准。
支付币种
curType
=3
用来区分一笔支付的币种,目前工行只支持使用人民币(001)支付。
“001”
商户代码
merID
MAX(20)
唯一确定一个商户的代码,由商户在工行开户时,由工行告知商户。
商户账号
merAcct
MAX(19)
商户入账账号,只能交易时指定。
(商户付给银行手续费的账户,可以在开户的时候指定,也可以用交易指定方式;
用交易指定方式则使用此商户账号)
检验联名标志
verifyJoinFlag
=1
必输,
取值“1”:
客户支付时,网银判断该客户是否与商户联名,是则按上送金额扣帐,否则展现未联名错误;
取值“0”:
不检验客户是否与商户联名,按上送金额扣帐。
语言版本
Language
选输,默认为中文版
“EN_US”为英文版;
“ZH_CN”或其他为中文版。
大小写敏感。
商品编号
goodsID
选输
商品名称
goodsName
MAX(60)
商品数量
goodsNum
已含运费金额
carriageAmt
商城提示
merHint
MAX(120)
备注字段1
remark1
MAX(100)
选输单位:
字节
备注字段2
remark2
返回商户URL
merURL
MAX(1024)
必输
必须合法的URL,交易结束,将客户引导到商户的此url,即通过客户浏览器post交易结果信息到商户的此URL
返回商户变量
merVAR
商户自定义,当返回银行结果时,作为一个隐藏域变量,商户可以用此变量维护session等等。
由客户端浏览器支付完成后提交通知结果时是明文传输,建议商户对此变量使用额外安全防范措施,如签名、base64
2.1.3tranData格式定义
tranData格式(xml格式固定,选输字段的取值可以为空,标签需保留)
standalone="
B2CReq>
<
interfaceName>
/interfaceName>
interfaceVersion>
/interfaceVersion>
orderInfo>
<
orderDate>
/orderDate>
orderid>
/orderid>
amount>
/amount>
curType>
/curType>
merID>
/merID>
merAcct>
/merAcct>
/orderInfo>
custom>
verifyJoinFlag>
/verifyJoinFlag>
Language>
/Language>
/custom>
message>
goodsID>
/goodsID>
goodsName>
/goodsName>
goodsNum>
/goodsNum>
carriageAmt>
/carriageAmt>
merHint>
/merHint>
remark1>
/remark1>
remark2>
/remark2>
merURL>
/merURL>
merVAR>
/merVAR>
/message>
/B2CReq>
2.1.4表单样例
表单数据:
INPUTNAME="
interfaceName"
TYPE="
text"
ICBC_PERBANK_B2C"
>
interfaceVersion"
1.0.0.3"
tranData"
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iR0JLIiBzdGFuZGFsb25lPSJubyI/PjxCMkNSZXE+PGludGVyZmFjZU5hbWU+SUNCQ19QRVJCQU5LX0IyQzwvaW50ZXJmYWNlTmFtZT48aW50ZXJmYWNlVmVyc2lvbj4xLjAuMC4zPC9pbn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国工商银行 网上银行 网上支付 接口 规范 23 文档