黎活明_傳智播客_網(wǎng)上支付_第1頁
黎活明_傳智播客_網(wǎng)上支付_第2頁
黎活明_傳智播客_網(wǎng)上支付_第3頁
黎活明_傳智播客_網(wǎng)上支付_第4頁
黎活明_傳智播客_網(wǎng)上支付_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 網(wǎng)網(wǎng)上支付上支付講師:黎活明講師:黎活明高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 兩種接入方案l直接與銀行對接l通過中間公司間接與銀行對接高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 直接與銀行對接這種方式接方式的優(yōu)缺點(diǎn):這種方式接方式的優(yōu)缺點(diǎn):優(yōu)點(diǎn):優(yōu)點(diǎn):因?yàn)橹苯优c銀行進(jìn)行財務(wù)結(jié)算,交易資金結(jié)算比較安全。適合資金流量比較大的企業(yè),這種方案適合于:每月結(jié)算金額佰萬以上的企業(yè)。缺點(diǎn):缺點(diǎn):開發(fā)工作量比較大,而且銀行會不定期升級交易系統(tǒng),隨著銀行系統(tǒng)的升級,企業(yè)也需要作相

2、應(yīng)改動,所以維護(hù)工作量也是比較大的,而且企業(yè)每年還需要向銀行交納一定數(shù)量的接口使用費(fèi)。企業(yè)招商銀行建設(shè)銀行工商銀行其他.高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 通過中間公司間接與銀行對接這種方式接方式的優(yōu)缺點(diǎn):這種方式接方式的優(yōu)缺點(diǎn):優(yōu)點(diǎn):優(yōu)點(diǎn):開發(fā)工作量較少,因?yàn)槭褂玫氖侵虚g企業(yè)提供的接入規(guī)范,所以銀行升級系統(tǒng),不需要企業(yè)作相應(yīng)修改,除非中間企業(yè)的接入規(guī)范發(fā)生了改變,企業(yè)才作相應(yīng)修改。相對前一種接入方案,這種方案的維護(hù)工作量比較少的。因?yàn)橹慌c一家企業(yè)對接,所以接入費(fèi)用相對比較低。這種方案適合于:每月結(jié)算金額在幾十萬以下的中小企業(yè)。缺點(diǎn)缺點(diǎn):因?yàn)槭桥c中間企業(yè)進(jìn)行

3、資金結(jié)算,目前所有中間企業(yè)都是私企,資金安全是個大問題。企業(yè)招商銀行建設(shè)銀行工商銀行其他.中間企業(yè)高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 巴巴運(yùn)動網(wǎng)網(wǎng)上支付通過中間支付公司與銀行對接目前在國內(nèi)做的比較好的中間支付公司:l首信易支付:http:/ 每年需要交納一定的接口使用費(fèi),并且從交易金額中扣除1%的手續(xù)費(fèi)。像當(dāng)當(dāng)網(wǎng)、紅孩子、京東商城使用了首信易支付。l易寶支付: http:/ 接入免費(fèi),只從交易金額中扣除1%的手續(xù)費(fèi)。像盛大、 e龍網(wǎng)、巴巴運(yùn)動網(wǎng)使用了易寶支付。高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 易寶支付接入規(guī)范名詞MD5-

4、hmac:hmac 是一種秘密的密鑰驗(yàn)證算法。hmac 提供的數(shù)據(jù)完整性和源身份驗(yàn)證完全取決于密鑰分配的范圍。如果只有發(fā)起者和接收者知道hmac 密鑰,那么這就對兩者間發(fā)送的數(shù)據(jù)提供了源身份驗(yàn)證和完整性保證。本例給大家提供了該算法的加密類:DigestUtil使用方法如下:StringBuffer sValue = new StringBuffer();sValue.append(lihuoming);sValue.append(08129010);String hmacMD5 = DigestUtil.hmacSign(sValue.toString(), 123456);第一個參數(shù)為加密的

5、原文,第二個參數(shù)為密鑰。高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 易寶支付接入規(guī)范支付流程支付流程:通過http請求方式向易寶支付網(wǎng)關(guān)發(fā)起一個支付請求,簡單地說就是向https:/ 這里省略一些請求參數(shù) 易寶支付網(wǎng)關(guān)對企業(yè)發(fā)來的數(shù)據(jù)使用用戶的密鑰生成MD5-hmac碼,然后跟企業(yè)發(fā)來的MD5-hmac碼(即上面表單由hmac字段提供的值)比較是否相同,如果相同即把請求轉(zhuǎn)發(fā)到銀行網(wǎng)關(guān),當(dāng)用戶支付完成后,銀行網(wǎng)關(guān)會引導(dǎo)用戶的瀏覽器重定向到易寶支付網(wǎng)關(guān),然后易寶支付網(wǎng)關(guān)再引導(dǎo)用戶的瀏覽器重定向到企業(yè)提供的url(即上面表單由p8_Url提供的地址)高級軟件人才實(shí)作培訓(xùn)專

6、家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 對支付請求的數(shù)據(jù)加密生成md5-hmacbuildHmac()方法用于生成md5-hmacpublic static String buildHmac(String p0_Cmd,String p1_MerId, String p2_Order, String p3_Amt, String p4_Cur,String p5_Pid, String p6_Pcat, String p7_Pdesc,String p8_Url, String p9_SAF,String pa_MP,String pd_FrpId, String pr_NeedRe

7、sponse,String keyValue) StringBuffer sValue = new StringBuffer();sValue.append(p0_Cmd); / 業(yè)務(wù)類型,buysValue.append(p1_MerId); / 商戶編號sValue.append(p2_Order); / 商戶訂單號sValue.append(p3_Amt); / 支付金額sValue.append(p4_Cur); / 交易幣種sValue.append(p5_Pid); / 商品名稱sValue.append(p6_Pcat); / 商品種類sValue.append(p7_Pdesc

8、); / 商品描述sValue.append(p8_Url); /商戶接收支付成功數(shù)據(jù)的地址sValue.append(p9_SAF); / 送貨地址sValue.append(pa_MP); / 商戶擴(kuò)展信息sValue.append(pd_FrpId); / 銀行編碼sValue.append(pr_NeedResponse); / 應(yīng)答機(jī)制0 ,1String sNewString = DigestUtil.hmacSign(sValue.toString(), keyValue);return sNewString;高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育

