浦發(fā)銀行商戶開發(fā)指南Java版V71_第1頁
浦發(fā)銀行商戶開發(fā)指南Java版V71_第2頁
浦發(fā)銀行商戶開發(fā)指南Java版V71_第3頁
浦發(fā)銀行商戶開發(fā)指南Java版V71_第4頁
浦發(fā)銀行商戶開發(fā)指南Java版V71_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編號:上海浦東發(fā)展銀行支付網(wǎng)關(guān)商戶安裝和使用指南(java版)v7.002/2009文檔修改記錄版本日期說明編寫者審核者1.02005-1-17形成初稿張國強(qiáng)1.12005-3-10更新接口說明李霽倫2.02005-4-28更新接口說明、更新開發(fā)指引李霽倫2.12005-5-23更新jks使用說明李霽倫3.02005-6-6更新部分說明李霽倫4.02005-12-12交易格式及對帳文件增加部分字段李霽倫4.12006-1-1新增聯(lián)機(jī)查詢和新類別文件下載李霽倫4.22006-2-5修正osttdate字段李霽倫5.02006-2-10新增批量查詢功能李霽倫5.22006-3-15新增公司訂單相關(guān)

2、返回功能,增強(qiáng)批量訂單查詢條件李霽倫6.02006-7-2新增協(xié)議支付系列交易李霽倫7.02009-06-26按新支付系統(tǒng)修改部分說明,新增b2b協(xié)議支付及響應(yīng)碼陳恩永7.109/28/10增加防釣魚接口信息及說明吳吉說明:本文檔中所包含的信息屬于機(jī)密信息,如無上海浦東發(fā)展銀行書面許可,任何人都無權(quán)復(fù)制或利用。上海浦東發(fā)展銀行支付網(wǎng)關(guān)技術(shù)文檔02/2009目 錄7b230979eeac2d24c089ead9cde79378.pdf第 46 頁 共 46 頁 1概述61.1 文檔說明61.2 版本61.3 閱讀對象72 系統(tǒng)概述72.1 相關(guān)定義72.2 支付流程簡述92.3 撤銷、退貨、查詢

3、及對帳文件下載流程102.4 對帳文件格式102.5 安全控制112.6 防釣魚控制113 開發(fā)準(zhǔn)備113.1 環(huán)境要求123.2 開發(fā)包文件清單123.3 商戶支付網(wǎng)關(guān)證書安裝步驟133.3.1 說明133.3.2 準(zhǔn)備工作133.3.3 獲得證書133.3.4 商戶私鑰容器文件“spdbmerchant.jks”143.3.5 商戶容器屬性文件“spdb_perties”153.3.6 將密鑰導(dǎo)入商戶私鑰容器文件 “spdbmerchant.jks”163.3.7 更換密鑰容器的密碼183.3.8 上傳商戶證書193.3.9 將商戶證書通過網(wǎng)上銀行安全傳遞給銀行21

4、4 簽名及驗簽開發(fā)指引214.1 軟件包接口說明214.1.1 簽名214.1.2 驗證224.2 簽名及驗簽的調(diào)用224.2.1 簽名方法調(diào)用224.2.2 驗簽方法調(diào)用234.3 應(yīng)用部署235 交易接口描述245.1 基本交易要素245.1.1 輸入要素245.1.2 輸出要素255.2 交易方式255.2.1 如何編寫https頁面交易接口255.2.2 如何編寫https指令交易接口265.3 交易說明285.3.1 支付交易(iper)285.3.2 撤銷、退貨交易(iecr,ipsr)295.3.3 單筆查詢(iqsr)305.3.4 多筆查詢(bqsr)315.3.5 下載對帳

5、文件(idfr)325.3.6 b2b支付交易(eper)335.3.7 對公商戶撤單(eecr)345.3.8 協(xié)議支付簽約(xyqy)355.3.9 協(xié)議支付簽約撤銷(xycx)365.3.10 協(xié)議支付(對私)(dper)375.3.11 b2b協(xié)議支付預(yù)簽約(對公)(exqy)385.3.12 b2b協(xié)議支付簽約預(yù)撤銷(對公)395.3.13 b2b協(xié)議支付(對公)(eder)396 上線步驟406.1 簽訂業(yè)務(wù)協(xié)議406.2 開戶416.3 開通公司網(wǎng)銀416.4 申請并下載公司網(wǎng)銀證書416.5 開通支付網(wǎng)關(guān)416.6 申請并下載支付網(wǎng)關(guān)證書416.7 上傳網(wǎng)關(guān)證書416.8 配置

6、簽名服務(wù)416.9 配置url426.10 試運(yùn)行427 附錄常用取值427.1 表71(網(wǎng)關(guān)支持的交易方式)427.2 表72(transname域的不同取值)427.3 表73(respcode域的不同取值)431概述1.1 文檔說明電子商務(wù)支付中,商戶是進(jìn)行商品售出的一方,其連接客戶和支付網(wǎng)關(guān)。在和支付網(wǎng)關(guān)進(jìn)行連接時,由電子商務(wù)支付網(wǎng)關(guān)一方提供數(shù)據(jù)的加密傳輸和身份驗證的接口程序。支付網(wǎng)關(guān)接收商戶送來的訂單信息后進(jìn)行處理,支付交易處理完畢后將結(jié)果返回給商戶網(wǎng)站。同時提供多種方式供商戶進(jìn)行撤銷、退貨、查詢訂單支付狀態(tài)以及下載對帳文件等功能。本操作手冊用來指導(dǎo)商戶技術(shù)人員來實現(xiàn)與電子商務(wù)支付網(wǎng)

