招商銀行網(wǎng)上支付商戶手冊(cè)_第1頁(yè)
招商銀行網(wǎng)上支付商戶手冊(cè)_第2頁(yè)
招商銀行網(wǎng)上支付商戶手冊(cè)_第3頁(yè)
招商銀行網(wǎng)上支付商戶手冊(cè)_第4頁(yè)
招商銀行網(wǎng)上支付商戶手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、招商銀行網(wǎng)上支付商戶手冊(cè)修訂日期:2005年8月1日目錄手冊(cè)說(shuō)明21本手冊(cè)的讀者范圍22前提條件和相關(guān)信息23相對(duì)以前版本的更新2一招商銀行網(wǎng)上支付簡(jiǎn)介21什么是招商銀行網(wǎng)上支付22如何成為招商銀行網(wǎng)上支付特約商戶23如何使用招商銀行網(wǎng)上支付系統(tǒng)34加入招商銀行網(wǎng)上支付,對(duì)商戶電腦系統(tǒng)有什么要求35如何與招商銀行聯(lián)系36招商銀行網(wǎng)上支付的安全措施3二系統(tǒng)管理41實(shí)體關(guān)系42系統(tǒng)管理5三支付交易61連接方式162連接方式273連接方式310四人工定單管理121操作員登錄122結(jié)帳123部分結(jié)帳124撤銷(xiāo)125自動(dòng)撤消136退款13五程序定單管理131程序定單管理簡(jiǎn)介132商戶開(kāi)發(fā)指引1321采用

2、支付方式1的商戶1422采用支付方式2、3的商戶1423分頁(yè)方式查詢的使用方法1524交易管理開(kāi)發(fā)包使用注意事項(xiàng)和建議15六舊商戶系統(tǒng)用戶須知15附錄:開(kāi)發(fā)包接口參考161. DLL版本的開(kāi)發(fā)包161. 1. 使用Lib形式的商戶開(kāi)發(fā)包1612. 使用Dll形式的商戶開(kāi)發(fā)包1613. DLL的其他使用形式1614 開(kāi)發(fā)包中的API說(shuō)明:162. 控件版本的交易管理開(kāi)發(fā)包2121注冊(cè)控件2122開(kāi)發(fā)包中的API說(shuō)明213. Java版本的交易管理開(kāi)發(fā)包241. 使用Java版商戶開(kāi)發(fā)包前的準(zhǔn)備工作242檢驗(yàn)數(shù)字簽名API說(shuō)明252定單管理API說(shuō)明26手冊(cè)說(shuō)明1本手冊(cè)的讀者范圍本手冊(cè)適用于希望成

3、為招商銀行網(wǎng)上支付商戶,或者已經(jīng)成為招商銀行網(wǎng)上支付商戶的業(yè)務(wù)管理人員、電腦系統(tǒng)開(kāi)發(fā)人員。2前提條件和相關(guān)信息前提條件是對(duì)Internet、電腦有初步的了解,對(duì)一些常見(jiàn)的技術(shù)名詞有一定的認(rèn)識(shí)。3相對(duì)以前版本的更新相對(duì)以前版本,本文更新了商戶內(nèi)部管理模式,增加了新的管理功能,增強(qiáng)了連接方式。一招商銀行網(wǎng)上支付簡(jiǎn)介1什么是招商銀行網(wǎng)上支付招商銀行網(wǎng)上支付是招商銀行提供的網(wǎng)上付款結(jié)算平臺(tái),通過(guò)這個(gè)平臺(tái),數(shù)千萬(wàn)招商銀行持卡人可以向特約商戶進(jìn)行網(wǎng)上付款,全國(guó)聯(lián)網(wǎng),實(shí)時(shí)到帳。2如何成為招商銀行網(wǎng)上支付特約商戶(1) 商戶與當(dāng)?shù)卣猩蹄y行的分行個(gè)人銀行部聯(lián)系,申請(qǐng)成為我行的網(wǎng)上特約商戶,填寫(xiě)相關(guān)資料。聯(lián)系方式

4、及聯(lián)系人,請(qǐng)查閱招商銀行網(wǎng)站()。(2) 辦理簽定合約手續(xù)。(3) 商戶在我行開(kāi)立結(jié)算帳戶。結(jié)算帳戶設(shè)立浮動(dòng)備付金,備付金比例按照商戶資信情況確定。 (4) 根據(jù)銀行提供的技術(shù)接口,商戶聯(lián)通與我行的支付網(wǎng)絡(luò)。 3如何使用招商銀行網(wǎng)上支付系統(tǒng)(5) 付款通道。付款通道是持卡人進(jìn)行網(wǎng)上付款的界面,商戶系統(tǒng)以Internet超鏈接的方式,從商戶網(wǎng)站轉(zhuǎn)到銀行的付款通道,對(duì)商戶電腦系統(tǒng)沒(méi)有特殊要求。(6) 商戶管理。商戶可以通過(guò)以下幾種方式管理招商銀行的定單:1 商戶業(yè)務(wù)管理網(wǎng)站:Web界面,人工管理定單,為特約商戶提供全面的網(wǎng)上支付業(yè)務(wù)管理功能。 2 定單下載工具:方便特約商戶下載自己的定單數(shù)據(jù),進(jìn)行

5、進(jìn)一步處理。3 支付軟件開(kāi)發(fā)包:提供二次開(kāi)發(fā)接口,在商戶系統(tǒng)中嵌入支付管理功能,自動(dòng)、實(shí)時(shí)管理定單。4加入招商銀行網(wǎng)上支付,對(duì)商戶電腦系統(tǒng)有什么要求招商銀行提高多種方式供商戶使用,商戶可根據(jù)自己的情況選擇。最簡(jiǎn)單的方式,商戶以網(wǎng)頁(yè)中的Internet超鏈接轉(zhuǎn)到銀行的付款通道,以商戶業(yè)務(wù)管理網(wǎng)站管理定單。在這種情況下,商戶甚至可以沒(méi)有自己的電腦系統(tǒng)。如果商戶不具備程序開(kāi)發(fā)能力,但有常見(jiàn)的辦公處理軟件使用經(jīng)驗(yàn),可以通過(guò)定單下載工具下載數(shù)據(jù),結(jié)合商戶業(yè)務(wù)管理網(wǎng)站,自己在辦公處理軟件中處理。如果商戶開(kāi)發(fā)能力較強(qiáng),可以通過(guò)銀行提供的軟件開(kāi)發(fā)包開(kāi)發(fā)軟件,把自己的系統(tǒng)和銀行對(duì)接,就可以全自動(dòng)、實(shí)時(shí)地處理業(yè)務(wù)

