当前位置:文档之家› 招商银行网上支付商户手册

招商银行网上支付商户手册

招商银行网上支付商户手册
招商银行网上支付商户手册

招商银行网上支付商户

手册

公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

招商银行网上支付商户手册修订日期:2005年8月1日

目录

手册说明

1.本手册的读者范围

本手册适用于希望成为招商银行网上支付商户,或者已经成为招商银行网上支付商户的业务管理人员、电脑系统开发人员。

2.前提条件和相关信息

前提条件是对Internet、电脑有初步的了解,对一些常见的技术名词有一定的认识。

3.相对以前版本的更新

相对以前版本,本文更新了商户内部管理模式,增加了新的管理功能,增强了连接方式。

一.招商银行网上支付简介

1.什么是招商银行网上支付

招商银行网上支付是招商银行提供的网上付款结算平台,通过这个平台,数千万招商银行持卡人可以向特约商户进行网上付款,全国联网,实时到帐。

2.如何成为招商银行网上支付特约商户

(1)商户与当地招商银行的分行个人银行部联系,申请成为我行的网上特约商户,填写相关资料。联系方式及联系人,请查阅招商银行网

站()。

(2)办理签定合约手续。

(3)商户在我行开立结算帐户。结算帐户设立浮动备付金,备付金比例按照商户资信情况确定。

(4)根据银行提供的技术接口,商户联通与我行的支付网络。

3.如何使用招商银行网上支付系统

(5)付款通道。付款通道是持卡人进行网上付款的界面,商户系统以Internet超链接的方式,从商户网站转到银行的付款通道,对商户

电脑系统没有特殊要求。

(6)商户管理。商户可以通过以下几种方式管理招商银行的定单:

[1]商户业务管理网站:Web界面,人工管理定单,为特约商户提供

全面

的网上支付业务管理功能。

[2]定单下载工具:方便特约商户下载自己的定单数据,进行进一步

处理。

[3]支付软件开发包:提供二次开发接口,在商户系统中嵌入支付管

理功

能,自动、实时管理定单。

4.加入招商银行网上支付,对商户电脑系统有什么要求

招商银行提高多种方式供商户使用,商户可根据自己的情况选择。

最简单的方式,商户以网页中的Internet超链接转到银行的付款通道,以商户业务管理网站管理定单。在这种情况下,商户甚至可以没有自己的电脑系统。

如果商户不具备程序开发能力,但有常见的办公处理软件使用经验,可以通过定单下载工具下载数据,结合商户业务管理网站,自己在办公处理软件中处理。

如果商户开发能力较强,可以通过银行提供的软件开发包开发软件,把自己的系统和银行对接,就可以全自动、实时地处理业务。

5.如何与招商银行联系

请到招商银行网站()查阅。

6.招商银行网上支付的安全措施

基本的网上交易的传输安全控制手段采用SSL(SecureSocketLayer),SSL是一种被广泛使用的INTERNET传输加密标准。银行端的WEBSERVER将安装一个证书(Certificate),客户端的浏览器发送CGI请求时使用https 协议。所有用https发送的请求以及WebServer返回的结果都会自动使用

SSL加密。

对商户来说,商户在其管理电脑上登录时,要提供登录密码。为了增加商户登录的安全性,在登录页之前增加了一个预登录页,商户需先输入预登

录密码才能进入到登录页,预登录密码不能修改。

每个商户可以设置多个操作员,每个操作员拥有不同的密码,其权限以岗位的方式组织,每个岗位有不同的权限,以实现企业内部的安全管理。

对风险较高的操作,如退款,还要求配合企业证书IC卡操作。

二.系统管理

1.实体关系

商户的系统管理包括以下内容:

(1)店铺

店铺是生成定单的基础实体,每个商户至少有一个由银行自动生成的店铺,也可以由商户自行设置多个店铺,以便区分不同的交

易,以及不同的定单管理,等等。