7、關(guān)系統(tǒng)的順利連接。請相關(guān)技術(shù)人員詳細(xì)閱讀本手冊。文中藍(lán)色字體表示要注意該部分內(nèi)容,紅色加粗的內(nèi)容表示要重點注意的內(nèi)容,綠色加粗字體表示后期新增的交易字段及相關(guān)功能。1.2 版本根據(jù)商戶平臺和應(yīng)用技術(shù)的不同,商戶端接口方式分成java 版、asp版,本文檔是java版。1.3 閱讀對象商戶開發(fā)人員上海浦東發(fā)展銀行支付網(wǎng)關(guān)相關(guān)技術(shù)人員2 系統(tǒng)概述2.1 相關(guān)定義“客戶”是指電子支付過程中的付款方,分為“個人客戶”和“公司客戶“一般情況下,使用“卡”或“折”支付的客戶是“個人客戶”,使用公司帳戶支付的是“公司客戶”?!吧虘簟笔侵鸽娮又Ц哆^程中的收款方,商戶需要向我行相關(guān)部門申請后獲得商戶身份,完成商

8、戶開戶后會分配一個商戶號給該商戶,且一個商戶號只能對 “個人客戶”或者“公司客戶”服務(wù),且不可更改。即:如果某商戶的客戶既有個人客戶又有公司客戶,就必須申請2個商戶號分別進(jìn)行服務(wù)?!鞍l(fā)起訂單”是指客戶(付款方)在商戶(收款方)網(wǎng)站上選擇商品,商戶系統(tǒng)生成相關(guān)訂單信息后,按照我行網(wǎng)關(guān)的格式將訂單信息發(fā)送到我行網(wǎng)關(guān),我行網(wǎng)關(guān)收到訂單信息并處理后,會將支付頁面顯示給客戶?!俺蜂N”是指在支付動作完成的當(dāng)日,商戶發(fā)起撤銷動作,將該筆支付撤銷,錢款退還客戶,目前我行只支持一次撤銷,且金額必須等于原支付金額?!巴素洝笔侵冈谥Ц秳幼魍瓿傻母羧罩劣唵伟l(fā)起的90天內(nèi),商戶發(fā)起退貨動作,對該筆支付進(jìn)行退貨,錢款退還

9、客戶,退貨動作可以多次,且總金額必須不大于原支付金額。注意,通過公司網(wǎng)銀完成的退貨交易對于同一筆訂單一天只能退貨一次?!皡f(xié)議支付”提供客戶一站式購物體驗,避免客戶每次購物時在商戶網(wǎng)站和銀行網(wǎng)站之間來回切換??蛻簟⑸虘艉豌y行三方兩兩簽約后,支付信息由商戶網(wǎng)站發(fā)送到銀行支付網(wǎng)關(guān)直接完成扣款,不需要客戶參與扣款過程??蛻羰紫仍谏虘艟W(wǎng)站申請開通協(xié)議支付功能,在獲得商戶的id(客戶在商戶處的唯一標(biāo)識)后,可選擇是否預(yù)留證件號、姓名等信息,并由商戶將簽約信息發(fā)送銀行端,并由客戶在銀行頁面端完成客戶和銀行端簽約。簽約中需客戶將商戶端id和客戶的憑證(卡或者存折)關(guān)聯(lián)起來,在驗證客戶的證件,交易密碼等內(nèi)容后完

10、成銀行端簽約。三方簽約完成后,客戶即可在商戶網(wǎng)站直接購物,只需商戶將相關(guān)交易信息發(fā)送銀行網(wǎng)關(guān)即可完成扣款。我行支付網(wǎng)關(guān)進(jìn)行了多次功能擴(kuò)充和優(yōu)化。商戶使用的功能可以使用3種方式實現(xiàn):公司網(wǎng)銀、https頁面、https指令。https頁面方式是指通過html頁面方式組織相關(guān)交易內(nèi)容,然后發(fā)送post請求到銀行網(wǎng)關(guān)進(jìn)行交易,一般適用于asp或者jsp等web應(yīng)用;https指令方式是指通過xml的標(biāo)準(zhǔn)方式組織交易內(nèi)容,然后發(fā)送到網(wǎng)關(guān)進(jìn)行交易,一般適用于應(yīng)用程序。通過公司網(wǎng)銀,客戶可以編寫并上傳批量交易文件進(jìn)行批量協(xié)議支付和批量退貨。這3種方式支持的功能分別如下:表21交易支持方式https頁面ht

