1. 程式人生 > >第三方支付架構設計之—帳戶體系的理解

第三方支付架構設計之—帳戶體系的理解

第三方支付架構設計之—帳戶體系

一,      什麼是第三方支付?

        什麼是第三方支付?相信很多人對這個名字很熟悉,不管是從各種媒體等都經常聽到,可以說是耳熟能熟。但,如果非得給這個名詞總結出一個概念,卻發現很難準確和全面的表述清楚。不過關係不大,我們無法給出一個很準確的概念的時候,我們就列舉一下實際生活中我們經常使用第三方支付的例子:支付寶,財付通,微信支付等等,這些就是我們國內目前在第三方支付市場中比較有影響力的第三方支付了。

       搜尋一下百度,所謂第三方支付,就是一些和產品所在國家以及國外各大銀行簽約、並具備一定實力和信譽保障的第三方獨立機構提供的交易支援平臺。

在通過第三方支付

平臺的交易中,買方選購商品後,使用第三方平臺提供的賬戶進行貨款支付,由第三方通知賣家貨款到達、進行發貨;買方檢驗物品後,就可以通知付款給賣家,第三方再將款項轉至賣家賬戶。

 從這個概念中,有幾個關鍵點:

1,       需要跟各個銀行簽約,那麼問題是第三方支付跟銀行的關係是什麼?

2,       使用者通過第三方支付平臺進行支付,那麼資金是如何進入第三方支付平臺的?

3,       商戶通過接入第三方支付平臺進行收款,那麼資金最終又是如何結算給到商戶的?

        因此,我們要充分理解第三方支付平臺,得從使用者,支付平臺,商戶,當然還有背後的銀行和監管機構等進行全面分析,只有充分理解這些關係,才能對第三方支付的賬戶體系有充分的理解和掌握,從而充分理解支付中的資金流。

         我們知道,隨著電子商務在中國的迅速崛起,電子商務必須要解決幾個非常關鍵的問題,那就是:資訊流,資金流和物流,資訊流一般是通過電子商務平臺進行解決,包括使用者資訊,商品,商戶和訂單等,而資金流,即支付和結算等相關方面一般是通過第三方支付平臺進行解決,第三方支付植入到電商平臺中,幫助電商平臺解決資金在使用者和商戶之間的流轉,甚至在c2c交易中,第三方支付還起到了中介擔保賬戶的作用;而物流,是解決物品如何送到使用者手中的問題,各種物流公司或者電商自建物流網路等都是解決物流相關的解決方案,對資訊流和物流,我們這裡不進行展開,本章重點側重資金流的流轉。

二,      什麼是賬戶?

         從會計學上來看,賬戶是根據會計科目設定的,具有一定格式和結構,用於分類反饋會計要素增加變動情況及其結果的載體。設定賬戶是會計核算的重要方法之一。

同會計科目分類相對應,賬戶按其提供的資訊詳細程度和統馭關係不同分為總賬賬戶明細賬戶,請注意,在設計IT賬戶系統中,總賬戶和明細賬戶是非常重要的概念,後面會重點分析。

         而按照賬戶反映的經濟內容不同可分為資產類賬戶,負債類賬戶,所有者權益類賬戶,成本費用類賬戶,損益類賬戶

那麼什麼是會計要素?主要有6個方面:資產,負債,所有者權益,利潤,費用,收入。

        賬戶是有結構和內容的,賬戶分為左方,右方兩個方向,一個登記增加,另外一方登記減少。賬戶的內容包括了賬戶的名稱,記錄經濟業務的日期,所依據記賬憑證的編號,經濟業務摘要,借貸金額和餘額等。

        那麼如何設計一個賬戶呢?從賬戶的結構和內容分析,一個賬戶需要記錄賬戶變動的過程等,即借貸方向均需要進行記錄,這裡一般是通過賬戶流水來實現,即出入流水,同時,賬戶是記錄會計要素變動結果的,因此需要根據變動的最終結果進行記錄,即賬戶的餘額。

