招商網(wǎng)上銀行接口(自己的網(wǎng)上銀行)
...
首先請你到招行去申請成為網(wǎng)上特約商戶,此時會給你開一個基本帳戶,這個基本帳戶對應(yīng)
一個對公帳戶。
個人消費用戶使用的是一卡通,一卡通基本帳戶也對應(yīng)有一個網(wǎng)上使用支付卡帳號
在支付的過程中流程是如此的:
例如:你要買一個20塊錢的東西
首先從基本一卡通帳戶劃10MONEY到你的網(wǎng)上支付卡中
在商戶網(wǎng)頁上確認(rèn)支付商戶將引導(dǎo)您進入銀行頁面
在銀行頁面中確認(rèn)支付會將您的支付卡中的20MEONY支付到商戶的對公帳戶
此時的對公帳戶上的錢錢并不算歸商戶所有
商戶利用自己的系統(tǒng)看到你的定單,然后到銀行給商戶提供的系統(tǒng)中去看是否已經(jīng)到帳,如
果錢已經(jīng)到帳而且可以進行此筆交易的話則將錢劃到商戶的基本帳戶,此時錢才歸商戶所有
。如果商戶沒有此商品或者此筆交易不能進行或者商戶在銀行規(guī)定的時間內(nèi)沒有對此帳進行
處理那么到時間后此筆錢將劃回用戶自己的支付卡中,用戶可以在支付卡和自己的基本帳號
中自由轉(zhuǎn)錢。
在交易過程可以用明碼,也可以用銀行給的文件進行二次開發(fā)對商戶和銀行進行身份的確認(rèn)
,相對來說還是很簡單的。
由此看來最主要的僅僅是商戶的開發(fā)頁來引導(dǎo)用戶和銀行系統(tǒng)之間進行會話,
這個過程也相對來說非常簡單,下面附招商銀行的接口部分原文……
3. 網(wǎng)上支付方式
網(wǎng)上支付方式分為兩種,分別稱為方式1和方式2。
3.1. 網(wǎng)上支付方式1
為了確保網(wǎng)上交易中資金的安全性,用戶需要在一卡通中為網(wǎng)上交易開設(shè)一個專門
的網(wǎng)上交易專戶,對應(yīng)有一張網(wǎng)上支付卡,并有一個對應(yīng)的網(wǎng)上交易密碼。用戶需要用招商
銀行網(wǎng)上個人銀行或者電話銀行在一卡通和網(wǎng)上支付卡之間轉(zhuǎn)錢。
在網(wǎng)上交易過程中,用戶先處于商戶的網(wǎng)頁中。當(dāng)用戶查看完購物籃并決定購買時
,商戶WEB系統(tǒng)將要求用戶輸入送貨地址、聯(lián)系電話等信息。然后,商戶WEB系統(tǒng)根據(jù)購物籃
內(nèi)容生成相應(yīng)定單,并生成支付網(wǎng)頁回送用戶瀏覽器。定單一般包括:定單號、交易日期、
貨品數(shù)量和單價及總計價、送貨地址、聯(lián)系電話等。支付網(wǎng)頁包括:定單內(nèi)容和選擇招商銀
行網(wǎng)上支付卡支付按鈕。
當(dāng)用戶在支付網(wǎng)頁中選擇招商銀行網(wǎng)上支付卡付款時,支付網(wǎng)頁向銀行WEB系統(tǒng)發(fā)
出支付命令。銀行WEB系統(tǒng)處理完支付請求后,將回送用戶支付結(jié)果頁面。
支付命令格式如下:
https://CMBHost/netpayment/BaseHttp.dll?PrePayC?BranchID=xxxx&CoNo=xxxxxx&BillNo
=xxxxxx&Amount=xxx.xx&Date=YYYYMMDD
用中心分行網(wǎng)址替換CMBHost。
參數(shù)說明:
BranchID: 商戶開戶分行號,請咨詢開戶的招商銀行分支機構(gòu);
CoNo: 商戶號,6位長數(shù)字,由銀行在商戶開戶時確定;
BillNo: 定單號,6位長數(shù)字,由商戶系統(tǒng)生成,一天內(nèi)不能重
復(fù);
Amount: 定單總金額,格式為:xxxx.xx元;
Date: 交易日期,格式:YYYYMMDD。
支付頁面提交的FORM格式示例如下:
定單號 |
000023 |
金 額 |
818.66 |
日 期 |
19981010 |
|
方式1的特點是商戶WEB系統(tǒng)通過支付頁面把控制引導(dǎo)到銀行WEB系統(tǒng),銀行WEB系統(tǒng)
處理完支付請求后回送支付結(jié)果頁面給用戶,控制沒有再回到商戶WEB系統(tǒng)。
商戶在和銀行結(jié)帳時(見5.2.節(jié))可以知道定單的付款情況。如果商戶系統(tǒng)需要立刻核實定單
付款情況,可以使用一個直聯(lián)定單狀態(tài)查詢接口向銀行WEB系統(tǒng)查詢某個定單的狀態(tài)。有關(guān)直
聯(lián)定單狀態(tài)查詢接口請見3.3.節(jié)。
3.2. 網(wǎng)上支付方式2
某些商戶在用戶完成支付過程后希望控制能夠從銀行WEB系統(tǒng)自動轉(zhuǎn)回商戶WEB系統(tǒng)
,并且商戶WEB系統(tǒng)能夠知道用戶的付款情況。比如,出售信息產(chǎn)品的商戶,在支付成功的情
況下,商戶的結(jié)果頁除包含支付成功通知信息外,還可以包含用戶購買的信息產(chǎn)品。
為了解決這個問題,要求商戶WEB系統(tǒng)必須提供一個支付結(jié)果通知命令。銀行WEB系
統(tǒng)在收到支付網(wǎng)頁發(fā)出的支付命令后,先執(zhí)行扣款操作,然后調(diào)用商戶WEB系統(tǒng)的支付結(jié)果通
知命令,把支付結(jié)果通知商戶WEB系統(tǒng),同時取得商戶WEB系統(tǒng)生成的支付結(jié)果頁面(由支付結(jié)
果通知命令生成)。最后,銀行WEB系統(tǒng)把由商戶WEB系統(tǒng)的支付結(jié)果通知命令生成的支付結(jié)果
頁返回用戶的瀏覽器。這就是支付方式2。
支付結(jié)果通知命令格式型如:
http://www.merchant.com/path/ProcResult.dll?Succeed=..&BillNo=..&Amount
=..&Date=..&Msg=..&signature=..
其中,path和ProcResult.dll由商戶任意確定,并且支付命令中可包含多個path,
即可有path1/path2/path3。
參數(shù)說明:
Succeed: 取值Y(成功)或N(失敗);
BillNo: 定單號(由支付命令送來);
Amount: 實際支付金額(由支付命令送來);
Date: 交易日期(由支付命令送來);
Msg: 銀行通知用戶的支付結(jié)果消息,在支付成功時為“付款請
求已被銀行接受?!?,在支付失敗時是失敗原因;
Signature: 銀行用自己的Private Key對通知命令的簽名。
注意:
(1)商戶系統(tǒng)如果對銀行通知命令的真實性有較高要求,必須用銀行提供的開發(fā)包中的函數(shù),
結(jié)合銀行的Public Key(可從網(wǎng)上下載或向銀行索取)驗證。具體用法請參考附錄3。
(2)商戶系統(tǒng)也可以進一步判斷該命令發(fā)出方的IP地址為招商銀行網(wǎng)站的IP地址,以防止用戶
偽造。如果商戶系統(tǒng)對銀行通知命令的真實性要求不是很高,只驗證IP也可,這樣可降低商
戶系統(tǒng)開發(fā)的復(fù)雜性。
(3)在Succeed為Y時,商戶在支付結(jié)果通知命令中必須判斷Amount的值,該值為用戶的實際支
付金額,以此金額為準(zhǔn)。不能以之前系統(tǒng)產(chǎn)生定單時的金額為準(zhǔn)!這是為了防止用戶在得到
支付頁面后修改支付金額。
支付方式2的支付命令格式有別于支付方式1,其格式為:
https://CMBHost/netpayment/BaseHttp.dll?PrePayC1?BranchID=xxxx&CoNo=..&
BillNo=..& Amount=..&Date=..&MerchantUrl=..
用中心分行網(wǎng)址替換CMBHost。
前五個參數(shù)同支付過程1,第六個參數(shù)MerchantUrl為支付結(jié)果通知命令中參數(shù)部分
之前的部分,也就是http://www.merchant.com/path/ProcResult.dll。
在方式2中,若用戶付款后銀行WEB系統(tǒng)或者商戶WEB系統(tǒng)出現(xiàn)故障,則可能出現(xiàn)用
戶已付款但是商戶WEB系統(tǒng)不知道的情況,或者出現(xiàn)用戶已付款但是用戶瀏覽器未接收到結(jié)果
頁的情況。如果這種異常情況會引起付款糾紛,則該商戶必須由銀行設(shè)置為非立即結(jié)帳商戶
,由商戶利用結(jié)帳功能中的撤消定單功能解決這類付款糾紛。
和方式1比較,方式2在用戶完成支付操作后控制又回到商戶的系統(tǒng)(用戶處于商戶
WEB系統(tǒng)生成的支付結(jié)果頁中),增加了銀行WEB系統(tǒng)調(diào)用商戶WEB系統(tǒng)的支付結(jié)果通知命令的
過程。方式2比方式1復(fù)雜,并且商戶WEB系統(tǒng)必須處理異常情況。但是方式2功能較強,使支
付過程變得平滑無縫。在商戶的Web系統(tǒng)向銀行返回結(jié)果網(wǎng)頁時,網(wǎng)頁中應(yīng)當(dāng)有e="CMBNETPAYMENT" content="China Merchants Bank">,供銀行判斷是否為有效返回網(wǎng)頁
,以避免商戶服務(wù)器失控后自動返回未知的信息而使消費者迷惑。不管是商戶停機、網(wǎng)絡(luò)中
斷或者Web服務(wù)器失控,銀行都將屏蔽商戶系統(tǒng)的問題,并用正常的網(wǎng)頁替代商戶網(wǎng)頁返回給
消費者,使消費者能繼續(xù)正確操作。一旦發(fā)生這種情況,銀行將通過電話銀行中心以電話與
商戶管理服務(wù)器的人員聯(lián)系,提醒其系統(tǒng)發(fā)生故障。
考慮到方式2比較復(fù)雜,并且需要連接商戶端程序,我們提供了測試接口以方便商
戶開發(fā)程序時測試。使用該測試接口模擬真實的數(shù)據(jù)流程,但無須真實的商戶代碼和支付卡
號,銀行系統(tǒng)也不記錄交易數(shù)據(jù)(商戶不能查詢或結(jié)帳使用該測試接口產(chǎn)生的交易數(shù)據(jù))。
測試接口的使用方法和真實接口一致,只需由真實接口的PrePayC1改為測試接口的TestPrep
ayC1。
注意:為防止用戶利用測試接口擾亂商戶正式運行的服務(wù)器,銀行的測試接口通知
信息中,BillNo始終為“000000”。
https://CMBHost/netpayment/BaseHttp.dll?PrePayC1?BranchID=xxxx&CoNo=..&
BillNo=..& Amount=..&Date=..&MerchantUrl=..
改為
https://CMBHost/netpayment/BaseHttp.dll?TestPrePayC1? BranchID=xxxx&CoN
o=..&BillNo=..& Amount=..&Date=..&MerchantUrl=..。
建議:一般銷售實物的網(wǎng)站應(yīng)盡量采用方式1。在方式2中,持卡人付款完畢,銀行立即從商
戶網(wǎng)站取得返回頁面,如果商戶網(wǎng)站或者通訊線路出現(xiàn)任何問題,持卡人將看到不可理解的
信息,從而誘導(dǎo)持卡人作進一步的誤操作。
上一條:支付寶,網(wǎng)銀在線,快錢 3大支付接口的集成與對比,統(tǒng)合實現(xiàn)。
下一條:ASP字符串函數(shù)大全