1. 程式人生 > >java 線上支付功能實現一

java 線上支付功能實現一

實現的兩種方法

1 直接與銀行對接:   交易比較安全,適合資金流量比較大的企業,這種方案適合於,每月結算金額百萬以上的.

                           但開發工作量比較大,而且銀行會不定期升級交易系統,每個銀行的介面都不同,交納的費用也不低.

2 通過中間公司 間接與銀行對接:  開發工作量較少,銀行升級交易系統一般我們不作修改,除非中間企業修改了,這種方案月結算幾十萬左右的交易中小企業

                                           因為是中間企業進行的資金結算,目前大部分都是私人開發.不是很安全

        國內:首信支付  

http://www.beijing.com.cn  每年交納一定的費用(噹噹網,紅孩子,京東商城),每筆還要扣除部分費用

        易寶支付的規範

        加密:MD5- hrmac;

1. 網上支付兩種接入方案 
--直接與銀行對接
優點:因為直接與銀行進行財務結算,交易資金結算比較安全。適合資金流量比較大的企業,這種方案適合於:每月結算金額佰萬以上的企業。
缺點:開發工作量比較大,而且銀行會不定期升級交易系統,隨著銀行系統的升級,企業也需要作相應改動,所以維護工作量也是比較大的,而且企業每年還需要向銀行交納一定數量的介面使用費。
--通過中間公司間接與銀行對接
優點:開發工作量較少,因為使用的是中間企業提供的接入規範,所以銀行升級系統,不需要企業作相應修改,除非中間企業的接入規範發生了改變,企業才作相應修改。相對前一種接入方案,這種方案的維護工作量比較少的。因為只與一家企業對接,所以接入費用相對比較低。這種方案適合於:每月結算金額在幾十萬以下的中小企業。
缺點:因為是與中間企業進行資金結算,目前所有中間企業都是私企,資金安全是個大問題。

2.目前在國內做的比較好的中間支付公司:

 
1) 首信易支付:http://www.beijing.com.cn/
每年需要交納一定的介面使用費,並且從交易金額中扣除1%的手續費。像噹噹網、紅孩子、京東商城使用了首信易支付。
2)易寶支付: http://www.yeepay.com/
接入免費,只從交易金額中扣除 1%的手續費。像盛大、 e龍網、巴巴運動網使用了易寶支付。

3.易寶支付接入規範 
1)MD5-hmac:
hmac 是一種祕密的金鑰驗證演算法。hmac 提供的資料完整性和源身份驗證完全取決於金鑰分配的範圍。如果只有發起者和接收者知道hmac金鑰,那麼這就對兩者間傳送的資料提供了源身份驗證和完整性保證。
2)MD5-hmac的實現
是由易寶提供的DigestUtil工具類.不需要我們自己實現.只要按照要求傳入引數得到結果就行. 這個類在網上也可以下載到.



5.流程(分為兩個部分) 
1)發起支付請求
使用GET/POST方式向支付閘道器發起HTTP請求.(https://www.yeepay.com/app-merchant-proxy/node)
支付閘道器就是一個路徑.
向支付閘道器傳送支付請求要帶一些引數.
-支付方式:p0_Cmd,還有電話支付等,所有要有所區別.
-商家 ID:p1_MerId,在申請的時候由易寶給的.
-交易結果通知地址:p8_Url,為下面接受支付結果資訊使用的.
等等...在易寶支付接入規範中,有詳細的說明,只要按照要求執行就好了.
-應答機制:0,判斷響應碼,要是200就表示支付結構資訊通知你了.1,獲取伺服器返回的success.
2)接受支付結果資訊
獲取銀行給商家返回的資訊.
各個引數的名稱在易寶支付接入規範中都有說明.
特別要注意的:接收處理訂單的時候,要注意對訂單的狀態進行判斷.否則會有表單重複提交的問題.交一次錢,重新整理頁面就會多次購買.

總結: 
--發出GET 或POST請求都行
--頁面要是GBK/GB2312編碼的.
--傳送的引數請求不是自己隨便起的,是接入規範中定義好的.
-- 易寶提供的金鑰一定不要讓第三方知道.
--在生成MD5-HMAC要按照順序,並且值不能是Null
--引導使用者的瀏覽器重定向的方式.
-- 是生成MD5碼的時候,順序要按照規定.