11、tps指令公司網(wǎng)銀個人支付(iper) 企業(yè)支付(eper)撤銷交易(iecr)退貨(ipsr)單筆查詢(iqsr)多筆查詢(bqsr)對帳文件下載(idfr)對公訂單撤銷(eecr)協(xié)議支付簽約(xyqy)協(xié)議支付簽約撤銷(xycx)(僅對公司會員)協(xié)議支付(dper)b2b協(xié)議預(yù)簽約(exqy)b2b協(xié)議預(yù)撤銷(excx)b2b協(xié)議支付(eder)2.2 支付流程簡述圖2-11. 商戶根據(jù)客戶選擇的商品生成訂單,包括商戶號、訂單號、金額、時間以及對這些關(guān)鍵數(shù)據(jù)的數(shù)字簽名。2. 客戶提交付款請求時,商戶服務(wù)器將商戶號、訂單號、金額、日期和使用商戶私鑰做的數(shù)字簽名作為參數(shù)傳遞給支付網(wǎng)關(guān),此時的

12、通訊協(xié)議采用ssl。支付網(wǎng)關(guān)驗證數(shù)字簽名通過后,確認(rèn)是商戶簽署的、有效的支付信息,則產(chǎn)生付款頁面。如果數(shù)字簽名不正確,則發(fā)出警告并返回失敗信息。3. 客戶輸入賬號和密碼后由支付網(wǎng)關(guān)驗證。驗證通過后,根據(jù)賬號信息將支付請求發(fā)至銀行業(yè)務(wù)系統(tǒng)。根據(jù)需要,系統(tǒng)同時驗證客戶的個人證書。4. 銀行業(yè)務(wù)系統(tǒng)接收支付請求,進(jìn)行相應(yīng)的業(yè)務(wù)處理,將結(jié)果返回至支付網(wǎng)關(guān)。5. 支付網(wǎng)關(guān)接收業(yè)務(wù)系統(tǒng)的處理結(jié)果。6. 若由于客戶余額不足等原因,業(yè)務(wù)系統(tǒng)返回處理失敗,支付網(wǎng)關(guān)直接返回客戶失敗信息。若業(yè)務(wù)系統(tǒng)處理成功,支付網(wǎng)關(guān)負(fù)責(zé)將支付結(jié)果以http/https的方式通知商戶。支付結(jié)果中同樣有銀行使用自己的私鑰作的數(shù)字簽名,

13、以保證信息一定是由銀行發(fā)出的并且確保其完整性和不可抵賴性。7. 商戶接收到支付成功請求后,并發(fā)貨給客戶。8. 支付網(wǎng)關(guān)會將交易成功的結(jié)果直接顯示給客戶。如果由于超時等特殊原因?qū)е聽顟B(tài)未知,客戶可以通過查詢帳戶得知是否交易成功。注意:在每次成功支付后,商戶可以通過3種方式獲得交易結(jié)果:1 交易成功結(jié)束后,將結(jié)果返回給客戶頁面,會從客戶頁面提交結(jié)果內(nèi)容到商戶接收結(jié)果的url;如果客戶的頁面阻止了跳出頁面方式,則不會提交。2 交易成功結(jié)束后,將從網(wǎng)關(guān)服務(wù)器多次直接發(fā)送交易結(jié)果到商戶接收結(jié)果的url。因此商戶會多次重復(fù)(5次)收到網(wǎng)關(guān)送來的支付交易結(jié)果(1,2合計6次)。3 商戶可以通過5.3.3節(jié)描

14、述的查詢交易查詢某筆交易的狀況。2.3 撤銷、退貨、查詢及對帳文件下載流程如2.1節(jié)中的圖表所示,撤銷、退貨、查詢及對帳文件下載可以通過3種方式完成。商戶可以登錄公司網(wǎng)銀,商戶操作員只需在撤銷和退貨頁面中,查詢到相關(guān)訂單后選擇并通過相關(guān)授權(quán)即可完成,另外公司網(wǎng)銀中有相關(guān)菜單可以完成查詢和對帳下載。在https頁面和https指令方式下,商戶只需按照相應(yīng)的方式組織相關(guān)的交易字段內(nèi)容,并進(jìn)行簽名后,發(fā)送給我行網(wǎng)關(guān)即可進(jìn)行。具體的簽名方法將在章節(jié)4中進(jìn)行介紹,交易字段組織方式將在章節(jié)5中進(jìn)行介紹。2.4 對帳文件格式對帳文件的內(nèi)容是以“|”分隔的如下內(nèi)容,每條記錄記錄以回車換行結(jié)束具體記錄內(nèi)容格式如

15、下:交易縮寫清算日期交易發(fā)生時間訂單號網(wǎng)關(guān)流水號商戶號終端號交易金額手續(xù)費(fèi)凈清算金額響應(yīng)碼商戶保留1商戶保留2其中,交易縮寫參見表7-2。2.5 安全控制1 采用pki和數(shù)字證書認(rèn)證體系2 通訊使用ssl協(xié)議(128位),對數(shù)據(jù)進(jìn)行加密3 商戶和銀行間數(shù)據(jù)交互都使用數(shù)字簽名,并使用公鑰進(jìn)行數(shù)據(jù)驗證,確保數(shù)據(jù)的完整性和不可抵賴性3 開發(fā)準(zhǔn)備商戶的開發(fā)主要包括以下內(nèi)容:1 組織交易數(shù)據(jù)并用商戶證書簽名后,從商戶網(wǎng)站頁面發(fā)送到我行支付網(wǎng)關(guān)相關(guān)頁面。2 接收我行服務(wù)器反饋的交易結(jié)果,驗證我行服務(wù)器的簽名后,對返回的交易結(jié)果做相應(yīng)的處理。所以商戶的開發(fā)工作是以簽名和驗簽為中心的相關(guān)頁面或應(yīng)用開發(fā)。本節(jié)對