注意,这里的店铺并非某些支付平台网站上的“店铺”概念,这里的“店铺”纯粹是为了商户分权限管理定单,例如为冲值类型支

付分配一个“店铺”,为购物类型支付分配另一个“店铺”,等

等,数目不会很大,否则商户内部管理这些权限将是非常烦琐的。

而支付平台网站上“店铺”,可能是某个公司,甚至某个人在支付

平台上注册的基本单位,其数目是相当庞大的。

(2)定单

每笔交易视为一个定单,由商户生成定单号,以后可对该定单进行后续处理,如结帐(包括结帐、部分结帐、撤消)、退款、查询

等。

(3)岗位

岗位实际上是权限的组合,可以精细到对不同店铺生成的定单进行不同的操作权限,例如A岗位能对0001店铺定单查询,B岗位能对0001、0002店铺定单结帐、退款,等等。每个岗位可以管理多个店铺,每个店铺也可以由多个岗位管理。

(4)操作员

操作员是商户管理定单的直接操作者,每个操作员有一个4位数字的操作员号,每个操作员必须赋予至少一个岗位,也可以赋予

多个岗位,以适应企业内部灵活的管理方式。操作员的权限由其岗

位决定。

(5)系统管理员

系统管理员可以对店铺、岗位、操作员等进行增加、修改、删除等操作。

以上实体的关系可用下图说明:

2.系统管理

系统管理指商户系统管理员对店铺、岗位、操作员等进行增加、修改、删除等操作。通过系统管理,商户可以灵活配置自己的业务模式,适应自己的业务需求。

(1)系统管理员登录

每个商户有一个系统管理员,商户开通招商银行网上支付后,银行自动生成一个系统管理员。系统管理员登录需要选择开户分行,

输入商户号和管理员密码。

(2)店铺管理

系统管理员可以增加、修改、删除店铺。一般来说,一个商户只需一个店铺即可,但如果需要对定单区别处理,可以增加新店铺。

例如跨地区的商户需要把北京、上海的定单分开处理;再如需要分

配不同的操作员管理不同类型的定单,等等。但是,店铺不宜太

多,一般不要超过5个,否则商户内部的管理、权限的分配调整等

等将比较烦琐。

(3)岗位管理

系统管理员可以增加、修改、删除岗位。岗位实际上是权限的组合,因此岗位不宜太多,否则商户内部的管理、权限的分配调整

等等将比较烦琐。

(4)操作员管理

系统管理员可以增加、修改、删除操作员。每个操作员必须赋予至少一个岗位,也可以赋予多个岗位。

三.支付交易

1.连接方式1

在网上交易过程中,用户先在商户网页中选择商品。当用户在支付网页中

选择招商银行网上支付付款时,商户支付网页向银行WEB 系统发出支付命令(见图一)。银行WEB 系统处理完支付请求后,将回送用户支付结果页面。

连接方式1 支付命令格式如下:

CBranchID=xxxx&

CoNo=xxxxxx&BillNo=xxxxxx&Amount=xxx.xx&Date=YYYYMMDD

参数说明:

BranchID: 商户开户分行号,请咨询开户的招商银行分支机构;

CoNo: 商户号,6位数字,由银行在商户开户时确定; BillNo: 定单号,6位或10位数字,由商户系统生成,一天内不能重复;

Amount: 定单总金额,格式为:xxxx.xx 元;

Date: 交易日期,格式:YYYYMMDD 。 支付页面提交的FORM 格式示例如下:

METHOD=POST>

商户 银行 用户浏览器 (2)支付命

(3)支付结果

(1)生成支付

定单号000023

金额818.66

日期

连接方式1的特点是商户WEB系统通过支付页面把控制引导到银行WEB系统,银行WEB系统处理完支付请求后回送支付结果页面给用户,控制没有再回到商户WEB系统。

商户在银行网站进行定单管理时可以知道定单的付款情况。如果商户系统需要立刻核实定单付款情况,可以使用一个银行提供的开发包中的定单状态查询接口向银行WEB系统查询某个定单的状态。有关直联定单状态查询接口请见附录。

