中国工商银行网上银行C2C在线支付接口说明V1001
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国工商银行网上银行C2C在线支付接口说明
一、C2C流程说明:
1、客户在商户浏览商品信息,签订订单;
2、商户按照工行C2C订单数据规形成提交数据,并使用工行提供API和商户证书对订单数据签名,形成form表单返回客户浏览器,表单action地址指向工行接收商户C2C订单信息的servlet;
3、客户确认使用工行支付后,提交此表单到工行;
4、工行网银系统接收此笔C2C订单,对订单信息和商户信息进行检查,通过检查则显示工行C2C支付页面;
5、客户在此页面可以查询客户在银行的预留信息;也可以输入支付卡号、支付密码、验证码进行C2C支付;
6、工行检查客户信息,通过检查后显示确认页面;客户确认提交后工行进行支付指令处理;
7、工行进行支付指令处理后,如果商户需要工行实时通知,则工行将处理结果使用http 协议post方式将通知消息数据提交到商户(这个接收银行通知消息的商户端地址是随商户订单数据提交银行的merURL字段),商户返回取货地址或关闭这个银行与其建立的连接后,银行才显示交易结果页面给客户。(注意1、发送通知和显示结果页面是串行的,所以商户端接收银行通知处理时间太长可能导致客户等待超时,造成银行不能将交易结果页面显示给客户。2、此连接是银行服务器自动和商户进行的连接,商户返回也是直接返回给银行,商户端不能对银行的这个请求进行重定向。)
8、工行进行支付指令处理后,如果商户不需要工行实时通知,则工行直接显示交易结果给客户。
二、C2C接口数据说明:
接口数据格式定义通过接口名称和接口版本号来标识,以便将来的扩展;以下数据格式为“1.0.0.1”版的“ICBC_PERBANK_C2C”接口定义。
C2C商户提交表单接口定义:
编码)
商户提交表单签名merSignMsg 格式:
根据订单中各数据项,使用&符进行连接成签名明文,各字段顺序固定;每个数据项由变量名称加等号加变量值组成;如果变量值为空仍需保留字段位置;
格式说明如下:
接口名称&接口版本号&订单号&订单金额&商城收费金额&支付币种&商城代码&商城账号&卖家收款卡号&卖家收款名称&校验联名标志&通知类型&通知地址&结果发送类型&交易日期时间
interfaceName=值&interfaceVersion=值&orderID=值&amount=值&merFeeAmt=值&curType=值&merID=值&merAcct=值&venderCardNum=值& venderName =值&verifyJoinFlag=值¬ifyType=值&merURL=值&resultType=值&orderDate=值
举例:
i n t e r f
a c e N a m e =I C B C _P E R B A N K _C 2 C &interfaceVersion=1.0.0.0&orderID=001&amount=99999999&merFeeAmt=10000&c u r T y p e =001&m e r I D =A B C 001&m e r A c c t =31&v e n d e r C a r d N u m =20&三&verifyJoinFlag=0¬ifyType=AG&merURL=&resultType=&orderDate=334
C2C 通知商户交易结果接口定义:
通知消息银行签名数据bankSignMsg格式:
根据消息中各数据项,使用&符进行连接成银行端签名明文,各字段顺序固定;每个数据项由变量名称加等号加变量值组成;如果变量值为空仍保留字段位置;
格式说明:
接口名称&接口版本号&订单号&指令序号&订单金额&商城收费金额&支付币种&商城代码&商城账号&卖家收款卡号&卖家收款名称&买家收款卡号&买家付款名称&校验联名标志&客户联名标志&联名会员号&结果发送类型&交易日期时间&返回通知日期时间&订单处理状态&错误描述&备注1&备注2
interfaceName=值&interfaceVersion=值&orderID=值& TranSerialNo =值&a m o u n t=值&m e r F e e A m t=值&c u r T y p e=值&m e r I D=值&m e r A c c t=值&venderCardNum=值&venderName =值&customCardNum=值&customName=值&verifyJoinFlag=值&JoinFlag=值&UserNum=值&resultType=值&orderDate=值&n o t i f y D a t e=值&t r a n S t a t=值&c o m m e n t=值remark1=值& remark2=值
提示:以上格式为银行端签名明文格式,对于银行签名字段bankSignMsg,得到密文后进行了BASE64编码,所有字段在发出前取值部分都经过urlEcode编码(包括bankSignMsg字段)。
商户可能收到的银行通知:
指令成功:
只能有一笔成功、且要验证银行签名、订单金额等信息是否与商户端记录一致。
指令失败:
注意可能收到多笔失败。客户支付失败时可以重提此笔订单到银行支付。
指令可疑:
由于网银系统与后台业务处理系统间通讯异常,造成网银不能确认支付指令结果,则此笔指令为可疑指令;可疑指令将被自动批复,商户、客户可于第二日查询指令状态。
没有收到银行通知:
由于银行、商户两端服务器或者互联网通讯等原因可能造成商户端接收不到银行通知。当没有收到银行通知时,可登录工行商户服务手工查询指令状态或者商户调用查询接口自动处理。
商户返回取货地址:
取货地址(也可称为商户收到银行成功支付后的商户端确认地址):
如果有取货地址则及时返回取货地址,没有取货地址需及时关闭连接;因为银行端先进行订单支付清算,然后给商户发送通知,在商户返回取货地址或者关闭连接后,才显示交易结果给客户,整个过程是串行的;如果商户在收到银行通知后,不及时返回或关闭连接,将可能造成客户端等待超时,无法显示最终的交易结果页面。
如果商户端接收到银行通知消息,进行后续检查和处理时,商户自己程序出现异常,不应将错误信息返回给银行。银行只接收取货地址的返回,商户程序异常时,应及时关闭和银行的连接。如果商户返回其他非取货地址的信息,银行端将验证返回信息不是有效的URL 而记录错误日志,在给客户的交易结果页面不会有商户返回的容。
三、安全API说明:
为了保证商户提交订单数据和银行通知信息数据的完整性,不可抵赖性,现提供一套用于信息签名、验签和BASE64编解码的函数。商户开发时使用这套函数和工行颁发的商户证书进行商户订单信息签名;签名数据项和顺序均固定,具体格式可参见上一节的数据定义;