招商网上银行接口(自己的网上银行)
首先请你到招行去申请成为网上特约商户,此时会给你开一个基本帐户,这个基本帐户对应
一个对公帐户。
个人消费用户使用的是一卡通,一卡通基本帐户也对应有一个网上使用支付卡帐号
在支付的过程中流程是如此的:
例如:你要买一个20块钱的东西
首先从基本一卡通帐户划10MONEY到你的网上支付卡中
在商户网页上确认支付商户将引导您进入银行页面
在银行页面中确认支付会将您的支付卡中的20MEONY支付到商户的对公帐户
此时的对公帐户上的钱钱并不算归商户所有
商户利用自己的系统看到你的定单,然后到银行给商户提供的系统中去看是否已经到帐,如
果钱已经到帐而且可以进行此笔交易的话则将钱划到商户的基本帐户,此时钱才归商户所有
。如果商户没有此商品或者此笔交易不能进行或者商户在银行规定的时间内没有对此帐进行
处理那么到时间后此笔钱将划回用户自己的支付卡中,用户可以在支付卡和自己的基本帐号
中自由转钱。
在交易过程可以用明码,也可以用银行给的文件进行二次开发对商户和银行进行身份的确认
,相对来说还是很简单的。
由此看来最主要的仅仅是商户的开发页来引导用户和银行系统之间进行会话,
这个过程也相对来说非常简单,下面附招商银行的接口部分原文……
3. 网上支付方式
网上支付方式分为两种,分别称为方式1和方式2。
?
?
?
来自: http://wangxiaojs.iteye.com/blog/294187
3.1. 网上支付方式1
为了确保网上交易中资金的安全性,用户需要在一卡通中为网上交易开设一个专门
的网上交易专户,对应有一张网上支付卡,并有一个对应的网上交易密码。用户需要用招商
银行网上个人银行或者电话银行在一卡通和网上支付卡之间转钱。
在网上交易过程中,用户先处于商户的网页中。当用户查看完购物篮并决定购买时
,商户WEB系统将要求用户输入送货地址、联系电话等信息。然后,商户WEB系统根据购物篮
内容生成相应定单,并生成支付网页回送用户浏览器。定单一般包括:定单号、交易日期、
货品数量和单价及总计价、送货地址、联系电话等。支付网页包括:定单内容和选择招商银
行网上支付卡支付按钮。
当用户在支付网页中选择招商银行网上支付卡付款时,支付网页向银行WEB系统发
出支付命令。银行WEB系统处理完支付请求后,将回送用户支付结果页面。
支付命令格式如下:
https://CMBHost/netpayment/BaseHttp.dll?PrePayC?BranchID=xxxx&CoNo=xxxxxx&BillNo
=xxxxxx&Amount=xxx.xx&Date=YYYYMMDD
用中心分行网址替换CMBHost。
参数说明:
BranchID: 商户开户分行号,请咨询开户的招商银行分支机构;
CoNo: 商户号,6位长数字,由银行在商户开户时确定;
BillNo: 定单号,6位长数字,由商户系统生成,一天内不能重
复;
Amount: 定单总金额,格式为:xxxx.xx元;
Date: 交易日期,格式:YYYYMMDD。
支付页面提交的FORM格式示例如下:
<form action="https://CMBHost/netpayment/BaseHttp.dll?PrePayC"METHOD=
POST>
<p><table>
<input type=hidden name=" BranchID " value="0755">
<input type=hidden name="CoNo" value="100001">
<input type=hidden name="BillNo" value="000023">
<input type=hidden name="Amount" value="818.66">
<input type=hidden name="Date" value="19981010">
<tr>
<td>定单号<td>000023
<tr>
<td>金 额<td>818.66
<tr>
<td>日 期<td>19981010
<tr>
<td><input type=submit value="提交">
</table>
</form>
方式1的特点是商户WEB系统通过支付页面把控制引导到银行WEB系统,银行WEB系统
处理完支付请求后回送支付结果页面给用户,控制没有再回到商户WEB系统。
商户在和银行结帐时(见5.2.节)可以知道定单的付款情况。如果商户系统需要立刻核实定单
付款情况,可以使用一个直联定单状态查询接口向银行WEB系统查询某个定单的状态。有关直
联定单状态查询接口请见3.3.节。
3.2. 网上支付方式2
某些商户在用户完成支付过程后希望控制能够从银行WEB系统自动转回商户WEB系统
,并且商户WEB系统能够知道用户的付款情况。比如,出售信息产品的商户,在支付成功的情
况下,商户的结果页除包含支付成功通知信息外,还可以包含用户购买的信息产品。
为了解决这个问题,要求商户WEB系统必须提供一个支付结果通知命令。银行WEB系
统在收到支付网页发出的支付命令后,先执行扣款操作,然后调用商户WEB系统的支付结果通
知命令,把支付结果通知商户WEB系统,同时取得商户WEB系统生成的支付结果页面(由支付结
果通知命令生成)。最后,银行WEB系统把由商户WEB系统的支付结果通知命令生成的支付结果
页返回用户的浏览器。这就是支付方式2。
支付结果通知命令格式型如:
http://www.merchant.com/path/ProcResult.dll?Succeed=..&BillNo=..&Amount
=..&Date=..&Msg=..&signature=..
其中,path和ProcResult.dll由商户任意确定,并且支付命令中可包含多个path,
即可有path1/path2/path3。
参数说明:
Succeed: 取值Y(成功)或N(失败);
BillNo: 定单号(由支付命令送来);
Amount: 实际支付金额(由支付命令送来);
Date: 交易日期(由支付命令送来);
Msg: 银行通知用户的支付结果消息,在支付成功时为“付款请
求已被银行接受。”,在支付失败时是失败原因;
Signature: 银行用自己的Private Key对通知命令的签名。
注意:
(1)商户系统如果对银行通知命令的真实性有较高要求,必须用银行提供的开发包中的函数,
结合银行的Public Key(可从网上下载或向银行索取)验证。具体用法请参考附录3。
(2)商户系统也可以进一步判断该命令发出方的IP地址为招商银行网站的IP地址,以防止用户
伪造。如果商户系统对银行通知命令的真实性要求不是很高,只验证IP也可,这样可降低商
户系统开发的复杂性。
(3)在Succeed为Y时,商户在支付结果通知命令中必须判断Amount的值,该值为用户的实际支
付金额,以此金额为准。不能以之前系统产生定单时的金额为准!这是为了防止用户在得到
支付页面后修改支付金额。