第三方支付架構設計之—賬戶體系微信
一, 什麼是第三方支付?網絡
什麼是第三方支付?相信不少人對這個名字很熟悉,不論是從各類媒體等都常常聽到,能夠說是耳熟能熟。但,若是非得給這個名詞總結出一個概念,卻發現很難準確和全面的表述清楚。不過關係不大,咱們沒法給出一個很準確的概念的時候,咱們就列舉一下實際生活中咱們常用第三方支付的例子:支付寶,財付通,微信支付等等,這些就是咱們國內目前在第三方支付市場中比較有影響力的第三方支付了。架構
搜索一下百度,所謂第三方支付,就是一些和產品所在國家以及國外各大銀行簽約、並具有必定實力和信譽保障的第三方獨立機構提供的交易支持平臺。異步
在經過第三方支付平臺的交易中,買方選購商品後,使用第三方平臺提供的帳戶進行貨款支付,由第三方通知賣家貨款到達、進行發貨;買方檢驗物品後,就能夠通知付款給賣家,第三方再將款項轉至賣家帳戶。微信支付
從這個概念中,有幾個關鍵點:.net
1, 須要跟各個銀行簽約,那麼問題是第三方支付跟銀行的關係是什麼?架構設計
2, 用戶經過第三方支付平臺進行支付,那麼資金是如何進入第三方支付平臺的?設計
3, 商戶經過接入第三方支付平臺進行收款,那麼資金最終又是如何結算給到商戶的?blog
所以,咱們要充分理解第三方支付平臺,得從用戶,支付平臺,商戶,固然還有背後的銀行和監管機構等進行全面分析,只有充分理解這些關係,才能對第三方支付的帳戶體系有充分的理解和掌握,從而充分理解支付中的資金流。接口
咱們知道,隨着電子商務在中國的迅速崛起,電子商務必需要解決幾個很是關鍵的問題,那就是:信息流,資金流和物流,信息流通常是經過電子商務平臺進行解決,包括用戶信息,商品,商戶和訂單等,而資金流,即支付和結算等相關方面通常是經過第三方支付平臺進行解決,第三方支付植入到電商平臺中,幫助電商平臺解決資金在用戶和商戶之間的流轉,甚至在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元。
綜上,第三方支付的帳戶體系仍是至關比較簡單,通常是資產類帳戶和負債類帳戶比較多,會計處理上也比較簡單。
注:本文由他人撰寫,轉載此處爲方便查看。原博地址見