賬戶 = 賬戶流水 + 賬戶餘額

在具體實現中,系統對賬戶流水的操作和餘額的操作必須是一個事務,即入流水必然導致賬戶餘額的增加,出流水必然導致餘額的減少。

那麼有一個問題:借貸方向和賬戶流水的進出有什麼關係?很多人很容易,把賬戶流入,即增加部分記為借,而把賬戶流產,即減少部分記為貸,但其實是不嚴謹的,或者是錯誤的(下面將重點介紹)。

三,賬戶的基本內容和結構

在賬戶的核算中,賬戶一般簡化為“T”字賬的形式,即包括賬戶名稱,借方,貸方,發生額,借貸方餘額和賬戶餘額等。如下圖:


賬戶的內部對賬是:在一個指定的核算週期內,保證餘額和流水的一致性。

(如果具體實現是通過db的事務機制,則DB本身就可以保證兩者的一致性,如果不是,比如即流水,非同步落地餘額的情況,則需要按每天根據流水對餘額進行調整或者糾正)

賬戶的外部對賬是:保證賬戶操作的流水跟外部系統相關依賴流水的一致性。

四,      借貸複試記賬法

        所謂複試記賬法就是針對發生的每項經濟業務都要以相等金額在相互聯絡的兩個或者兩個以上有關賬戶中進行同時登記的記賬方法。而借貸記賬法是複試記賬法的一種,它是以“資產=負債+所有者權益”為依據,以“借“和”貸”為記賬符號,以“有借必有貸,借貸必須相等”為記賬規則的一種複試記賬方法。

       借貸記賬法的記賬符號就是“借”和“貸”,用來反映經濟業務增減變化的方向而已,本身沒有特別的意義,在實際的操作中,我們把賬戶的左方規定記為借方,右方規範記為貸方,在任何一筆經濟業務中,都必須同時登記相關賬戶的借方和貸方。

     我們知道,每個賬戶都有借方和貸方,用來記錄其對應經濟業務的增減變化情況,那麼哪一方登記增減,哪一方登記減少,則是要根據對應賬戶的經濟性質決定的,即賬戶相對會計主體來說,是屬於什麼型別的賬戶。

1,        資產類賬戶

資產類賬戶,資產的增加登記賬戶的借方,資產的減少登記在賬戶的貸方,期末有餘額,一般出現在借方。在一個會計期間,所有借方金額的累加為“借方本期發生額”,所有貸方金額的累加為“貸方本期發生額”。而資產賬戶的餘額=借方期初餘額+借方本期發生額-貸方本期發生額。

如,本人在招商銀行賬戶A存入1000元,那麼該如何記賬呢?首先,我們要分析本人在招行的這個賬戶的性質,由於這是本人儲存在招行的一筆資產,所以該賬戶對應我這個會計主體來說,是一個資產類賬戶,因此記賬的借貸方向需要按照資產類賬戶的要求來進行,即增加記為借,減少記為貸。根據分析,本人存入1000到賬戶A,記賬如下:

借:銀行存款  1000元  (資產類賬戶,銀行賬戶增加了1000元)

      貸: 庫存現金 1000元。(資產類賬戶,手中現金減少了1000元)

2,        負債類賬戶

負債類賬戶的記賬規則跟資產類相反,負債增加記為貸,負債減少記為借,期末如有餘額,一般在貸方,表明期末有債務實有額,負債類賬戶的餘額計算:

         貸方期末餘額=貸方期初餘額+貸方本期發生額-借方本期發生額。

3,        所有者權益類賬戶

所有者權益類賬戶的記賬規則跟負債類賬戶一致:所有者權益增加記為貸,減少記為借。

4,        費用成本類賬戶

企業在日常經營活動中會發生各種各樣的耗費,這些耗費在會計學上稱為成本費用,它們是收入的抵減專案,在抵銷收入之前,可以視為一種資產,因此成本費用類賬戶的記賬規則跟資產類一樣:增加記為借,減少或者轉銷記為貸,一般借方記錄的增加額都要通過貸方轉出,所有此類賬戶在期末轉銷後無餘額,如有餘額,出現在借方。