2.连接方式2

某些商户在用户完成支付过程后希望控制能够从银行WEB 系统自动转回商

户WEB 系统,并且商户WEB 系统能够知道用户的付款情况。比如,出售信息产品的商户,在支付成功的情况下,商户的结果页除包含支付成功通知信息外,还可以包含用户购买的信息产品。

为了解决这个问题,要求商户WEB 系统必须提供一个支付结果通知命令。

银行WEB 系统在收到支付网页发出的支付命令后,先执行扣款操作,然后调用商户WEB 系统的支付结果通知命令,把支付结果通知商户WEB 系统,同时取得商户WEB 系统生成的支付结果页面(由支付结果通知命令生成)。最后,银行WEB 系统把由商户WEB 系统的支付结果通知命令生成的支付结果页返回用户的浏览器。这就是连接方式2(见下图)。

支付结果通知命令格式型如:

Succeed=..&BillNo=..&Amount=..&Date=..&Msg=..&signature=..

其中,path 和ProcResult.dll 由商户任意确定,并且支付命令中可包含多个path ,即可有path1/path2/path3。

参数说明:

Succeed : 取值Y(成功)或N(失败);

BillNo:

定单号(由支付命令送来); Amount:

实际支付金额(由支付命令送来);

商户 (1)生成支付网(3)支付结果通知命

Date: 交易日期(主机交易日期);

Msg: 银行通知用户的支付结果消息。信息的前38个字符格式为:4位分行号+6位商户号+8位银行接受交易的日期+20位银行流水

号;可以利用交易日期+银行流水号对该定单进行结帐处理;

Signature: 银行用自己的PrivateKey对通知命令的签名。

注意:

(1)商户系统如果对银行通知命令的真实性有较高要求,必须用银行提供的开

发包中的函数,结合银行的PublicKey(可从网上下载或向银行索取)验

证。具体用法请参考附录。

(2)在Succeed为Y时,商户在支付结果通知命令中必须判断Amount的值,该值

为用户的实际支付金额,以此金额为准。不能以之前系统产生定单时的金

额为准!这是为了防止用户在得到支付页面后修改支付金额。

(3)银行返回的交易日期是银行主机的交易日期,对于每天重复使用定单号的

商户,可能会在0点左右与商户日期有1天的差别,按日期+定单号对帐时,可能和商户自己的定单记录有冲突。如果生成定单号永远不重复,则可以

按定单号和商户自己的定单记录对帐,无须核对日期,因此不会有冲突问

题,但是,永远不重复的6位定单号,部分商户可能不够用,建议这些商户使用10位的定单号。

(4)在正式交易中不要使用000000的定单号,因为测试接口在发通知时,定单

号固定为000000。

连接方式2的支付命令格式有别于连接方式1,其格式为:

C1BranchID=xxxx&

CoNo=..&BillNo=..&Amount=..&Date=..&MerchantUrl=..

前五个参数同连接方式1,第六个参数MerchantUrl为支付结果通知命令中参数部分之前的部分,也就是。注意:MerchantUrl不能带商户参数。

在方式2中,若用户付款后银行WEB系统或者商户WEB系统出现故障,则可能出现用户已付款但是商户WEB系统不知道的情况,或者出现用户已付款但是用户浏览器未接收到结果页的情况。这类情况属于正常情况,商户可以主动从银行系统查询该定单的真正状况。商户系统应当考虑相应的解决办法,而不能依赖于这个通知到达与否,决定是否给消费者提供商品或服务。

和方式1比较,方式2在用户完成支付操作后控制又回到商户的系统(用户处于商户WEB系统生成的支付结果页中),增加了银行WEB系统调用商户WEB 系统的支付结果通知命令的过程。方式2比方式1复杂,并且商户WEB系统必须处理异常情况。但是方式2功能较强,使支付过程变得平滑无缝。

在商户的Web系统向银行返回结果网页时,网页中应当有