6、。5如何與招商銀行聯(lián)系請(qǐng)到招商銀行網(wǎng)站()查閱。6招商銀行網(wǎng)上支付的安全措施基本的網(wǎng)上交易的傳輸安全控制手段采用SSL(Secure Socket Layer),SSL是一種被廣泛使用的INTERNET傳輸加密標(biāo)準(zhǔn)。銀行端的WEB SERVER將安裝一個(gè)證書(shū)(Certificate),客戶端的瀏覽器發(fā)送CGI請(qǐng)求時(shí)使用https協(xié)議。所有用https發(fā)送的請(qǐng)求以及Web Server返回的結(jié)果都會(huì)自動(dòng)使用SSL加密。對(duì)商戶來(lái)說(shuō),商戶在其管理電腦上登錄時(shí),要提供登錄密碼。為了增加商戶登錄的安全性, 在登錄頁(yè)之前增加了一個(gè)預(yù)登錄頁(yè), 商戶需先輸入預(yù)登錄密碼才能進(jìn)入到登錄頁(yè),預(yù)登錄密碼不能修改。每個(gè)

7、商戶可以設(shè)置多個(gè)操作員,每個(gè)操作員擁有不同的密碼,其權(quán)限以崗位的方式組織,每個(gè)崗位有不同的權(quán)限,以實(shí)現(xiàn)企業(yè)內(nèi)部的安全管理。對(duì)風(fēng)險(xiǎn)較高的操作,如退款,還要求配合企業(yè)證書(shū)IC卡操作。二系統(tǒng)管理1實(shí)體關(guān)系商戶的系統(tǒng)管理包括以下內(nèi)容:(1) 店鋪店鋪是生成定單的基礎(chǔ)實(shí)體,每個(gè)商戶至少有一個(gè)由銀行自動(dòng)生成的店鋪,也可以由商戶自行設(shè)置多個(gè)店鋪,以便區(qū)分不同的交易,以及不同的定單管理,等等。注意,這里的店鋪并非某些支付平臺(tái)網(wǎng)站上的“店鋪”概念,這里的“店鋪”純粹是為了商戶分權(quán)限管理定單,例如為沖值類(lèi)型支付分配一個(gè)“店鋪”,為購(gòu)物類(lèi)型支付分配另一個(gè)“店鋪”,等等,數(shù)目不會(huì)很大,否則商戶內(nèi)部管理這些權(quán)限將是非常

8、煩瑣的。而支付平臺(tái)網(wǎng)站上“店鋪”,可能是某個(gè)公司,甚至某個(gè)人在支付平臺(tái)上注冊(cè)的基本單位,其數(shù)目是相當(dāng)龐大的。(2) 定單每筆交易視為一個(gè)定單,由商戶生成定單號(hào),以后可對(duì)該定單進(jìn)行后續(xù)處理,如結(jié)帳(包括結(jié)帳、部分結(jié)帳、撤消)、退款、查詢等。(3) 崗位崗位實(shí)際上是權(quán)限的組合,可以精細(xì)到對(duì)不同店鋪生成的定單進(jìn)行不同的操作權(quán)限,例如A崗位能對(duì)0001店鋪定單查詢,B崗位能對(duì)0001、0002店鋪定單結(jié)帳、退款,等等。每個(gè)崗位可以管理多個(gè)店鋪,每個(gè)店鋪也可以由多個(gè)崗位管理。(4) 操作員操作員是商戶管理定單的直接操作者,每個(gè)操作員有一個(gè)4位數(shù)字的操作員號(hào),每個(gè)操作員必須賦予至少一個(gè)崗位,也可以賦予多個(gè)

9、崗位,以適應(yīng)企業(yè)內(nèi)部靈活的管理方式。操作員的權(quán)限由其崗位決定。(5) 系統(tǒng)管理員系統(tǒng)管理員可以對(duì)店鋪、崗位、操作員等進(jìn)行增加、修改、刪除等操作。以上實(shí)體的關(guān)系可用下圖說(shuō)明:2系統(tǒng)管理系統(tǒng)管理指商戶系統(tǒng)管理員對(duì)店鋪、崗位、操作員等進(jìn)行增加、修改、刪除等操作。通過(guò)系統(tǒng)管理,商戶可以靈活配置自己的業(yè)務(wù)模式,適應(yīng)自己的業(yè)務(wù)需求。(1) 系統(tǒng)管理員登錄每個(gè)商戶有一個(gè)系統(tǒng)管理員,商戶開(kāi)通招商銀行網(wǎng)上支付后,銀行自動(dòng)生成一個(gè)系統(tǒng)管理員。系統(tǒng)管理員登錄需要選擇開(kāi)戶分行,輸入商戶號(hào)和管理員密碼。(2) 店鋪管理系統(tǒng)管理員可以增加、修改、刪除店鋪。一般來(lái)說(shuō),一個(gè)商戶只需一個(gè)店鋪即可,但如果需要對(duì)定單區(qū)別處理,可以

10、增加新店鋪。例如跨地區(qū)的商戶需要把北京、上海的定單分開(kāi)處理;再如需要分配不同的操作員管理不同類(lèi)型的定單,等等。但是,店鋪不宜太多,一般不要超過(guò)5個(gè),否則商戶內(nèi)部的管理、權(quán)限的分配調(diào)整等等將比較煩瑣。(3) 崗位管理系統(tǒng)管理員可以增加、修改、刪除崗位。崗位實(shí)際上是權(quán)限的組合,因此崗位不宜太多,否則商戶內(nèi)部的管理、權(quán)限的分配調(diào)整等等將比較煩瑣。(4) 操作員管理系統(tǒng)管理員可以增加、修改、刪除操作員。每個(gè)操作員必須賦予至少一個(gè)崗位,也可以賦予多個(gè)崗位。三支付交易1連接方式1在網(wǎng)上交易過(guò)程中,用戶先在商戶網(wǎng)頁(yè)中選擇商品。當(dāng)用戶在支付網(wǎng)頁(yè)中選擇招商銀行網(wǎng)上支付付款時(shí),商戶支付網(wǎng)頁(yè)向銀行WEB系統(tǒng)發(fā)出支付

11、命令(見(jiàn)圖一)。銀行WEB系統(tǒng)處理完支付請(qǐng)求后,將回送用戶支付結(jié)果頁(yè)面。 銀行 WEB 商戶 WEB(1)生成支付網(wǎng)頁(yè)(2)支付命令(3)支付結(jié)果頁(yè) 用戶瀏覽器 連接方式1支付命令格式如下:CoNo=xxxxxx&BillNo=xxxxxx&Amount=xxx.xx&Date=YYYYMMDD參數(shù)說(shuō)明:BranchID:商戶開(kāi)戶分行號(hào),請(qǐng)咨詢開(kāi)戶的招商銀行分支機(jī)構(gòu);CoNo:商戶號(hào),6位數(shù)字,由銀行在商戶開(kāi)戶時(shí)確定;BillNo:定單號(hào),6位或10位數(shù)字,由商戶系統(tǒng)生成,一天內(nèi)不能重復(fù);Amount:定單總金額,格式為:xxxx.xx元;Date:交易日期,格式:YY

12、YYMMDD。支付頁(yè)面提交的FORM格式示例如下:<form action=" 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&qu

13、ot;><input type=hidden name="Amount" value="818.66"><input type=hidden name="Date" value="20050101"><tr><td>定單號(hào)<td>000023<tr><td>金 額<td>818.66<tr><td>日 期<td>20050101<tr><td><in