5,        收入類賬戶

    企業取得的收入最終會使得所有者權益增加,因此收入類賬戶的記賬方法跟所有者權益一致:增加記為貸,減少或者轉銷記為借,通常該賬戶期末無餘額(因為期末收入都會轉為所有者權益,如未分配利潤等)

         至此,一個賬戶的增加或者減少記為借還是記為貸,是跟該賬戶反映的經濟內容有關係,而不是簡單的增加就一定是借,減少就一定是貸,在實際的記賬處理中,我們首先需要根據會計主體對記賬的賬戶的經濟性質進行分析,然後按照不同賬戶的記賬規則進行處理即可。

五,      第三方支付賬戶體系介紹

       前面我們從會計學的角度分析了賬戶的概念,結構和借貸記賬法等內容,而這些基礎知識對我們第三方支付來說是否非常重要的,它是指導我們如何更好的設計第三方支付中非常重要的---賬戶體系。

第三方支付機構涉及的賬戶型別是否非常多的,筆者根據主要的場景做了分類,主要有如下幾類賬戶:

1,  使用者在各個銀行開通的賬戶。

       這個概念非常好理解,我們每個人在相關銀行開通的儲蓄卡,存摺,信用卡等等都是我們在銀行開通的賬戶,在實際的支付中,使用者銀行賬戶是資金的輸出方,通過銀行系統,在使用者授權的情況下把資金從使用者的銀行卡轉移到第三方支付在銀行開通的收款賬戶(見下面說明)

2,  第三方支付公司在各個銀行開通的賬戶。

       即第三方支付的銀行賬戶,比如支付寶在招商銀行設定的收款賬戶。那麼第三方支付公司為啥需要在各個合作銀行設定賬戶呢?其實道理非常簡單,第三方支付公司本身畢竟不是銀行,本身是無法直接接觸和管理資金的,真正的資金流是通過銀行系統進行的,使用者通過網銀或者快捷支付等支付後,使用者的資金是少了,那麼肯定有一個地方是多的,我們舉一個例子:小明用支付寶在某商城A買了一件衣服100元,用自己的銀行卡進行網上支付,假如小明的銀行卡是招商銀行的,並且支付寶和招商銀行有合作關係,當發生支付的時候,其實支付寶只做了兩個事情:

l  在使用者授權下,呼叫銀行介面把錢從使用者的銀行卡轉移到支付寶在招商銀行設定的賬戶上(該賬戶是支付寶專門接受使用者的付款資金的)---由於這步是隻發生在銀行系統之家的,是真實的資金流。

l  第1步成功後,支付寶會對商戶A記入一筆入賬:100元(商戶A會在支付寶申請一個商戶賬戶,類似支付寶在銀行申請一個賬戶一樣)

從會計學的角度分析,支付寶在招商銀行設定的賬戶對支付寶這個會計主體來說,是一筆資產(或者說是銀行欠支付寶的錢),該銀行賬戶是資產類賬戶,而另外一個方面,商戶A在支付寶設定的商戶賬戶對支付寶來說是一個負債類賬戶(因為這是欠商戶的錢,後續需要結算給到商戶),那麼上面的支付流程,會計記賬如下:

        借: 支付寶招行銀行賬戶  100元   (資產類賬戶,資產增加,記為借)

                貸:商戶A支付寶賬戶  100元  (負債類賬戶,負債增加,記為貸)

 

2,第三方支付自有賬戶體系

     這個比較複雜,類似銀行賬戶有對公賬戶和對私賬戶,第三方支付公司也有針對商戶的B賬戶和針對個人的C賬戶。請注意,第三方支付自有賬戶體系是獨立第三方支付在銀行申請的賬戶的,是自有的賬戶體系,完成資金在第三方支付體系的閉環和結算等,比如財付通使用者餘額,支付寶餘額,微信支付餘額等都是第三方支付賬戶to client的賬戶。

      個人賬戶,我們稱為c賬戶比較簡單,而商戶賬戶由於涉及到結算和提現等操作,按照不同的資金類別設定不同賬戶的設計原則,商戶賬戶一個商戶號其實對應兩個賬戶:b賬戶和c賬戶,b賬戶是商戶結算賬戶,用於交易的收款等,商戶本身無法直接操作,是第三方支付進行結算的賬戶,而商戶c賬戶則是商戶可以直接進行操作的賬戶,如可以進行提現,充值和支付等等。

