? ? ? ?對于未知,一般來說我們有兩種心理:恐懼匣沼,或者崇拜。
? ? ? ?恐懼如小時候释涛,我去河里游泳加叁,對于望不見底,黑漆漆唇撬、涼颼颼的河水,心中充滿了各種可怕的想法窖认。
? ? ? ?崇拜如長大后豫柬,對于瑞士銀行的軟件系統(tǒng)扑浸,覺得一定是最頂尖掰的程序猿開發(fā)的烧给,直到我發(fā)現(xiàn)了我同事的秘密(關于這個梗喝噪,咱們改天當面聊)础嫡。
? ? ? ?所以如果你跟當年的我一樣酝惧,也處于初學者或者剛進入開發(fā)不久榴鼎,那么你對于銀行晚唇、轉(zhuǎn)賬、支付哩陕、第三方等等概念一定也處在崇拜或者恐懼階段平项。而其實只要打破這種未知,你就會發(fā)現(xiàn):原來不過如此悍及。
? ? ? ?我的從業(yè)生涯中,現(xiàn)在還記得的并鸵,大概接觸過如下幾種支付通道:銀聯(lián)鸳粉、工商銀行、農(nóng)業(yè)銀行届谈、通聯(lián)枯夜、支付寶、微信艰山、paypal、apple支付等曙搬。到現(xiàn)在摔吏,還老有人時不時找我做支付接口,比如就在昨天征讲,有人還Q我做農(nóng)行支付~~。說真的橡娄,我都不知道大家從哪里搞到我QQ號的诗箍。
? ? ? ?你沒做過挽唉,就會覺得可怕,各種高端神奇瓶籽、調(diào)試不出來匠童。你如果做過,就會發(fā)現(xiàn)塑顺,這特么的不就是調(diào)用個Http服務嗎:
? ? ? ?并且,如果你做過了茬暇,你就會發(fā)現(xiàn),各家銀行和第三方支付的技術(shù)支持寡喝、開發(fā)能力也是各種良莠不分、殘次不齊预鬓。尤其是一些小行巧骚,那個技術(shù)能力簡直令人發(fā)指。我們在做一家小行的企業(yè)支付的時候劈彪,甚至達到了要教對方的開發(fā)怎么去做接口的程度……。還有顶猜,不要覺得覺得拿他們的offer很難沧奴,我們有一個學員以外包的形式進駐到某第三方支付公司進行開發(fā)长窄,未到多久滔吠,對方就想將其挖為正式員工。
1.?破除恐懼
? ? ? ?要破除恐懼疮绷,我們先拿將支付做到極致的支付寶來入手翰舌。
? ? ? ?如果你想增加恐懼,請隔壁去試微信支付椅贱,那個調(diào)試可不是一般的復雜哦。
? ? ? ?好了只冻,如果你的公司要將平臺接入支付寶庇麦,那么首先属愤,就得以公司的形式去支付寶的網(wǎng)站申請資質(zhì)女器。不要管我問哪里是申請的地方住诸,這么多年來驾胆,支付寶不僅支付接口本身贱呐,連開發(fā)者網(wǎng)站都不知道改版了多少次。那么到底申請資質(zhì)這件事情在一個公司里面是誰來做奄薇?一般來說驳阎,是技術(shù)和財務一起配合來做。為什么吶馁蒂,因為你去讓財務申請,財務會說沫屡,我完全看不懂啊饵隙,但是你作為技術(shù)直接去申請,由于驗證公司資料金矛、公帳等一系列操作,你沒有財務的支持勺届,也是不行的驶俊。除非你像當初的我一樣免姿,一人身兼董事長饼酿、總經(jīng)理胚膊、財務總監(jiān)嗜湃、技術(shù)總監(jiān)、市場總監(jiān)购披、保潔總監(jiān)于一職杖挣,公司隨身用皮包裝著走。
? ? ? ?申請下來后刚陡,對方會給你一堆配置參數(shù)或電子證書等。NB如支付寶筐乳,一定是讓你登錄網(wǎng)站后臺自己查看或者下載證書歌殃。不NB如某些小行,居然會讓你加入一個QQ群蝙云,或者給你一個QQ號,由相關的人員點對點給你發(fā)過來……
? ? ? ?有了基本的參數(shù)勃刨,一般來說波材,對方還會提供DEMO身隐,那么接下來廷区,我們就把DEMO中的參數(shù)替換為剛才獲得的參數(shù)贾铝,如果有證書的隙轻,則把證書部署到你自己的服務器上垢揩,DEMO就能運行起來了玖绿。
? ? ? ?再說一遍叁巨,能力有大小斑匪,對方寫DEMO以及撰寫API文檔的能力也不見得比你更好俘种,所以你一次能調(diào)試成功的機會就得看你運氣了。
2.?支付寶即時到賬
? ? ? ?來看看最簡單的支付寶的DEMO宙刘。這是支付寶網(wǎng)站下載回來的demo±谓停可以看到悬包,有不同的語言的版本:
? ? ? ?我們將它引入到eclipse中馍乙,長這個樣子:
? ? ? ?這個demo中布近,主要有上圖所示的幾個文件,下文會挑主要的講撑瞧。
3.?修改參數(shù)
? ? ? ?在參數(shù)的修改中棵譬,主要是上圖紅框內(nèi)的五個地方预伺,
? ? ? ?Partner:公司的身份订咸,支付寶分配給你的,相當于銀行賬號脏嚷;
? ? ? ?兩個Key:一個是公鑰一個是私鑰,有些支付通道是以電子證書的形式給我們的瞒御,可以是文件父叙。也可以是一個U盤肴裙,但是里面存的就是公鑰和私鑰趾唱。有同學可能注意到践宴,我單獨給私鑰打碼了鲸匿,而沒有給公鑰打碼阻肩。這個以后我們說到加解密的時候再說哦带欢,總之烤惊,保護好你的私鑰就是了乔煞,這個私密性等同于你的銀行賬號密碼柒室。
? ? ? ?兩個url:一個叫做return-url渡贾,是什么意思呢雄右?就是支付完成后(一會看實操)空骚,支付寶得把支付結(jié)果返回給咱們擂仍,他怎么返回給我們呢囤屹?我們也得給支付寶一個網(wǎng)址逢渔,這樣它就能給這個網(wǎng)址發(fā)消息了不是肋坚。
? ? ? ?但是,這個notify_url是個什么鬼智厌?我們想象一下這個場景:
? ? ? ?為了阻止上面情況發(fā)生诲泌,我們就得提供另外一個URL铣鹏,這個URL用來在支付寶發(fā)送消息給return-url失敗的時候敷扫,會在接下來的時間內(nèi)吝沫,不間斷的定時發(fā)送補充消息到這個地址呻澜,把這個壞掉的邏輯補回來惨险。
4.?操作演示
? ? ? ?來,不管三七二十一辫愉,先來波操作栅受,首先,運行index.jsp恭朗,如下圖:
? ? ? ?這個頁面沒什么稀奇的屏镊,無非就是訂單號和商品和金額痰腮。
? ? ? ?然后點擊發(fā)送而芥,關鍵的一刻產(chǎn)生了膀值,我們就得把上面的顯然可見的信息棍丐,和隱藏在表單后的參數(shù)信息一起包裝到httprequest中發(fā)送到支付寶的網(wǎng)站去〔滋ぃ看一下,大致有什么:
? ? ? ?發(fā)送出去后翘狱,就是下面的界面秘案。熟悉不,剁手吧阱高。
? ? ? ?在這個界面中,支付寶就會讓你打開手機APP茬缩,讓你掃一掃支付赤惊,或者讓你登錄支付寶網(wǎng)站支付寒屯。如果是銀行栅迄,一般就會讓你打開網(wǎng)銀,進行支付。這些操作勿锅,都是在他們的平臺中進行的。在這一步腌巾,跟咱們的網(wǎng)站無關(你可以看下圖的瀏覽器地址)。
? ? ? ?支付完畢智绸,提醒如下:
? ? ? ?緊接著野揪,再次跳轉(zhuǎn)提醒
? ? ? ?緊接著,支付寶再次跳轉(zhuǎn)回我們的網(wǎng)站斯稳,看到?jīng)],return_url.jsp迹恐,就是我們配置的返回地址挣惰。到此殴边,完成支付憎茂。謝謝大家锤岸,請先轉(zhuǎn)100W過來竖幔。
5.?企業(yè)級支付中其它問題
? ? ? ?即便解決了上文中同步操作的異常問題是偷,還是有可能有其它一些意外情況的發(fā)生拳氢,比如你的數(shù)據(jù)庫崩潰了晓猛,導致你保存的收付款情況和支付寶(或銀行)那邊的首付款情況不一致饿幅。故戒职,一般來說栗恩,除了類似上面的接口,支付平臺還會提供一些對賬接口供你調(diào)用磕秤,進行一個階段內(nèi)的批量對賬。
? ? ? ?那這些對賬接口怎么調(diào)用捧韵?當然是跟上面一樣了市咆。其返回的response中的數(shù)據(jù)再来,可能就是一個階段內(nèi)的所有賬單信息蒙兰,然后,我們作為程序員搜变,就要去寫程序跟自己保存的數(shù)據(jù)進行一致性的校驗采缚。
6.?認識一下銀行的支付通道
看過了支付寶的支付通道,我們再來看一個農(nóng)行的支付通道挠他。注意,其原理是完完全全一致的殖侵。
在這里贸呢,我們僅僅放置一段發(fā)送代碼感受一下吧,同時拢军,這段代碼是用PHP寫的,從現(xiàn)在起茉唉,不要說猜谚,你只會Java編程了:-)
? ? ? ?還有,農(nóng)行的支付通道是使用文件證書來存儲公鑰和私鑰的魏铅,如下
7.?支付通道在互聯(lián)網(wǎng)借貸平臺中的應用
擁有了以上的知識,是不是就意味著支付與轉(zhuǎn)賬在所有的互聯(lián)網(wǎng)應用中你就能放心應付了呢坚芜?非也览芳,在電子商務中鸿竖,以上知識可能差不多了沧竟,但是在互聯(lián)網(wǎng)借貸平臺(俗稱P2P)中缚忧,還不夠悟泵。
我們都知道闪水,P2P平臺最大的一個風險就是平臺跑路糕非。這些年的新聞可謂是層出不窮球榆。我修正一下朽肥,5年前的P2P平臺持钉,你利用我上文描述中的知識就能做一個P2P了衡招,但是現(xiàn)在每强,不能了始腾。
這個不能,不是指技術(shù)上不能夠浪箭,而是政策上不能夠怀伦。
在上文的即時轉(zhuǎn)賬中,用戶轉(zhuǎn)給公司的錢山林,公司瞬間就可以提走邢羔。如果這種模式存在于P2P平臺中驼抹,那么風險就很大拜鹤,因為公司隨時可以轉(zhuǎn)走投資者的錢而跑路框冀。
? ? ? ?用幾句話來描述P2P公司的業(yè)務模式:
? ? ? ?注意敏簿,上面的過程中哪些環(huán)節(jié)能出現(xiàn)風險呢明也?讓我們再把上面的描述復述一遍惯裕,同時加上備注温数,你只看備注就可以了:
? ? ? ?為了解決這樣的問題蜻势,金融監(jiān)管機構(gòu)就出現(xiàn)了撑刺。金融監(jiān)管機構(gòu)要求所有的P2P平臺:
? ? ? ?1:不能有自己的資金池握玛;
? ? ? ?2:在銀行開立的用于收付款的賬號是專門的虛擬賬號够傍,不能直接打到自己的公司賬號挠铲,這些錢冕屯,只能發(fā)起申請直接打給投資者和借款人拂苹;
? ? ? ?3:所有的借款人和投資者在平臺上的賬號對應在銀行那里也得有虛擬賬號安聘,所有平臺上的投資和借錢行為發(fā)生在這些受監(jiān)控的虛擬賬號內(nèi)瓢棒,實際要提現(xiàn)必須由本人發(fā)起申請搞挣。
? ? ? ?以上音羞,講完了囱桨。
? ? ? ?通過上文的了解嗅绰,現(xiàn)在的你舍肠,是要去做一個電商網(wǎng)站呢搀继,還是一個P2P平臺翠语?回歸一句話叽躯,記住:萬事萬物兼HTTP服務……
==================================================================
以下是廣告時間:最課程(http://zuikc.com)正在招收Java就業(yè)班學員肌括,如果你想了解或參與的這樣的項目,請聯(lián)系我們哦谍夭。