,供银行判断是否为有效返回网页,以避免商户服务器失控后自动返回未知的信息而使消费者迷惑。不管是商户停机、网络中断或者Web服务器失控,银行都将屏蔽商户系统的问题,并用正常的网页替代商户网页返回给消费者,使消费者能继续正确操作。

考虑到方式2比较复杂,并且需要连接商户端程序,我们提供了测试接口以方便商户开发程序时测试。使用该测试接口模拟真实的数据流程,但无须真实的商户代码和付款卡号,银行系统也不记录交易数据(商户不能查询或结帐使用该测试接口产生的交易数据)。测试接口的使用方法和真实接口一致,只需由真实接口的PrePayC1改为测试接口的TestPrepayC1。即

C1BranchID=xxxx&

CoNo=..&BillNo=..&Amount=..&Date=..&MerchantUrl=..

改为

TestPrePayC1BranchID=xxxx&CoNo=..&BillNo=..&Amount=..&Date=..&Mer chantUrl=..。

注意:为防止用户利用测试接口扰乱商户正式运行的服务器,银行的测试接口通知信息中,BillNo始终为“000000”。

建议:

在本方式中,虽然在消费者付款成功后向商户发通知,但由于Internet线路问题、商户网络配置改变问题、商户服务器问题、商户程序问题等原因,商户最终接收银行通知的程序可能收不到银行通知,因此,商户不能仅仅凭是否收到银行通知确定是否给消费者提供服务,在商户作系统设计时也应当考虑到这个因素。另外,接收通知的程序应当能处理重复通知的情况。

3.连接方式3

某些商户在使用连接方式2后,还需要在银行的支付结果通知命令中带上

商户自己的参数,比如商户希望知道是哪个分支机构的定单,定单在商户内部处理的不同于定单号的流水号,或者商户希望借助这个参数建立完整的

session ,等等。

为了解决这个问题,在连接方式2的基础上,招商银行提供带商户参数的

连接方式。这就是连接方式3。

图三、连接方式3

由图示可知,方式3的流程与方式2完全一样,只是在命令格式上增加了商户参数。

连接方式3的支付命令格式有别于连接方式2,其格式为:

C2BranchID=xxxx&

CoNo=..&BillNo=..&Amount=..&Date=..&MerchantUrl=..&MerchantPar

a=..

参数说明:

BranchID: 商户开户分行号,请咨询开户的招商银行分支机构;

CoNo: 商户号,6位数字,由银行在商户开户时确定;

(5)支付结果

BillNo: 定单号,6位或10位数字,由商户系统生成,一天内不能重复;

Amount: 定单总金额,格式为:xxxx.xx元;

Date: 交易日期,格式:YYYYMMDD。

MerchantUrl 支付结果通知命令中参数部分之前的部分,例如

cgi_bin/function.asp。

注意:MerchantUrl自身不能带商户参数。

MerchantPara 商户需要银行在支付结果通知中转发的商户参数。

支付结果通知命令格式型如:

Succeed=..&CoNo=..&=BillNo=..&

Amount=..&Date=...&MerchantPara=...&Msg=..&signature=..

参数说明:

Succeed:取值Y(成功)或N(失败);

CoNo: 商户号,6位长数字,由银行在商户开户时确定;

BillNo: 定单号(由支付命令送来);

Amount: 实际支付金额(由支付命令送来);

Date: 交易日期(由支付命令送来);

Msg: 银行通知用户的支付结果消息。信息的前38个字符格式为:4位分行号+6位商户号+8位银行接受交易的日期+20位银行流水号;可以利用交易日期+银行流水号+定单号对该定单进行结帐处理;

MerchantPara:商户自己的参数;

Signature: 银行用自己的PrivateKey对通知命令的签名。

注意:

(1)商户系统如果对银行通知命令的真实性有较高要求,必须用银行提供的开

发包中的函数,结合银行的PublicKey(可从网上下载或向银行索取)验证。具体用法请参考附录。