14、put type=submit value="提交"></table></form>連接方式1的特點(diǎn)是商戶WEB系統(tǒng)通過(guò)支付頁(yè)面把控制引導(dǎo)到銀行WEB系統(tǒng),銀行WEB系統(tǒng)處理完支付請(qǐng)求后回送支付結(jié)果頁(yè)面給用戶,控制沒(méi)有再回到商戶WEB系統(tǒng)。商戶在銀行網(wǎng)站進(jìn)行定單管理時(shí)可以知道定單的付款情況。如果商戶系統(tǒng)需要立刻核實(shí)定單付款情況,可以使用一個(gè)銀行提供的開(kāi)發(fā)包中的定單狀態(tài)查詢接口向銀行WEB系統(tǒng)查詢某個(gè)定單的狀態(tài)。有關(guān)直聯(lián)定單狀態(tài)查詢接口請(qǐng)見(jiàn)附錄。2連接方式2某些商戶在用戶完成支付過(guò)程后希望控制能夠從銀行WEB系統(tǒng)自動(dòng)轉(zhuǎn)回商戶WEB系統(tǒng),并且商戶W

15、EB系統(tǒng)能夠知道用戶的付款情況。比如,出售信息產(chǎn)品的商戶,在支付成功的情況下,商戶的結(jié)果頁(yè)除包含支付成功通知信息外,還可以包含用戶購(gòu)買(mǎi)的信息產(chǎn)品。為了解決這個(gè)問(wèn)題,要求商戶WEB系統(tǒng)必須提供一個(gè)支付結(jié)果通知命令。銀行WEB系統(tǒng)在收到支付網(wǎng)頁(yè)發(fā)出的支付命令后,先執(zhí)行扣款操作,然后調(diào)用商戶WEB系統(tǒng)的支付結(jié)果通知命令,把支付結(jié)果通知商戶WEB系統(tǒng),同時(shí)取得商戶WEB系統(tǒng)生成的支付結(jié)果頁(yè)面(由支付結(jié)果通知命令生成)。最后,銀行WEB系統(tǒng)把由商戶WEB系統(tǒng)的支付結(jié)果通知命令生成的支付結(jié)果頁(yè)返回用戶的瀏覽器。這就是連接方式2(見(jiàn)下圖)。 商戶 WEB(1)生成支付網(wǎng)頁(yè)(3)支付結(jié)果通知命令(4)商戶結(jié)果

16、頁(yè)(2)支付命令(5)支付結(jié)果頁(yè) 銀行 WEB 用戶瀏覽器 連接方式2支付結(jié)果通知命令格式型如:其中,path和ProcResult.dll由商戶任意確定,并且支付命令中可包含多個(gè)path,即可有path1/path2/path3。參數(shù)說(shuō)明:Succeed:取值Y(成功)或N(失敗);BillNo:定單號(hào)(由支付命令送來(lái));Amount:實(shí)際支付金額(由支付命令送來(lái));Date:交易日期(主機(jī)交易日期);Msg:銀行通知用戶的支付結(jié)果消息。信息的前38個(gè)字符格式為:4位分行號(hào)6位商戶號(hào)8位銀行接受交易的日期20位銀行流水號(hào);可以利用交易日期銀行流水號(hào)對(duì)該定單進(jìn)行結(jié)帳處理;Signature:銀

17、行用自己的Private Key對(duì)通知命令的簽名。注意:(1) 商戶系統(tǒng)如果對(duì)銀行通知命令的真實(shí)性有較高要求,必須用銀行提供的開(kāi)發(fā)包中的函數(shù),結(jié)合銀行的Public Key(可從網(wǎng)上下載或向銀行索取)驗(yàn)證。具體用法請(qǐng)參考附錄。(2) 在Succeed為Y時(shí),商戶在支付結(jié)果通知命令中必須判斷Amount的值,該值為用戶的實(shí)際支付金額,以此金額為準(zhǔn)。不能以之前系統(tǒng)產(chǎn)生定單時(shí)的金額為準(zhǔn)!這是為了防止用戶在得到支付頁(yè)面后修改支付金額。(3) 銀行返回的交易日期是銀行主機(jī)的交易日期,對(duì)于每天重復(fù)使用定單號(hào)的商戶,可能會(huì)在0點(diǎn)左右與商戶日期有1天的差別,按日期+定單號(hào)對(duì)帳時(shí),可能和商戶自己的定單記錄有沖突

18、。如果生成定單號(hào)永遠(yuǎn)不重復(fù),則可以按定單號(hào)和商戶自己的定單記錄對(duì)帳,無(wú)須核對(duì)日期,因此不會(huì)有沖突問(wèn)題,但是,永遠(yuǎn)不重復(fù)的6位定單號(hào),部分商戶可能不夠用,建議這些商戶使用10位的定單號(hào)。(4) 在正式交易中不要使用000000的定單號(hào),因?yàn)闇y(cè)試接口在發(fā)通知時(shí),定單號(hào)固定為000000。連接方式2的支付命令格式有別于連接方式1,其格式為:t/netpayment/BaseHttp.dll?PrePayC1? BranchID=xxxx&CoNo=.&BillNo=.& Amount=.&Date=.&MerchantUrl=.前五個(gè)參數(shù)同連接方式1,第六個(gè)參

19、數(shù)MerchantUrl為支付結(jié)果通知命令中參數(shù)部分之前的部分,也就是在方式2中,若用戶付款后銀行WEB系統(tǒng)或者商戶WEB系統(tǒng)出現(xiàn)故障,則可能出現(xiàn)用戶已付款但是商戶WEB系統(tǒng)不知道的情況,或者出現(xiàn)用戶已付款但是用戶瀏覽器未接收到結(jié)果頁(yè)的情況。這類(lèi)情況屬于正常情況,商戶可以主動(dòng)從銀行系統(tǒng)查詢?cè)摱▎蔚恼嬲隣顩r。商戶系統(tǒng)應(yīng)當(dāng)考慮相應(yīng)的解決辦法,而不能依賴于這個(gè)通知到達(dá)與否,決定是否給消費(fèi)者提供商品或服務(wù)。和方式1比較,方式2在用戶完成支付操作后控制又回到商戶的系統(tǒng)(用戶處于商戶WEB系統(tǒng)生成的支付結(jié)果頁(yè)中),增加了銀行WEB系統(tǒng)調(diào)用商戶WEB系統(tǒng)的支付結(jié)果通知命令的過(guò)程。方式2比方式1復(fù)雜,并且商戶

20、WEB系統(tǒng)必須處理異常情況。但是方式2功能較強(qiáng),使支付過(guò)程變得平滑無(wú)縫。在商戶的Web系統(tǒng)向銀行返回結(jié)果網(wǎng)頁(yè)時(shí),網(wǎng)頁(yè)中應(yīng)當(dāng)有<meta name="CMBNETPAYMENT" content="China Merchants Bank">,供銀行判斷是否為有效返回網(wǎng)頁(yè),以避免商戶服務(wù)器失控后自動(dòng)返回未知的信息而使消費(fèi)者迷惑。不管是商戶停機(jī)、網(wǎng)絡(luò)中斷或者Web服務(wù)器失控,銀行都將屏蔽商戶系統(tǒng)的問(wèn)題,并用正常的網(wǎng)頁(yè)替代商戶網(wǎng)頁(yè)返回給消費(fèi)者,使消費(fèi)者能繼續(xù)正確操作??紤]到方式2比較復(fù)雜,并且需要連接商戶端程序,我們提供了測(cè)試接口以方便商戶開(kāi)發(fā)程序