16、商戶開發(fā)和生產(chǎn)環(huán)境做簡要描述,并列出開發(fā)包中包含的文件清單。3.1 環(huán)境要求硬件方面:由于網(wǎng)上支付系統(tǒng)提供的軟件同商戶的系統(tǒng)緊密集成,通常不需要額外的硬件投資。系統(tǒng)將安裝在商戶的應(yīng)用服務(wù)器上,基本配置推薦:基于x86-32位cpu,piii450以上,256m內(nèi)存,10m剩余硬盤空間。軟件方面:jdk1.3或以上,操作系統(tǒng)不限。3.2 開發(fā)包文件清單n spdbmerchant.jks商戶密鑰容器,參見3.3.4-3.3.7,4.4n spdb_perties商戶配置文件,放置到/web-inf/class目錄下,參見3.3.5n pfx2jks.bat導(dǎo)入證書的腳本文

17、件(win),在unix或者linux中將其屬性設(shè)為可執(zhí)行即可,參見3.3.6n spdbmerchant.jar 開發(fā)包類庫,放置到/web-inf/lib目錄下n bcprov-jdk14-127.jar基礎(chǔ)類庫,放置到/web-inf/lib目錄下n jce.jar基礎(chǔ)類庫,放置到/web-inf/lib目錄下n jcert.jar基礎(chǔ)類庫,放置到/web-inf/lib目錄下n jnet.jar基礎(chǔ)類庫,放置到/web-inf/lib目錄下n jsse.jar基礎(chǔ)類庫,放置到/web-inf/lib目錄下n 目錄 cert4test測試用證書相關(guān)l spdbmerchant.jks商戶

18、密鑰容器(測試用),使用時需復(fù)制到上 級目錄,參見3.3.4-3.3.7,4.4l readme.txt說明文件l 2002182316.pfx商戶測試證書,密碼為1n 目錄 cert4real生產(chǎn)用證書相關(guān)l spdbmerchant.jks商戶密鑰容器(生產(chǎn)用),使用時需復(fù)制到上級目錄,參見3.3.4-3.3.7,4.4l readme.txt說明文件注意:測試用網(wǎng)關(guān)證書的有效期到2007年2月9日,如果開發(fā)測試在該日期以后,請聯(lián)系我行人員獲取新版本開發(fā)包。3.3 商戶支付網(wǎng)關(guān)證書安裝步驟3.3.1 說明商戶使用銀行為商戶申請的支付網(wǎng)關(guān)專用的數(shù)字證書,由cfca頒發(fā)。3.3.2 準(zhǔn)備工作建

19、議使用windows操作系統(tǒng)進(jìn)行證書下載和安裝工作,推薦使用windows2k/winxp 或最新的windows2003。到 或其他下載中心下載相應(yīng)的 jdk安裝軟件。確保當(dāng)前的運(yùn)行路徑的path系統(tǒng)變量中包含 $jdk_install_dir/bin3.3.3 獲得證書1 測試證書測試證書一般隨開發(fā)包提供,如3.2文件清單中的2002182316.pfx,該文件名會因商戶不同而不同。該證書也可以由分行開發(fā)人員在測試環(huán)境申請證書,拿到兩碼后,自行在cfca地址下載測試證書:0/cda-cgi/clientcgi?action=start 2 生產(chǎn)證

20、書生產(chǎn)環(huán)境證書包括公司網(wǎng)銀證書和支付網(wǎng)關(guān)證書。這兩種證書都是在我行柜面申請,不同的是公司網(wǎng)銀證書需要下載到usbkey中,而支付網(wǎng)關(guān)證書直接下載(或?qū)耄┑较到y(tǒng)中。在實際操作中,可以在windows機(jī)器上下載支付網(wǎng)關(guān)證書,然后導(dǎo)出成pfx文件(導(dǎo)出過程中選擇“導(dǎo)出私鑰”),供步驟3.3.4使用。在柜面申請成功拿到兩碼后,即可到我行網(wǎng)上銀行下載生產(chǎn)證書,下載地址為: 注意:支付網(wǎng)關(guān)證書必須選擇默認(rèn)csp(“microsoft enhanced cryptographic provider v1.0”)進(jìn)行下載公司網(wǎng)銀證書下載時必須先安裝usbkey驅(qū)動,然后選擇csp:“safesign csp

21、 version 1.0”3.3.4 商戶私鑰容器文件“spdbmerchant.jks”spdbmerchant.jks就是商戶的密鑰容器(keystore)文件,應(yīng)用程序需要的證書都存貯在該容器中,浦發(fā)銀行事先將生產(chǎn)和測試用的銀行網(wǎng)關(guān)證書及相應(yīng)的證書鏈導(dǎo)入容器中,容器的默認(rèn)keystore密碼是111111使用如下命令可以查看密鑰容器中的證書:keytool list keystore spdbmerchant.jks測試用的容器文件運(yùn)行結(jié)果如下所示:上圖中一共有4個條目,包括測試用的網(wǎng)關(guān)證書(paygate_cert)和測試證書鏈(cfca_pca,cfca_rca,cfca_oca)。