9、 對支付請求的數(shù)據(jù)加密生成md5-hmacString merchantID = ConfigInfo.getValue(p1_MerId); / 商家IDString keyValue = ConfigInfo.getValue(keyValue); / 商家密鑰String merchantCallbackURL = ConfigInfo.getValue(merchantCallbackURL); / 交易結(jié)果通知地址String orderId = request.getParameter(orderid); / 商家的交易定單號String amount = request.getP

10、arameter(amount); / 訂單金額String frpId = request.getParameter(pd_FrpId); / 銀行IDString messageType = Buy; / 請求命令,在線支付固定為BuyString currency = CNY; / 貨幣單位String productDesc = ; / 商品描述String productCat = ; / 商品種類String productId = ; / 商品IDString addressFlag = 0; / 需要填寫送貨信息 0:不需要 1:需要String sMctProperties

11、= ; / 商家擴(kuò)展信息String hmac = buildHmac(messageType, merchantID, orderId, amount, currency, productId,productCat, productDesc, merchantCallbackURL, addressFlag, sMctProperties, frpId, 0, keyValue);/ 獲得MD5-HMAC簽名buildHmac()方法在前面已提供。ConfigInfo從類路徑下的屬性文件讀取商家的ID、密鑰和交易結(jié)果通知地址。高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客

12、教育 易寶支付接入規(guī)范發(fā)起支付請求 高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 對支付結(jié)果返回的數(shù)據(jù)加密生成md5-hmacpublic static boolean verifyCallback(String hmac, String p1_MerId,String r0_Cmd, String r1_Code, String r2_TrxId, String r3_Amt,String r4_Cur, String r5_Pid, String r6_Order, String r7_Uid,String r8_MP, String r9_BType, Stri

13、ng keyValue) StringBuffer sValue = new StringBuffer();sValue.append(p1_MerId);/ 商戶編號sValue.append(r0_Cmd);/ 業(yè)務(wù)類型sValue.append(r1_Code);/ 支付結(jié)果sValue.append(r2_TrxId);/ 易寶支付交易流水號sValue.append(r3_Amt);/ 支付金額sValue.append(r4_Cur);/ 交易幣種sValue.append(r5_Pid);/ 商品名稱sValue.append(r6_Order);/ 商戶訂單號sValue.ap

14、pend(r7_Uid);/ 易寶支付會員IDsValue.append(r8_MP);/ 商戶擴(kuò)展信息sValue.append(r9_BType);/ 交易結(jié)果返回類型String sNewString = null;sNewString = DigestUtil.hmacSign(sValue.toString(), keyValue);if (hmac.equals(sNewString) return true;return false;高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 對支付結(jié)果返回的數(shù)據(jù)加密生成md5-hmacString merchantI

15、D = ConfigInfo.getValue(p1_MerId); / 商家IDString keyValue = ConfigInfo.getValue(keyValue); / 商家密鑰String sCmd = request.getParameter(r0_Cmd); /業(yè)務(wù)類型String sResultCode = request.getParameter(r1_Code); /扣款結(jié)果,該字段值為1時表示扣款成功.String sTrxId = request.getParameter(r2_TrxId); /YeePay易寶交易訂單號String amount = reque

16、st.getParameter(r3_Amt);/扣款金額,交易結(jié)束后,YeePay易寶交易系統(tǒng)將實(shí)際扣款金額返回給商戶String currency = request.getParameter(r4_Cur);/交易幣種,人民幣為CNYString productId = request.getParameter(r5_Pid);/商品IDString orderId = request.getParameter(r6_Order);/商戶訂單號String userId = request.getParameter(r7_Uid);/YeePay易寶會員IDString mp = req

17、uest.getParameter(r8_MP);/商戶擴(kuò)展信息,可以任意填寫1K 的字符串,交易返回時將原樣返回String bType = request.getParameter(r9_BType);/交易結(jié)果返回類型,1: 交易成功回調(diào)(瀏覽器重定向)2: 交易成功主動通知(服務(wù)器點(diǎn)對點(diǎn)通訊)String rb_BankId = request.getParameter(rb_BankId);/支付銀行String rp_PayDate = request.getParameter(rp_PayDate);/在銀行支付時的時間String hmac = request.getParam

18、eter(hmac);/MD5交易簽名boolean isOK = verifyCallback(hmac, merchantID, sCmd, sResultCode, sTrxId, amount,currency, productId, orderId, userId, mp, bType, keyValue);verifyCallback()方法在前面已經(jīng)提供。高級軟件人才實(shí)作培訓(xùn)專家高級軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 處理支付結(jié)果boolean isOK = verifyCallback(hmac, merchantID, sCmd, sResultCode, sTrxId, amount,currency, productId, orderId, userId, mp, bType, keyValue);對isOK 的結(jié)果進(jìn)行判斷:if(isOK) if(1.equals(sResultCode) /扣款結(jié)果,該字段值為1時表示扣款成功.String msg = ;if(1.equals(bType) msg = 在線支付_客戶瀏覽器重定向; else if(2.equals(bType) ms

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

提交評論