21、時(shí)測(cè)試。使用該測(cè)試接口模擬真實(shí)的數(shù)據(jù)流程,但無(wú)須真實(shí)的商戶代碼和付款卡號(hào),銀行系統(tǒng)也不記錄交易數(shù)據(jù)(商戶不能查詢或結(jié)帳使用該測(cè)試接口產(chǎn)生的交易數(shù)據(jù))。測(cè)試接口的使用方法和真實(shí)接口一致,只需由真實(shí)接口的PrePayC1改為測(cè)試接口的TestPrepayC1。即 BranchID=xxxx&CoNo=.&BillNo=.& Amount=.&Date=.&MerchantUrl=.改為 BranchID=xxxx&CoNo=.&BillNo=.& Amount=.&Date=.&MerchantUrl=.。注意:為防止

22、用戶利用測(cè)試接口擾亂商戶正式運(yùn)行的服務(wù)器,銀行的測(cè)試接口通知信息中,BillNo始終為“000000”。建議:在本方式中,雖然在消費(fèi)者付款成功后向商戶發(fā)通知,但由于Internet線路問(wèn)題、商戶網(wǎng)絡(luò)配置改變問(wèn)題、商戶服務(wù)器問(wèn)題、商戶程序問(wèn)題等原因,商戶最終接收銀行通知的程序可能收不到銀行通知,因此,商戶不能僅僅憑是否收到銀行通知確定是否給消費(fèi)者提供服務(wù),在商戶作系統(tǒng)設(shè)計(jì)時(shí)也應(yīng)當(dāng)考慮到這個(gè)因素。另外,接收通知的程序應(yīng)當(dāng)能處理重復(fù)通知的情況。3連接方式3某些商戶在使用連接方式2后,還需要在銀行的支付結(jié)果通知命令中帶上商戶自己的參數(shù),比如商戶希望知道是哪個(gè)分支機(jī)構(gòu)的定單,定單在商戶內(nèi)部處理的不同于定

23、單號(hào)的流水號(hào),或者商戶希望借助這個(gè)參數(shù)建立完整的session,等等。為了解決這個(gè)問(wèn)題,在連接方式2的基礎(chǔ)上,招商銀行提供帶商戶參數(shù)的連接方式。這就是連接方式3。 商戶 WEB(3)支付結(jié)果通知命令(1)生成支付網(wǎng)頁(yè)(4)商戶結(jié)果頁(yè)(2)支付命令 用戶瀏覽器 銀行 WEB(5)支付結(jié)果頁(yè)圖三、連接方式3由圖示可知,方式3的流程與方式2完全一樣,只是在命令格式上增加了商戶參數(shù)。連接方式3的支付命令格式有別于連接方式2,其格式為: BranchID=xxxx&CoNo=.&BillNo=.& Amount=.&Date=.&MerchantUrl=.&

24、;MerchantPara=.參數(shù)說(shuō)明:BranchID:商戶開(kāi)戶分行號(hào),請(qǐng)咨詢開(kāi)戶的招商銀行分支機(jī)構(gòu);CoNo:商戶號(hào),6位數(shù)字,由銀行在商戶開(kāi)戶時(shí)確定;BillNo:定單號(hào),6位或10位數(shù)字,由商戶系統(tǒng)生成,一天內(nèi)不能重復(fù);Amount:定單總金額,格式為:xxxx.xx元;Date:交易日期,格式:YYYYMMDD。MerchantUrl支付結(jié)果通知命令中參數(shù)部分之前的部分,例如注意:MerchantUrl自身不能帶商戶參數(shù)。MerchantPara商戶需要銀行在支付結(jié)果通知中轉(zhuǎn)發(fā)的商戶參數(shù)。支付結(jié)果通知命令格式型如:Amount=.&Date=.&MerchantPar

25、a=.&Msg=.&signature=.參數(shù)說(shuō)明:Succeed:取值Y(成功)或N(失敗);CoNo:商戶號(hào),6位長(zhǎng)數(shù)字,由銀行在商戶開(kāi)戶時(shí)確定;BillNo:定單號(hào)(由支付命令送來(lái));Amount:實(shí)際支付金額(由支付命令送來(lái));Date:交易日期(由支付命令送來(lái));Msg:銀行通知用戶的支付結(jié)果消息。信息的前38個(gè)字符格式為:4位分行號(hào)6位商戶號(hào)8位銀行接受交易的日期20位銀行流水號(hào);可以利用交易日期銀行流水號(hào)定單號(hào)對(duì)該定單進(jìn)行結(jié)帳處理;MerchantPara:商戶自己的參數(shù);Signature:銀行用自己的Private Key對(duì)通知命令的簽名。注意:(1) 商戶系

26、統(tǒng)如果對(duì)銀行通知命令的真實(shí)性有較高要求,必須用銀行提供的開(kāi)發(fā)包中的函數(shù),結(jié)合銀行的Public Key(可從網(wǎng)上下載或向銀行索取)驗(yàn)證。具體用法請(qǐng)參考附錄。(2) 在Succeed為Y時(shí),商戶在支付結(jié)果通知命令中必須判斷Amount的值,該值為用戶的實(shí)際支付金額,以此金額為準(zhǔn)。不能以之前系統(tǒng)產(chǎn)生定單時(shí)的金額為準(zhǔn)!這是為了防止用戶在得到支付頁(yè)面后修改支付金額。(3) 商戶如果需要不止一個(gè)參數(shù),可以自行把參數(shù)組合、拼裝,但組合后的結(jié)果不能帶有&字符(如果帶有&字符,銀行收到這樣的支付請(qǐng)求時(shí)將認(rèn)為其后是另一個(gè)參數(shù),其他可能被瀏覽器轉(zhuǎn)義的特殊字符也應(yīng)當(dāng)避免),總長(zhǎng)不能超過(guò)128個(gè)字節(jié)。

27、例如,商戶需要銀行通知中轉(zhuǎn)發(fā)ReferenceNo=12345678&Branch=上海&SessionID=20010901,則可以在PrePayC2中寫(xiě)成MerchantPara=ReferenceNo=12345678|Branch=上海|SessionID=20010901(4) 銀行返回的交易日期是銀行主機(jī)的交易日期,對(duì)于每天重復(fù)使用定單號(hào)的商戶,可能會(huì)在0點(diǎn)左右與商戶日期有1天的差別,按日期+定單號(hào)對(duì)帳時(shí),可能和商戶自己的定單記錄有沖突。如果生成定單號(hào)永遠(yuǎn)不重復(fù),則可以按定單號(hào)和商戶自己的定單記錄對(duì)帳,無(wú)須核對(duì)日期,因此不會(huì)有沖突問(wèn)題,但是,永遠(yuǎn)不重復(fù)的6位定單號(hào),