22、生產(chǎn)用的容器文件運(yùn)行結(jié)果如下所示:上圖中一共有4個條目,包括生產(chǎn)用的網(wǎng)關(guān)證書(paygate_cert)和生產(chǎn)證書鏈(cfca_pca,cfca_rca,cfca_oca)。注意:測試和生產(chǎn)用的容器文件千萬不要混淆。3.3.5 商戶容器屬性文件“spdb_perties”該文件的內(nèi)容如下所示:development=nocafile=c:/cert4test/spdbmerchant.jksstore_password=111111alias_key=merchant_keykey_alias=merchant_keykey_password=222222alias_p

23、aygate=paygate_cert其中,cafile是容器文件存放的位置,在windows平臺下路徑c:cert4testspdbmerchant.jks,也可以寫作c:cert4testspdbmerchant.jks;在unix或者linux平臺下,直接寫路徑就可以,比如: /keystore/spdbmerchant.jksstore_password是容器的訪問密碼,默認(rèn)是111111,一般不需要修改,如果需要修改的話,可以參照3.3.6。注意:配置文件的各項中,一般cafile是必須修改的,store_password和key_password可以按照客戶需要來修改,其他項一般不

24、需要修改。3.3.6 將密鑰導(dǎo)入商戶私鑰容器文件 “spdbmerchant.jks”將該文件放置在一個新建的工作目錄中,并將系統(tǒng)當(dāng)前路徑切換到該目錄中。$pfx2jks spdb_perties <pfx file name> <pfx passwd> -keypassword new <key passwd>參數(shù)說明: spdb_perties 配置文件名稱,一般不需要修改名稱 <pfx file name> 導(dǎo)出的商戶證書私鑰文件 <pfx passwd> 導(dǎo)出私鑰文件時指定的密碼

25、<key passwd>商戶為自己的證書新設(shè)定的密碼測試證書導(dǎo)入,如下所示:運(yùn)行后的最后結(jié)果:注意: 1在導(dǎo)入前,如果您沒有修改密鑰容器文件的密碼!則請不要修改對應(yīng)的spdb_perties文件。如果修改了密碼則請同時修改該配置文件。2這里指定的merchant_key的密碼是222222,客戶需要按照自己的實際情況輸入,并在spdb_perties文件中的key_password保持一致。3.3.7 更換密鑰容器的密碼銀行為商戶提供的密鑰容器文件spdbmerchant.jks的初始密碼是111111,私鑰缺省密碼相同。實際的生產(chǎn)環(huán)

26、境中,建議更改此密碼。l 更改密鑰容器文件密碼(keytool是jdk默認(rèn)提供):$keytool storepasswd new <yournewpasswd> -keystore merchant.jks -storepass old_passwor原來容器密碼為111111,更換為444444,如下所示:l 更改私鑰密碼:$keytool -keypasswd -new <yournewpasswd> -keystore merchant.jks -alias merchant_key原來私鑰密碼為222222,更換為333333,如下所示:注意:這里的merch

27、an_key 和perties文件中的key_alias的值相同。3.3.8 上傳商戶證書在完成步驟3.3.2后,銀行要求商戶導(dǎo)出商戶證書到一個商戶自己指定的.cer文件中,然后通過網(wǎng)上銀行的商戶管理功能中將該證書文件上傳到網(wǎng)關(guān)。選擇 internet選項->內(nèi)容->證書,選中商戶證書,選擇“導(dǎo)出”:選中"不,不導(dǎo)出私鑰",點擊"下一步"繼續(xù)在選擇到導(dǎo)出類型時,選擇默認(rèn)格式,如下:然后按照提示一步一步做下去,最后得到證書文件。3.3.9 將商戶證書通過網(wǎng)上銀行安全傳遞給銀行導(dǎo)出商戶證書后,需要通過我行的公司網(wǎng)上

28、銀行將證書上傳到網(wǎng)關(guān)。測試環(huán)境公司網(wǎng)銀地址:http:/xx.xx.xx.xx/ent/gb/login.jsp,其中ip地址需要聯(lián)絡(luò)獲得。生產(chǎn)環(huán)境公司網(wǎng)銀地址: 注意:系統(tǒng)正常運(yùn)行一段時間以后,推薦商戶對自己的證書和私鑰定期進(jìn)行更換,以增強(qiáng)安全性。證書更換期一般為一年或兩年,商戶也可以根據(jù)自己的實際情況,隨時進(jìn)行證書更換,但是務(wù)必及時上傳更新后的數(shù)字證書。4 簽名及驗簽開發(fā)指引4.1 軟件包接口說明4.1.1 簽名string com.csii.payment.client.core.merchantsignverify.merchantsigndata_aba( string plaind

29、ata );功能描述:靜態(tài)方法,用于商戶使用自己的私鑰對原始數(shù)據(jù)進(jìn)行數(shù)字簽名輸入?yún)?shù):簽名的原始字符串 plaindata輸出參數(shù):簽名的目標(biāo)字符串 signdata4.1.2 驗證boolean com.csii.payment.client.core.merchantsignverify.merchantverifypaygate_aba(sign,plain)功能描述:靜態(tài)方法,用于商戶使用對銀行傳遞來的信息進(jìn)行校驗輸入?yún)?shù):簽名的原始字符串 plaindata簽名的目標(biāo)字符串 signdata輸出參數(shù): true 校驗成功 false 校驗失敗4.2 簽名及驗簽的調(diào)用簽名是在商戶拼裝好