3,   各個銀行在第三方支付公司設定的賬戶

         這個賬戶是一個總賬賬戶,一般用於記錄資金進入第三方賬戶體系或者資金逃出第三方賬戶體系的,它一般不記錄餘額,而只是記錄流水,方便跟各個銀行進行對賬。


六,      各種操作的資金流和記賬規則

1,        使用者通過銀行卡快捷支付進行充值100元。

資金流:資金從使用者銀行卡進入第三方支付在對應銀行的銀行賬戶,同時對對應的第三方c賬戶記入一筆充值入賬。

借: 第三方支付在銀行的賬戶   100元 (資產類賬戶)

      貸:某使用者在第三方支付的c賬戶  100元  (負債類賬戶)

這個需要重點分析,其實這步操作後,資金進入了第三方支付的自有賬戶體系中,使得自有賬戶體系的資金盤子增加了100元,在實際的設計中,為了能夠高效跟銀行進行對賬,每個銀行會在第三方支付設定一個對應的賬戶,我們成為銀行的第三方支付賬戶,比如招行在支付寶的賬戶,使用者通過招行卡支付充值後,除了銀行系統本身的記賬外,第三方支付會在該賬戶同步記錄一筆流水,使得所有通過招行進入自有賬戶體系的資金流都可以通過這個流水看到,我們理解為這個賬戶是一個總賬賬戶,各個使用者的c賬戶是一個分賬賬戶。

2,        使用者通過銀行卡快捷支付給商戶A支付100元

資金流:資金從使用者的銀行卡進入第三方支付在對應銀行的銀行賬戶,同時對對應的商戶A的B賬戶記入一筆支付入賬。

借:第三方支付在銀行的賬戶 100元  (資產類賬戶)

     貸:某商戶A的B賬戶       100元   (負債類賬戶)

3,        使用者通過第三方支付餘額賬戶提現100到自己的招行卡

資金流:第三方支付首先把該使用者餘額的100元先凍結,然後呼叫銀行介面,從自己在銀行的賬戶中轉賬100元到使用者的招行卡上,成功後,對該使用者的餘額凍結的100元進行解凍扣款。

借:某使用者在第三方支付的c賬戶  100元  (負債類賬戶)

     貸:第三方支付在銀行的賬戶 100元  (資產類賬戶)

可以看出,該步驟的記賬給第一部分的充值時相反的。

4,        自有賬戶體系的c2c轉賬

由於沒有涉及到使用者銀行卡的操作,該部分操作沒有涉及到真正的資金流變動,只是賬務在第三方支付公司自有賬戶體系的轉移而已,即從一個使用者的c賬戶轉移到另外一個c賬戶,由於c賬戶對第三方支付公司來說,都是負債類賬戶,因此記賬如下:

借: 轉出的c賬戶  100元 (負債類賬戶,轉出表示負債減少,記為借)

    貸:收款的c賬戶 100元 (負債類賬戶,轉入表示負債增加,記為貸)

5,        自有賬戶體系的b2c支付

跟4一樣,沒有涉及到銀行介面的呼叫,因此沒有發生真正的資金流的流動,賬戶只是在第三方支付公司的自有賬戶體系轉移而已,即從一個使用者的c賬戶轉移到另外一個商戶的B賬戶。

記賬如下:

借:支付的c賬戶 100元

      貸:收款的商戶B賬戶 100元。

綜上,第三方支付的賬戶體系還是相當比較簡單,一般是資產類賬戶和負債類賬戶比較多,會計處理上也比較簡單。