28、部分商戶可能不夠用,建議這些商戶使用10位的定單號(hào)。(5) 在正式交易中不要使用000000的定單號(hào),因?yàn)闇y(cè)試接口在發(fā)通知時(shí),定單號(hào)固定為000000。在方式2中,若用戶付款后銀行WEB系統(tǒng)或者商戶WEB系統(tǒng)出現(xiàn)故障,則可能出現(xiàn)用戶已付款但是商戶WEB系統(tǒng)不知道的情況,或者出現(xiàn)用戶已付款但是用戶瀏覽器未接收到結(jié)果頁(yè)的情況。這類(lèi)情況屬于正常情況,商戶可以主動(dòng)從銀行系統(tǒng)查詢?cè)摱▎蔚恼嬲隣顩r。商戶系統(tǒng)應(yīng)當(dāng)考慮相應(yīng)的解決辦法,而不能依賴于這個(gè)通知到達(dá)與否,決定是否給消費(fèi)者提供商品或服務(wù)。和方式1比較,方式3在用戶完成支付操作后控制又回到商戶的系統(tǒng)(用戶處于商戶WEB系統(tǒng)生成的支付結(jié)果頁(yè)中),增加了銀行

29、WEB系統(tǒng)調(diào)用商戶WEB系統(tǒng)的支付結(jié)果通知命令的過(guò)程。方式3比方式1復(fù)雜,并且商戶WEB系統(tǒng)必須處理異常情況。但是方式3功能較強(qiáng),使支付過(guò)程變得平滑無(wú)縫??紤]到方式3比較復(fù)雜,并且需要連接商戶端程序,我們提供了測(cè)試接口以方便商戶開(kāi)發(fā)程序時(shí)測(cè)試。使用該測(cè)試接口模擬真實(shí)的數(shù)據(jù)流程,但無(wú)須真實(shí)的商戶代碼和支付卡號(hào),銀行系統(tǒng)也不記錄交易數(shù)據(jù)(商戶不能查詢或結(jié)帳使用該測(cè)試接口產(chǎn)生的交易數(shù)據(jù))。測(cè)試接口的使用方法和真實(shí)接口一致,只需由真實(shí)接口的PrePayC2改為測(cè)試接口的TestPrepayC2。即由 BranchID=xxxx&CoNo=.&BillNo=.& Amount=.

30、&Date=.&MerchantUrl=.&MerchantPara=.改為 BranchID=xxxx&CoNo=.&BillNo=.& Amount=.&Date=.&MerchantUrl=.&MerchantPara=。注意:為防止用戶利用測(cè)試接口擾亂商戶正式運(yùn)行的服務(wù)器,銀行的測(cè)試接口通知信息中,BillNo始終為“000000”。建議:雖然在消費(fèi)者付款成功后向商戶發(fā)通知,但由于Internet線路問(wèn)題、商戶網(wǎng)絡(luò)配置改變問(wèn)題、商戶服務(wù)器問(wèn)題、商戶程序問(wèn)題等原因,商戶最終接收銀行通知的程序可能收不到銀行通知,因此,

31、商戶不能僅僅憑是否收到銀行通知確定是否給消費(fèi)者提供服務(wù),在商戶作系統(tǒng)設(shè)計(jì)時(shí)也應(yīng)當(dāng)考慮到這個(gè)因素。商戶系統(tǒng)必須能處理重復(fù)通知的情況。四人工定單管理1操作員登錄為方便商戶業(yè)務(wù)的管理,商戶有必要?jiǎng)?chuàng)建不同的的操作員并對(duì)其進(jìn)行權(quán)限分配。操作員創(chuàng)建后,就可以以定單操作員的身份登錄商戶系統(tǒng),在其權(quán)限范圍內(nèi)進(jìn)行查詢、結(jié)賬、部分結(jié)賬、撤銷(xiāo)、退款等不同的操作,完成定單管理工作。2結(jié)帳對(duì)凍結(jié)結(jié)賬的商戶,需要商戶自己手動(dòng)處理定單的結(jié)賬操作。以定單操作員登錄,先選擇要結(jié)賬的未結(jié)賬定單,再進(jìn)行提交。3部分結(jié)帳以定單操作員登錄,先選擇要部分結(jié)賬的未結(jié)賬定單,輸入部分結(jié)賬金額,再進(jìn)行提交。4撤銷(xiāo)以定單操作員登錄,先選擇要撤銷(xiāo)

32、的未結(jié)賬定單,再進(jìn)行提交。5自動(dòng)撤消對(duì)凍結(jié)結(jié)賬的商戶,若定單在招商銀行預(yù)定的時(shí)間之內(nèi)沒(méi)有被處理,系統(tǒng)將對(duì)其自動(dòng)撤銷(xiāo)。6退款使用前,商戶需要聯(lián)系招商銀行開(kāi)通退款功能。退款時(shí)需要驗(yàn)證操作者身份,如企業(yè)證書(shū)卡、密碼等信息,退款時(shí)按照界面提示進(jìn)行操作。五程序定單管理1程序定單管理簡(jiǎn)介如果商戶每日定單數(shù)量不多,完全可以通過(guò)我行提供的網(wǎng)上商戶系統(tǒng)進(jìn)行查詢和結(jié)帳處理,則可以跳過(guò)本節(jié)。對(duì)于那些網(wǎng)上支付交易較為頻繁的商戶,每天的交易筆數(shù)很多。如果采用手工結(jié)帳、對(duì)帳處理,工作量大,繁瑣而且還容易出錯(cuò)。招商銀行網(wǎng)上支付系統(tǒng)提供了“程序結(jié)帳”功能,可以實(shí)現(xiàn)商戶的查詢對(duì)帳、結(jié)帳過(guò)程全自動(dòng)化,可以完全不需要人工參與,還能

33、夠?qū)崿F(xiàn)商戶系統(tǒng)和銀行系統(tǒng)數(shù)據(jù)整合。招商銀行網(wǎng)上支付系統(tǒng)的“程序定單管理”功能,是通過(guò)“網(wǎng)上支付系統(tǒng)定單管理開(kāi)發(fā)包”(簡(jiǎn)稱(chēng)商戶開(kāi)發(fā)包)來(lái)實(shí)現(xiàn)的。通過(guò)這個(gè)開(kāi)發(fā)包,商戶可以通過(guò)程序自動(dòng)完成以下工作:ü 查詢未結(jié)帳定單ü 查詢已結(jié)帳定單ü 對(duì)未結(jié)帳定單進(jìn)行處理(結(jié)帳、部分結(jié)帳或者撤銷(xiāo))此外,交易管理開(kāi)發(fā)包中也提供了一個(gè)“對(duì)銀行簽名驗(yàn)證的功能”。該功能與程序定單管理無(wú)關(guān)。后面有對(duì)該功能專(zhuān)門(mén)的說(shuō)明(參見(jiàn)附錄)?!罢猩蹄y行網(wǎng)上支付系統(tǒng)定單管理開(kāi)發(fā)包”有DLL版本、控件版本和Java版本。不同的版本功能上是完全相同的。商戶可以根據(jù)自己的情況,選擇合適的交易管理開(kāi)發(fā)包版本。2商戶開(kāi)