30、交易字段的明文后,調(diào)用商戶的證書私鑰進(jìn)行簽名的過程。網(wǎng)關(guān)將校驗該簽名以保證該交易是該商戶發(fā)起。通常,在商戶通過https頁面方式或者h(yuǎn)ttps指令的方式給網(wǎng)關(guān)發(fā)起交易的時候,都必須對其交易字段明文進(jìn)行簽名。驗簽是網(wǎng)關(guān)處理完交易(比如支付、撤銷、退貨、查詢等)后,組織好交易結(jié)果的明文后,調(diào)用網(wǎng)關(guān)證書私鑰對明文進(jìn)行簽名,商戶將通過校驗該簽名以保證結(jié)果是銀行網(wǎng)關(guān)返回的。通常,在商戶接收各種交易結(jié)果的時候,都必須對該簽名字段進(jìn)行驗簽。以下章節(jié)以https頁面方式下的發(fā)送訂單和支付后的交易結(jié)果發(fā)送為例,分別描述簽名及驗簽的用法。4.2.1 簽名方法調(diào)用以下內(nèi)容以https頁面方式發(fā)送訂單交易為例,演示簽

31、名方法的調(diào)用。示例如下:在頁面中調(diào)用方法:com.csii.payment.client.core.merchantsignverify.merchantsigndata_aba(string plain)方法,將得到數(shù)字簽名通過sign字段傳遞給銀行。<!-form樣本-><form action=https:/xx.xx.xx.xx/payment/main method=post><input type=hidden name=transname value=”iper”><input type=hidden name=plain value=”

32、xxx1”><input type=hidden name= signature value=”xxx2”><input type=submit name=submit value=浦東發(fā)展銀行支付網(wǎng)關(guān)></form>其中: transname: 必須上傳,消費(fèi)交易為iper,具體見表5-2plain:商戶訂單數(shù)據(jù)組成的原始數(shù)據(jù)字符串signature: 原始數(shù)據(jù)字符串的簽名4.2.2 驗簽方法調(diào)用從網(wǎng)關(guān)送來的信息中,取得以下2個變量:plain:訂單狀態(tài)的原始數(shù)據(jù)字符串,signature: 銀行的數(shù)字簽名,然后調(diào)用方法:com.csii.payme

33、nt.client.core.merchantsignverify. merchantverifypaygate_aba (string signature,string plain),校驗簽名。4.3 應(yīng)用部署n 首先,將商戶密鑰容器文件spdbmerchant.jks放在spdb_perties中cafile指示的文件系統(tǒng)位置。n 然后,按照j2ee web應(yīng)用的部署規(guī)范:l 將修改后的spdb_perties文件放置到/web-inf/classes目錄l 將spdbmerchant.jar軟件包放在/web-inf/lib目錄下l 將sp

34、dbmerchant.jks文件放在spdb_perties文件中指定的地方。5 交易接口描述https頁面方式和https指令方式支持的交易參見表71(網(wǎng)關(guān)支持的交易方式),以下將分別對https頁面方式和https指令方式下的交易接口進(jìn)行描述。5.1 基本交易要素5.1.1 輸入要素https頁面方式和https指令方式下向網(wǎng)關(guān)發(fā)送交易時,都必須提供3個基本要素:transname、plain、signature。其中,transname是交易名;plain是交易字段拼裝的明文,支付、撤銷、退貨的plain的組織方式類似;signature是對plain的簽名。tr

35、ansname域的不同值代表不同的交易,描述如下:表52取值說明iper個人客戶支付eper企業(yè)客戶支付ipsr退貨交易iecr撤銷交易iqsr單筆交易查詢bqsr多筆交易查詢idfr對帳文件下載eecr支付前訂單撤銷(對公支付)dper協(xié)議支付xyqy協(xié)議支付簽約xycx協(xié)議支付簽約撤消exqyb2b協(xié)議支付預(yù)簽約excxb2b協(xié)議支付預(yù)撤銷ederb2b協(xié)議支付plain域中各元素間用 字符|分開1 字符串的尾部和中間去除空格2 字符區(qū)分大小寫,漢字使用gbk編碼示例如下,以iper交易為例:tranabbr=iper|mercdttm=20050201015901|termssn=000

36、000123456|osttdate=|oacqssn=|merccode=990108160000101|termcode=00000000|tranamt=100.01|remark1=備忘|remark2=備注|mercurl=表5-2中涉及其他各交易組織明文所需的具體字段參見5.3節(jié)。signature域是對plain字段進(jìn)行的簽名。5.1.2 輸出要素支付網(wǎng)關(guān)返回商戶的信息,是以xml報文的組織結(jié)構(gòu)的一段內(nèi)容交易正常返回<packet><transname>交易名稱</transname><plain> 交易請求明文</plain

37、><signature>交易請求明文的簽名</signature></packet>交易出錯返回<packet><errorcode>錯誤碼</errorcode ><errorcode>錯誤信息</errorcode></packet>注意,類似iper、xyqy、xycx等需要客戶與支付網(wǎng)關(guān)交互的交易,直至交易全部完成才會返回商戶結(jié)果。5.2 交易方式下面將詳細(xì)描述頁面提交方式和ssl提交方式的具體實現(xiàn),請務(wù)必按照文檔進(jìn)行操作。5.2.1 如何編寫https頁面交易接口l 交易