(2)在Succeed为Y时,商户在支付结果通知命令中必须判断Amount的值,该值

为用户的实际支付金额,以此金额为准。不能以之前系统产生定单时的金额为准!这是为了防止用户在得到支付页面后修改支付金额。

(3)商户如果需要不止一个参数,可以自行把参数组合、拼装,但组合后的结

果不能带有’&’字符(如果带有’&’字符,银行收到这样的支付请求时将认为其后是另一个参数,其他可能被浏览器转义的特殊字符也应当避免),总长不能超过128个字节。例如,商户需要银行通知中转发

则可以在PrePayC2中写成

MerchantPara=

(4)银行返回的交易日期是银行主机的交易日期,对于每天重复使用定单号的

商户,可能会在0点左右与商户日期有1天的差别,按日期+定单号对帐时,可能和商户自己的定单记录有冲突。如果生成定单号永远不重复,则可以按定单号和商户自己的定单记录对帐,无须核对日期,因此不会有冲突问题,但是,永远不重复的6位定单号,部分商户可能不够用,建议这些商户使用10位的定单号。

(5)在正式交易中不要使用000000的定单号,因为测试接口在发通知时,定单

号固定为000000。

在方式2中,若用户付款后银行WEB系统或者商户WEB系统出现故障,则可能出现用户已付款但是商户WEB系统不知道的情况,或者出现用户已付款但是用户浏览器未接收到结果页的情况。这类情况属于正常情况,商户可以主动从银

行系统查询该定单的真正状况。商户系统应当考虑相应的解决办法,而不能依赖于这个通知到达与否,决定是否给消费者提供商品或服务。

和方式1比较,方式3在用户完成支付操作后控制又回到商户的系统(用户处于商户WEB系统生成的支付结果页中),增加了银行WEB系统调用商户WEB 系统的支付结果通知命令的过程。方式3比方式1复杂,并且商户WEB系统必须处理异常情况。但是方式3功能较强,使支付过程变得平滑无缝。

考虑到方式3比较复杂,并且需要连接商户端程序,我们提供了测试接口以方便商户开发程序时测试。使用该测试接口模拟真实的数据流程,但无须真实的商户代码和支付卡号,银行系统也不记录交易数据(商户不能查询或结帐使用该测试接口产生的交易数据)。测试接口的使用方法和真实接口一致,只需由真实接口的PrePayC2改为测试接口的TestPrepayC2。即由

C2BranchID=xxxx&

CoNo=..&BillNo=..&Amount=..&Date=..&MerchantUrl=..&MerchantP ara=..

改为

TestPrePayC2BranchID=xxxx&

CoNo=..&BillNo=..&Amount=..&Date=..&MerchantUrl=..&MerchantPara=。

注意:为防止用户利用测试接口扰乱商户正式运行的服务器,银行的测试接口通知信息中,BillNo始终为“000000”。

建议:

虽然在消费者付款成功后向商户发通知,但由于Internet线路问题、商户网络配置改变问题、商户服务器问题、商户程序问题等原因,商户最终接收银

行通知的程序可能收不到银行通知,因此,商户不能仅仅凭是否收到银行通知确定是否给消费者提供服务,在商户作系统设计时也应当考虑到这个因素。商户系统必须能处理重复通知的情况。

四.人工定单管理

1.操作员登录

为方便商户业务的管理,商户有必要创建不同的的操作员并对其进行权限分配。操作员创建后,就可以以定单操作员的身份登录商户系统,在其权限范围内进行查询、结账、部分结账、撤销、退款等不同的操作,完成定单管理工作。

2.结帐

对冻结结账的商户,需要商户自己手动处理定单的结账操作。以定单操作员登录,先选择要结账的未结账定单,再进行提交。

3.部分结帐

以定单操作员登录,先选择要部分结账的未结账定单,输入部分结账金额,再进行提交。

4.撤销

以定单操作员登录,先选择要撤销的未结账定单,再进行提交。

相关主题
文本预览
相关文档 最新文档