34、發(fā)指引首先,應(yīng)該根據(jù)自己的情況,選擇一個(gè)合適版本的開(kāi)發(fā)包。目前招商銀行網(wǎng)上支付交易管理開(kāi)發(fā)包有3個(gè)版本:DLL版本、控件版本和Java版本。這里給出開(kāi)發(fā)包一般使用方法,具體每個(gè)版本的使用方法,請(qǐng)參考附錄。我們分兩種商戶:采用支付方式1的商戶,和采用支付方式2、3的商戶。下面分別說(shuō)明商戶通常使用的系統(tǒng)結(jié)構(gòu),和如何使用開(kāi)發(fā)包實(shí)現(xiàn)和銀行系統(tǒng)對(duì)接。21采用支付方式1的商戶首先商戶有自己的定單系統(tǒng),能夠產(chǎn)生和記錄每一筆網(wǎng)上支付的定單信息。商戶通常有一個(gè)定期運(yùn)行的自動(dòng)結(jié)帳程序。自動(dòng)結(jié)帳程序定期的向銀行查詢所有的支付成功的定單,然后根據(jù)查詢結(jié)果,更新商戶自己的定單信息。這類(lèi)商戶的自動(dòng)結(jié)帳程序,處理過(guò)程是這樣

35、的:1. 調(diào)用登錄接口,登錄2. 調(diào)用“查詢未結(jié)帳定單”功能,查詢未結(jié)帳定單,然后將這些定單和商戶自己的定單系統(tǒng)中的數(shù)據(jù)進(jìn)行對(duì)比。3. 根據(jù)對(duì)比結(jié)果,更新商戶自己定單系統(tǒng)中,相應(yīng)定單的狀態(tài),并分別調(diào)用開(kāi)發(fā)包中的結(jié)帳、部分結(jié)帳和撤銷(xiāo)功能,對(duì)這些定單進(jìn)行結(jié)帳、部分結(jié)帳或者撤銷(xiāo)處理。4. 調(diào)用退出接口,退出以上步驟定時(shí)進(jìn)行(比如一天一次,或者半小時(shí)一次)22采用支付方式2、3的商戶對(duì)于支付支付方式2和支付方式3的商戶,由于商戶能夠及時(shí)收到支付成功的通知,故商戶的定單系統(tǒng)中基本都記錄了已經(jīng)成功完成支付的定單。這些商戶,通常有兩個(gè)相互獨(dú)立的程序在使用商戶開(kāi)發(fā)包:接受銀行通知的程序,和自動(dòng)對(duì)帳/結(jié)帳程序。

36、接受銀行通知的程序1. 收到銀行發(fā)來(lái)的通知命令2. 調(diào)用開(kāi)發(fā)包中驗(yàn)證銀行數(shù)字簽名的API,檢查通知內(nèi)容是否可信3. 更新商戶的定單狀態(tài),并登記定單對(duì)應(yīng)的銀行流水號(hào)、銀行處理日期等信息4. 返回給用戶支付成功的信息。注意:n 接受銀行通知的程序應(yīng)該盡快的返回結(jié)果頁(yè)面,因此處理工作應(yīng)該盡量少一些。尤其不要在這個(gè)過(guò)程中登錄銀行系統(tǒng)進(jìn)行結(jié)帳操作。如果接受通知程序超過(guò)規(guī)定時(shí)間還沒(méi)有返回結(jié)果頁(yè)面,則銀行服務(wù)器認(rèn)為通知失敗。n 接受銀行通知的程序,必須能夠處理收到重復(fù)通知的情況。自動(dòng)結(jié)帳程序由于這類(lèi)商戶能收到銀行支付成功的通知,因此基本上支付成功的定單在商戶的定單系統(tǒng)中都有記錄??梢灾苯訉?duì)這些定單進(jìn)行結(jié)帳、

37、部分結(jié)帳和撤銷(xiāo)處理。由于網(wǎng)絡(luò)、服務(wù)器等各方面的原因,通知并不總是能夠到達(dá)商戶。因此,商戶仍然需要一個(gè)自動(dòng)結(jié)帳程序,對(duì)這部分支付成功但沒(méi)有通知到的定單進(jìn)行處理。1. 先調(diào)用開(kāi)發(fā)包中的登錄功能登錄2. 先根據(jù)商戶自己的定單系統(tǒng)中記錄的定單,找出要結(jié)帳的定單以及相應(yīng)的流水號(hào)(在銀行通知參數(shù)中有),調(diào)用開(kāi)發(fā)包中的結(jié)帳或者部分結(jié)帳接口,進(jìn)行結(jié)帳處理3. 調(diào)用開(kāi)發(fā)包中的未結(jié)帳查詢接口,對(duì)比商戶自己的定單數(shù)據(jù),更新商戶定單系統(tǒng)的狀態(tài),并進(jìn)行未結(jié)帳定單進(jìn)行處理(結(jié)帳、部分結(jié)帳或者撤銷(xiāo))。4. 調(diào)用退出功能,退出系統(tǒng)23分頁(yè)方式查詢的使用方法為避免一次查詢返回很多數(shù)據(jù),影響銀行交易系統(tǒng)的正常運(yùn)行,請(qǐng)使用分頁(yè)查詢

38、。不同版本的開(kāi)發(fā)包,分頁(yè)查詢的處理方法是類(lèi)似的。分頁(yè)查詢是通過(guò)2個(gè)輔助API配合具體查詢方法來(lái)實(shí)現(xiàn)查詢分頁(yè)的。PageReset:第一次調(diào)用查詢方法之前,先調(diào)用一次本方法,表示從第一頁(yè)開(kāi)始查詢。HasNextPage:用來(lái)檢查是否還有數(shù)據(jù)。不要同時(shí)進(jìn)行不同的分頁(yè)查詢(比如一邊進(jìn)行分頁(yè)的未結(jié)帳查詢過(guò)程中,又進(jìn)行分頁(yè)的已結(jié)帳查詢),這樣會(huì)引起混亂。24交易管理開(kāi)發(fā)包使用注意事項(xiàng)和建議n 每個(gè)調(diào)用都有返回值。商戶必須檢查返回值,判斷所執(zhí)行的功能是否成功完成。n 使用分頁(yè)方式的查詢,處理完一頁(yè)的定單,再查詢下一頁(yè)n 查詢不要過(guò)于頻繁,不要同時(shí)多個(gè)登錄進(jìn)行查詢。因?yàn)椴樵儗?duì)于交易系統(tǒng)會(huì)造成一定的負(fù)擔(dān)。如果

