電子商務中第三方支付網關談

     轉載自:http://blog.sina.com.cn/s/blog_5e98ca2b0100kzes.html

在電子商務越來越發達的今天,第三方支付網關也越來越多,雖然第三方支付的公司很多,但在接口方面還是比較相似的,都有一定的規則在其中,比如支付,它勢必會有訂單生成、支付、返回成功標誌、對賬等功能,當然,各家網關還有自己獨有的一些特點,比如IPS的分賬系統。

或許大家會在各家公司之間取捨,就我個人來看,現在做的比較成功的,還算支付寶,有淘寶這個得天獨厚的電子商務平臺,使支付寶這個第三方成爲了國內首屈一指的支付平臺,穩定性和安全性都相對比較好。IPS是國內較早起家的第三方支付網關,成熟的商業模式和完善的客服體系,也在這個市場中,贏得了較好的口碑。還有一些大家比較熟悉的,快錢、財付通、chinapay、paypal等,就在今年,國內的銀聯機構也加入了這場戰鬥中,再加上各種第四方支付接口,電子商務在金融危機下的今天,正在迅速的發展中。

現在支付支持的方式越來越多,大概分爲:

1、網銀支付(銀行卡)

2、充值卡支付(esales)

3、手機卡支付

4、第三方貨幣支付

除了網銀支付這個大家都有的支付方式外,各家公司的其他功能,也是我們選擇支付網關時需要考慮的。所以我們選擇的時候需要考慮的一些問題如下:

1、穩定性

2、安全性

3、功能

4、手續費

5、結算時間

6、接口的複雜度

重要性從上往下,或許很多人會看手續費,但這其實並不是很重要,我使用過各種支付接口,有收費和免費的,免費的手續費也比較低,但在結算和功能上比收費的網關差的真的很多,所以大家在選擇的時候一定要按照自己的網站規模來進行選擇,那樣才能更好的。這裏我想說一下,就是第四方支付網關,這類網關其實是整合了多家網關,然後變爲自己的一個支付網關,這類網關收費也相對較高,安全性方面也不是很好,如果可能還是不要選擇這類網關比較好。

當你選擇好支付網關後,請一定要下載他們的API文檔,在這裏 你可以下載 支付寶API IPSAPI

因爲各家公司還有自己的特色,所有文檔會不太一樣,不過大致相同的是網銀的支付方式,其實大概的流程如下:

提交:用戶 –> 生成訂單 –> 生成支付網關訂單 –> 提交到支付網關(我們只需要到這裏) –> 與銀行支付網關交互

返回:銀行返回到支付網關(我們無需知道) –> 支付網關返回網站 -> 處理返回數據 –> 返回給用戶友好信息

知道了處理流程和API,我們的代碼寫起來就非常的簡單,但我看了好多公司寫的支付接口,說實在的,大多沒有考慮到自己網站會使用多支付方式,造成了一個支付網關,一堆相互無關的代碼,日積月累,留給後續程序人員帶來了無盡的煩惱。其實我想大家也明白了,支付網關大體都差不多,只不過個別不一樣,我們可以利用抽象工廠等設計模式,設計出漂亮的架構出來。關於支付網關框架,我是想做一個,其實很多CMS和BBS已經帶了完整的支付框架,不過.Net的好像不多,我們可以參考他們的優點,僅僅需要配置,就可以方便任何人進行使用,如果有興趣,大家可以聯繫我:)

說了支付,其實很多網關都功能比較完善,但僅僅支付是不夠的,我們還需要考慮其他一些問題,比如技術支持、穩定性、數據完整性、掉單處理等等,都是我們網站開發人員需要考慮的問題。在支付網關中,有一項是大家比較忽略,但非常重要的一個環節:對賬系統

何爲對賬系統呢?說白了,就像會計在覈查賬本,那我們在何種情況下會使用到呢?我想說的是,何處我們都要使用。看下面幾種情況:

1、支付按流程完成,返回到用戶。

2、用戶支付途中遇到錯誤(包括網關異常、網絡錯誤、返回錯誤等)

3、遇到騙子

第一種情況,大家會問既然成功了,爲什麼還要對賬呢?因爲我們與網關的交互都是依靠網絡的,而網絡卻是最最不安全的東西,而金錢又是至關重要的東西,所以我們一定要對它嚴謹的處理。因爲我們的支付包括返回,都是Post數據,Get返回,所以很可能有惡意的用戶進行構造數據,矇蔽你的返回處理系統,當然,如果你覺得你的返回接口比較強大,沒有漏洞那就另當別論了。對賬系統能夠確保數據的再次比對,讓你的數據能夠安全的核對,因爲對賬系統一般都是由網關直接post給你,會有一定的安全措施在其中,比如域名、ip限制等。

第二種情況,相信大家會遇到的很多,這是無法避免的情況,不過大多情況都是發生在用戶身上,網站服務器一般都是託管,24×7服務的,有了對賬系統,能夠在大多數情況下避免此種麻煩。當然還會遇到其個別的錯誤,這時候對賬也無法成功,這時候就需要手工處理掉單。

第三種情況,爲什麼把他也列爲一列呢?因爲真的會有不少騙子,給你造成很多不必要的麻煩,這時候,我們可以根據自己的支付系統和對賬系統一起來調查,這樣也比較快捷,遇到了騙子就直接拉黑。

支付網關對賬系統是非常嚴謹的一個系統,因爲其中也包含了很多用戶信息,包括安全驗證碼等,所以一般的對賬系統,都有時間限制,比如5分鐘,在5分鐘內一直髮送對賬信息,如果成功,此條信息就銷燬,避免不必要的麻煩。這是非常好的措施,但有時也會造成麻煩,萬一我重啓呢?不過好在這種情況,我們很少會遇到,除非遇到機房斷電,519斷網事件等。

那我們的對賬系統需要如何來做呢?以我多年的經驗,除了處理對賬數據(與返回數據相類似),還要限定ip、限定域名等,以確保數據的安全性。

好了,就說到這裏吧,後續我想還說說如何構建統一的支付接口,要看有沒有時間了,這次把自己對支付網關的理解說了下,也把一些需要注意的說了說,希望能對你起到一些作用。

發佈了5 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章