38、發(fā)起頁面<form action=/payment/main method=post><input type=hidden name=transname value=”iper”><input type=hidden name=plain value=<%=plain%>><input type=hidden name= signature value=<%=signature%>><input type=submit name=submit value=浦東發(fā)展銀行支付網(wǎng)關(guān)>&l

39、t;/form>如以上代碼所示,交易發(fā)起需要提交3個變量,transname,plain,signature。其中,transname的取值參見表72(transname域的不同取值)。plain的組織方式見本章5.1.1節(jié),signature的生成方式,見章節(jié)4.2.1。按照指定的格式組織好交易內(nèi)容后,將頁面post到指定網(wǎng)關(guān)地址,網(wǎng)關(guān)處理后,返回相應(yīng)結(jié)果。頁面方式生產(chǎn)環(huán)境鏈接是:測試環(huán)境鏈接是:2/payment/main 銀行的支付網(wǎng)關(guān)頁面,必須在新建的彈出窗口中,彈出窗口要求必須屏蔽ie的相關(guān)操作菜單,以及各種按鈕。注意:大小寫敏感。l 接收結(jié)

40、果頁面/從返回的xml格式報文中解析出plain和signature字段<%plain=signature=接收結(jié)果界面中,可以從請求中取得plain和signature兩個變量,plain的組織方式見本章5.1.1節(jié),然后通過驗簽函數(shù)驗簽,參加章節(jié)4.5.2。5.2.2 如何編寫https指令交易接口商戶以https的方式直接連接支付網(wǎng)關(guān)的服務(wù)地址,并將交易的具體請求信息以post請求提交xml格式到支付網(wǎng)關(guān),具體的交易請求信息直接以流的形式提交。注意:以指令方式提交的交易請在http報文頭(head)中加上content-type=text/xml。l 商戶輸入<?xml ve

41、rsion="1.0" encoding="gbk"?><packet><transname>交易名稱,參見表72(transname域的不同取值)</transname><plain>交易請求明文,參見章節(jié)本章5.1.1</plain><signature>交易請求明文的簽名,參見章節(jié)4.2.2</signature></packet>按照指定的格式組織好交易內(nèi)容后,將頁面post到指定網(wǎng)關(guān)地址,網(wǎng)關(guān)處理后,返回相應(yīng)結(jié)果。指令方式生產(chǎn)環(huán)境鏈接是: 測試

42、環(huán)境鏈接是:2/payment/paygate銀行的支付網(wǎng)關(guān)頁面,必須在新建的彈出窗口中,彈出窗口要求必須屏蔽ie的相關(guān)操作菜單,以及各種按鈕。注意:大小寫敏感。l 支付網(wǎng)關(guān)返回交易正常返回<packet><transname>交易名稱</transname><plain> 交易請求明文</plain><signature>交易請求明文的簽名</signature></packet>交易出錯返回<packet><errorcode>錯誤碼&

43、lt;/errorcode ><errorcode>錯誤信息</errorcode></packet>頁面方式和指令方式支持的交易范圍略有不同,具體支持信息請參見表2-1。下面介紹具體交易時也會提示支持類型。5.3 交易說明5.3.1 支付交易(iper)l 注意:該交易只支持頁面交易方式。l 商戶輸入字段,組織方式請按照5.1.1中plain字段格式進(jìn)行組織:表53名稱說明類型長度備注tranabbr交易縮寫string4標(biāo)識交易類型,見表72masterid企業(yè)客戶號string10企業(yè)客戶支付時必須提供,個人客戶支付時不需要mercdttm商戶日

44、期時間string14必須提供,商戶的交易日期時間yyyymmddhhmmsstermssn訂單號string12訂單號,不能重復(fù)osttdate原交易清算日期string8原交易的清算日期,支付交易不用填值,撤銷退貨需填oacqssn原網(wǎng)關(guān)流水string12原交易的網(wǎng)關(guān)流水,支付交易不用填值,撤銷退貨需填merccode商戶號string15開戶時獲得termcode終端號string8可以全為0tranamt交易金額string12元為單位,如:11.01(表示11元1分),11(表示11元)remark1交易備注1string22交易備注一,該字段將在對帳文件中提供remark2交易備

45、注2string99交易備注二,該字段將在對帳文件中提供mercurl支付交易中,接收交易結(jié)果的url,如:http:/aaa.bbb.ccc/receive.asp string60如果該項為空,則交易結(jié)果會送到商戶在柜面簽約的時候填寫的接收結(jié)果的url;否則就會送到該地址中。支付交易選填,撤銷退貨不需填ip生成訂單生產(chǎn)的ip地址string50如果該項為空,則不進(jìn)行ip地址檢查。支付交易選填,撤銷退貨不需填l 客戶完成支付后網(wǎng)關(guān)返回商戶字段:表54名稱說明 數(shù)據(jù)類型長度tranabbr交易縮寫string4見表72acqssn網(wǎng)關(guān)流水string12要求記錄此值,撤銷、退貨等交易需要該字段