39、使用不當(dāng)(例如同時(shí)發(fā)出多個(gè)查詢操作,返回大量的定單數(shù)據(jù))將影響交易系統(tǒng)的正常運(yùn)行。如果出現(xiàn)這種情況,銀行將關(guān)閉商戶的程序定單管理功能。六舊商戶系統(tǒng)用戶須知為了方便商戶靈活的管理和配置業(yè)務(wù),滿足商戶當(dāng)前的潛在需求,招商銀行對(duì)原有的商戶系統(tǒng)進(jìn)行了改造,旨在為商戶提供一個(gè)更加靈活和完善的電子商務(wù)支付平臺(tái);同時(shí),必須兼容原商戶系統(tǒng)。新的商戶系統(tǒng)提供了基于店鋪、崗位、操作員的靈活的權(quán)限定義及分配策略,提供了更易用的定單管理功能。新的商戶系統(tǒng)主要包括商戶系統(tǒng)管理、商戶定單管理兩個(gè)子系統(tǒng),文檔前面已有所述。新的商戶系統(tǒng)引入了“操作員”的概念,必須輸入操作員號(hào)、操作員密碼等信息才能登錄系統(tǒng)進(jìn)行操作。對(duì)每個(gè)商戶

40、都會(huì)生成1個(gè)缺省的店鋪(店鋪號(hào)“0001”,默認(rèn)情況下,商戶生成的定單屬于店鋪“0001”),1個(gè)缺省的系統(tǒng)管理員崗位(崗位號(hào)“9999”),1個(gè)缺省的具備系統(tǒng)管理員權(quán)限的操作員(操作員號(hào)“9999”,操作員密碼對(duì)應(yīng)原來(lái)的商戶密碼)。商戶可以憑以上信息登錄進(jìn)入商戶系統(tǒng)管理(在登錄類(lèi)型中選擇“系統(tǒng)管理員登錄”)進(jìn)行業(yè)務(wù)及權(quán)限的配置,也可以直接登錄進(jìn)入商戶定單管理系統(tǒng)。一般情況下,商戶通過(guò)系統(tǒng)管理員來(lái)管理店鋪、崗位、操作員等資料,通過(guò)其他具備不同權(quán)限的操作員來(lái)管理定單。原終端商戶系統(tǒng)的用戶也具備以上特點(diǎn),除此之外,新的商戶系統(tǒng)也會(huì)生成操作員來(lái)對(duì)應(yīng)每個(gè)終端(操作員號(hào)對(duì)應(yīng)原來(lái)的終端號(hào),操作員密碼對(duì)應(yīng)原

41、來(lái)的終端密碼)。使用新商戶系統(tǒng)的商戶,在使用商戶開(kāi)發(fā)包時(shí),默認(rèn)用戶為9999(管理員用戶),所以登錄密碼應(yīng)該用管理員用戶9999的登錄密碼。附錄:開(kāi)發(fā)包接口參考1. DLL版本的開(kāi)發(fā)包1. 1. 使用Lib形式的商戶開(kāi)發(fā)包Lib形式的商戶開(kāi)發(fā)包實(shí)際上只是對(duì)DLL開(kāi)發(fā)包的一個(gè)輸出函數(shù)包裝,其真正實(shí)現(xiàn)部分還是在 DLL中。Lib開(kāi)發(fā)包可以在C/C+程序中按Lib的方式直接加入工程,方便C/C+的開(kāi)發(fā)者。n 把FirmClient.dll拷貝到系統(tǒng)目錄下或者結(jié)帳程序自己的目錄中,在Windows 95/98/NT/2000中,系統(tǒng)目錄位于<WinRoot>system32.n 在C/C+

42、源文件中Include FirmClientAPI.h;n 給C/C+連接器指明FirmClient.lib的位置;n 調(diào)用FirmClientAPI.h 中函數(shù);12. 使用Dll形式的商戶開(kāi)發(fā)包n 把FirmClient.dll拷貝到系統(tǒng)目錄下或者結(jié)帳程序自己的目錄中,在Windows 95/98/NT/2000中,系統(tǒng)目錄位于<WinRoot>system32。n 如果商戶開(kāi)發(fā)語(yǔ)言是C或C+:. 申明一個(gè)HMODULE型變量;. 調(diào)用系統(tǒng)函數(shù):LoadLibrary加載FirmClient.dll;. 申明dll中的函數(shù)指針;. 調(diào)用系統(tǒng)函數(shù):GetProcAddress取得

43、函數(shù)指針的值;. 使用函數(shù)指針調(diào)用dll中相應(yīng)的函數(shù);. 完成任務(wù)后調(diào)用系統(tǒng)函數(shù)釋放FirmClient.dll。13. DLL的其他使用形式如果商戶開(kāi)發(fā)語(yǔ)言不是C或C+,例如 VB,Java,等等,參考相應(yīng)語(yǔ)言中關(guān)于dll調(diào)用的說(shuō)明。14 開(kāi)發(fā)包中的API說(shuō)明:(1)基本設(shè)置INET_STATUS SetOptions(char* pszHttpServer, char* pszPort = NULL, char* pszProxyIP = NULL)使用開(kāi)發(fā)包其他函數(shù)之前,必須先調(diào)用這個(gè)函數(shù)進(jìn)行初始化,設(shè)置銀行網(wǎng)址及商戶的Proxy特性。參數(shù)說(shuō)明:PszHttpServer輸入?yún)?shù),銀行網(wǎng)

44、址。固定為。PszPort輸入?yún)?shù),銀行Web Server的端口號(hào)。如果沒(méi)有特殊要求,可以忽略該參數(shù)或置為NULLPszProxyIP輸入?yún)?shù),Proxy Server IP地址。如果沒(méi)有Proxy Server,可以忽略該參數(shù)或置為NULL。返回值是否成功。如果成功,返回值為0。返回非0的值表示錯(cuò)誤。請(qǐng)調(diào)用GetLastErr取得具體的錯(cuò)誤信息。 (2)登錄INET_STATUS LoginC(char* pBranchID, char* pszCoNo, char* pszPwd)進(jìn)行了基本設(shè)置后,應(yīng)該進(jìn)行登錄。只有成功登錄后,才能進(jìn)行查詢、結(jié)帳等功能。參數(shù)說(shuō)明:PbranchIDInp

45、ut.商戶開(kāi)戶行代碼,4位PszCoNoInput.商戶代碼,6位。PszPwdInput.商戶密碼。返回值是否成功。如果成功,返回值為0。返回非0的值表示錯(cuò)誤。請(qǐng)調(diào)用GetLastErr取得具體的錯(cuò)誤信息。(3)退出INET_STATUS Logout();開(kāi)發(fā)包使用完成后,應(yīng)調(diào)用該函數(shù)退出。(4)定單結(jié)帳INET_STATUS SettleOrder(char* pszCoNo, char* pszBillNo, char* pszRefNo)參數(shù)說(shuō)明:PszCoNo輸入,商戶號(hào)PszBillNo輸入,要處理定單的定單號(hào)PszRefNo輸入,要處理定單的銀行流水號(hào)。銀行流水號(hào)有2個(gè)途徑獲得

46、n 通過(guò)查詢未結(jié)帳定單的接口獲得n 通過(guò)銀行支付成功通知,從通知參數(shù)中獲得返回值是否成功。如果成功,返回值為0。返回非0的值表示錯(cuò)誤。請(qǐng)調(diào)用GetLastErr取得具體的錯(cuò)誤信息。(5)定單部分結(jié)帳INET_STATUS SettlePartOrder(char* pszCoNo, char* pszBillNo, char* pszRefNo, char* pszPartAmount)參數(shù)說(shuō)明:PszCoNo輸入,商戶號(hào)PszBillNo輸入,要處理定單的定單號(hào)PszRefNo輸入,要處理定單的銀行流水號(hào)。銀行流水號(hào)有2個(gè)途徑獲得n 通過(guò)查詢未結(jié)帳定單的接口獲得n 通過(guò)銀行支付成功通知,從通

47、知參數(shù)中獲得PszPartAmount輸入,部分結(jié)帳金額,不能大于原始定單金額返回值是否成功。如果成功,返回值為0。返回非0的值表示錯(cuò)誤。請(qǐng)調(diào)用GetLastErr取得具體的錯(cuò)誤信息。(6)定單撤消INET_STATUS CancelOrder(char* pszCoNo, char* pszBillNo, char* pszRefNo)參數(shù)說(shuō)明:PszCoNo輸入,商戶號(hào)PszBillNo輸入,要處理定單的定單號(hào)PszRefNo輸入,要處理定單的銀行流水號(hào)。銀行流水號(hào)有2個(gè)途徑獲得n 通過(guò)查詢未結(jié)帳定單的接口獲得n 通過(guò)銀行支付成功通知,從通知參數(shù)中獲得返回值是否成功。如果成功,返回值為0。

48、返回非0的值表示錯(cuò)誤。請(qǐng)調(diào)用GetLastErr取得具體的錯(cuò)誤信息。(7)釋放緩沖區(qū)內(nèi)存INET_STATUS FreeBuffer(char* pBuffer)每調(diào)用一次具體查詢方法,如果查詢成功,必須調(diào)用本方法釋放內(nèi)存。注意:1 每個(gè)分頁(yè)的查詢都要釋放內(nèi)存。2 如果查詢失敗,不能釋放內(nèi)存。參數(shù)說(shuō)明:pBuffer要釋放的緩沖區(qū)。該指針必須是由查詢未結(jié)帳、已結(jié)帳定單返回的返回值是否成功。如果成功,返回值為0。返回非0的值表示錯(cuò)誤。請(qǐng)調(diào)用GetLastErr取得具體的錯(cuò)誤信息。(8)取得錯(cuò)誤信息char* GetLastErr(INET_STATUS isNo);參數(shù)說(shuō)明:IsNo輸入,最近一

49、次調(diào)用接口返回值返回值錯(cuò)誤的詳細(xì)信息取得最近發(fā)生的錯(cuò)誤信息。每一個(gè)不成功的操作后都應(yīng)調(diào)用該函數(shù)及時(shí)發(fā)現(xiàn)錯(cuò)誤原因。(9)設(shè)置分頁(yè)查詢的位置為第一頁(yè)void PageReset()說(shuō)明:在每次分頁(yè)查詢之前必須調(diào)用一次。查詢中途如果需要重頭查起,也是通過(guò)調(diào)用PageReset來(lái)實(shí)現(xiàn)。(10)判斷是否還有更多的數(shù)據(jù)int HasNextPage()功能:在分頁(yè)查詢中,用來(lái)判斷是否已經(jīng)查詢完了所有數(shù)據(jù)。說(shuō)明:在調(diào)用PageReset后,返回FALSE;在調(diào)用了分頁(yè)查詢后,如果還有更多的數(shù)據(jù),則返回TRUE,否則返回FALSE。(11)分頁(yè)查詢未結(jié)帳定單INET_STATUS QueryUnsettled

50、OrderByPage(int count,char *result)參數(shù)說(shuō)明:count本次查詢所返回定單數(shù)目。當(dāng)未結(jié)帳定單數(shù)目少于給定數(shù)目時(shí),返回全部未結(jié)帳定單。如果未結(jié)帳定單數(shù)目比給定數(shù)目多,則返回給定數(shù)目的定單。下一次調(diào)用本函數(shù)則從本次的最后一條定單的下一條開(kāi)始返回。result返回的查詢結(jié)果。格式請(qǐng)看下面說(shuō)明如果查詢成功,則使用完畢后,請(qǐng)調(diào)用FreeBuffer()來(lái)釋放result占用的內(nèi)存,否則將導(dǎo)致內(nèi)存泄漏。返回值是否成功。如果成功,返回值為0。返回非0的值表示錯(cuò)誤。請(qǐng)調(diào)用GetLastErr取得具體的錯(cuò)誤信息。說(shuō)明:result 中保存的定單信息由連續(xù)的定單記錄組成,每個(gè)記錄

51、包括以下部分:交易日期-"yyyymmdd"金額-"*.*"定單號(hào).-6 characters流水號(hào)-20 characters每一部分由字符'n'分隔。例如:"19980820n1200.00n100201n98082000010700030001n1n19980830n200.00n100201n98083000010700030009n2n".以上字符串包括兩個(gè)定單信息。(12)分頁(yè)查詢已結(jié)帳定單,按交易日查詢INET_STATUS QuerySettledOrderByPage(LPCSTR StartDate

52、, LPCSTR EndDate,int count,char *result)參數(shù)說(shuō)明:StartDate查詢的起點(diǎn)日期,8位數(shù)字EndDate查詢的終點(diǎn)日期,8位數(shù)字count本次查詢所返回定單數(shù)目。當(dāng)查詢結(jié)果定單數(shù)目少于給定數(shù)目時(shí),返回全部定單。如果查詢結(jié)果定單數(shù)目比給定數(shù)目多,則返回給定數(shù)目的定單。下一次調(diào)用本函數(shù)則從本次的最后一條定單的下一條開(kāi)始返回。result返回的查詢結(jié)果。格式請(qǐng)看下面說(shuō)明如果查詢成功,則使用完畢后,請(qǐng)調(diào)用FreeBuffer()來(lái)釋放result占用的內(nèi)存,否則將導(dǎo)致內(nèi)存泄漏。返回值是否成功。如果成功,返回值為0。返回非0的值表示錯(cuò)誤。請(qǐng)調(diào)用GetLastEr

53、r取得具體的錯(cuò)誤信息。說(shuō)明:result中保存的定單信息由連續(xù)的定單記錄組成,每個(gè)記錄包括以下部分:交易日期-"yyyymmdd"處理日期-"yyyymmdd"金額-"*.*"定單號(hào).-6 characters定單狀態(tài)-1 characters每一部分由字符'n'分隔。其中定單狀態(tài)=“0”為已結(jié)帳,“1”為已撤銷(xiāo),“2”為部分結(jié)帳,“3”為退款記錄。例如:"19980820n19980920n1200.00n100201n1n19980830n19980830n200.00n100201n2n".以上字符串包括兩個(gè)定單信息。(13)分頁(yè)查詢已結(jié)帳定單,按結(jié)帳日查詢INET_STATUS QueryTransactByPage(L

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論