46、mercdttm商戶日期時間string14termssn訂單號string12respcode響應(yīng)碼 string200:表示交易成功其余表示失敗,具體失敗情況描述參見表73(respcode域的不同取值)termcode終端號 string8merccode商戶號 string15tranamt交易金額string12以元為單位,同上表settdate清算日期string8要求記錄此值,撤銷、退貨等交易需要該字段5.3.2 撤銷、退貨交易(iecr,ipsr)l 注意:同時支持頁面交易方式和指令交易方式l 商戶輸入字段,組織方式請按照5.1.1中plain字段格式進(jìn)行組織:表53名稱說明類

47、型長度備注tranabbr交易縮寫string4標(biāo)識交易類型,見表72masterid企業(yè)客戶號string10企業(yè)客戶支付時必須提供,個人客戶支付時不需要mercdttm商戶日期時間string14必須提供,商戶的交易日期時間yyyymmddhhmmsstermssn訂單號string12訂單號,不能重復(fù)osttdate原交易清算日期string8原交易的清算日期,支付交易不用填值,撤銷退貨需填oacqssn原網(wǎng)關(guān)流水string12原交易的網(wǎng)關(guān)流水,支付交易不用填值,撤銷退貨需填merccode商戶號string15開戶時獲得termcode終端號string8可以全為0tranamt交易

48、金額string12元為單位,如:11.01(表示11元1分),11(表示11元)remark1交易備注1string22交易備注一,該字段將在對帳文件中提供remark2交易備注2string99交易備注二,該字段將在對帳文件中提供l 客戶完成支付后網(wǎng)關(guān)返回商戶字段:表54名稱說明 數(shù)據(jù)類型長度tranabbr交易縮寫string4見表72acqssn網(wǎng)關(guān)流水string12要求記錄此值,撤銷、退貨等交易需要該字段mercdttm商戶日期時間string14termssn訂單號string12respcode響應(yīng)碼 string200:表示交易成功其余表示失敗,具體失敗情況描述參見表73(r

49、espcode域的不同取值)termcode終端號 string8merccode商戶號 string15tranamt交易金額string12以元為單位,同上表settdate清算日期string8要求記錄此值,撤銷、退貨等交易需要該字段撤銷和退貨交易中osttdate(原交易清算日期)和oacqssn(原網(wǎng)關(guān)流水)的值必須填寫。該內(nèi)容來自于消費(fèi)交易中從支付網(wǎng)關(guān)輸出的字段中,settdate表示清算日期,acqssn表示網(wǎng)關(guān)流水。注意:撤銷和退貨交易不提供mercurl方式的結(jié)果返回方式。交易結(jié)果將返回給原請求地址。5.3.3 單筆查詢(iqsr)l 注意:同時支持頁面交易方式和指令交易方式

50、查詢交易只支持查詢當(dāng)日交易。l 商戶輸入字段表57名稱說明 數(shù)據(jù)類型數(shù)據(jù)長度merccode商戶號string15otranabbr原交易縮寫string4termssn訂單號string12l 網(wǎng)關(guān)輸出字段:表58名稱說明 類型長度termssn定單號string12tranamt交易金額string12以元為單位,同上節(jié)中的該字段compflag完成狀態(tài)stirng2respcode響應(yīng)碼 string2見表73(respcode域的不同取值)settdate清算日期string8要求記錄此值,撤銷和退貨等交易需要使用acqssn網(wǎng)關(guān)流水string12要求記錄此值,撤銷和退貨等交易需要使

51、用5.3.4 多筆查詢(bqsr)l 注意:同時支持頁面交易方式和指令交易方式查詢交易只支持查詢當(dāng)日交易。l 商戶輸入字段表59名稱說明 數(shù)據(jù)類型數(shù)據(jù)長度merccode商戶號 string15otranabbr原交易縮寫string4btermssn開始訂單號string12etermssn結(jié)束訂單號string12注意:要求 btermssn <= etermssnl 網(wǎng)關(guān)輸出字段:名稱說明 數(shù)據(jù)類型數(shù)據(jù)長度orderstatelist訂單列表 string注意:orderstatelist內(nèi)容組織如下說明表5-8表58名稱說明 類型長度termssn定單號string12trana

52、mt交易金額string12以元為單位,同上節(jié)中的該字段compflag完成狀態(tài)stirng2respcode響應(yīng)碼 string2見表73(respcode域的不同取值)settdate清算日期string8要求記錄此值,撤銷和退貨等交易需要使用acqssn網(wǎng)關(guān)流水string12要求記錄此值,撤銷和退貨等交易需要使用mercdttm商戶時間string14訂單發(fā)生的商戶時間,供商戶參考bqsr交易網(wǎng)關(guān)返回示例:<packet><transname>bqsr</transname><plain>orderstatelist=settdate=2

53、0290320|termssn=06093620 |acqssn=a00000277991|tranamt=1.8|mercdttm=20050825140230|respcode=00|compflag=00settdate=20290114|termssn=06133247 |acqssn=a00000278091|tranamt=1.8|mercdttm=20050825140230|respcode=55|compflag=01settdate=20290320|termssn=06133247 |acqssn=a00000278093|tranamt=1.8|mercdttm=20050825140230|respcode=00|compflag=00settdate=20290320|term

溫馨提示

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

最新文檔

評論

0/150

提交評論