支付系統、賬戶系統有關模型
簡介:賬戶體系是支付系統的基礎,一個支付系統必須要有賬戶體系。因此賬戶體系的設計顯得尤為重要。
支付賬戶和登陸賬號:
兩個概念:支付賬戶和登陸賬號,這是屬於兩個不同業務的領域。
支付賬戶:用戶在支付系統中用於交易的所有者權益的憑證。
登陸賬號:用戶用於登錄系統的憑證和個人信息。
兩者的聯系:一個用戶可能會有多個登錄賬號,一個登錄賬號又可能會有多個支付賬戶。比如,用戶可以有零錢賬戶,儲值卡賬戶等各種賬戶。一般來說,一個支付賬戶不可能在多個登錄賬號中公用。
賬戶的設計需求:
在支付系統中,對於賬戶的設計可能從以下幾個方面考慮:
1、交易的需求:比如檢查賬戶是否被鎖定,賬戶余額是否足夠,賬戶是否有效等
2、記賬的需求:按照公司會計需求記錄賬戶上的所有行為,包括支出,充值和轉賬等
3、對賬的需求:包括政府渠道,商戶和個人的對賬需求,核對交易和賬戶余額是否正確
4、風控的需求:如反洗錢,反欺詐等,都需要依賴賬戶體系來提供核心數據
5、信用的需求:對用戶,資產,商戶等主題進行信用評估的時候,也需要依賴賬戶體系來提供核心數據
這五個需求設計的優先級分為支付,記賬,對賬,風控來進行。
交易與賬戶:
賬戶設計一般是從交易開始的,交易的實現必須要有賬戶的支持,交易是賬戶的基本組成元素,從支付系統的角度,交易的資金流的流向是從一個賬戶流向另一個賬戶,發起交易的一方,被稱為交易主體
個人也可以是一個機構。
資金會從主體所擁有的賬戶中流出,而接收交易的一方被稱為交易對手,他也可以是一個人也可以是一個機構。
而在電商系統中,交易會涉及到渠道。
由於電商本身並沒有清結算的資質,所有資金從交易主體到交易對手的賬戶的流動,在大部分的情況下,並沒有經過電商系統,而是由電商系統調用支付渠道的接口,由他來完成真正交易的過程。而在渠道完成交易的過程中,渠道是要收取渠道費的。
因此在電商系統中,一次交易會涉及到三個賬戶,交易主體賬戶,交易對手賬戶和交易渠道賬戶。
記賬和賬戶:
當用戶使用銀行卡來進行支付的時候,電商系統需要與銀行來進行對接,從用戶銀行卡所代表的賬戶上去扣除資金。對接了銀行
對於外部賬戶,支付系統只能記錄在本系統的交易明細和累計消費額。而無法得知賬戶的真正余額。因此有些電商系統會做零錢的做法,讓用戶充值到零錢,使用的時候直接從零錢中扣除資金。這就是賬戶系統所說的零錢賬號。所謂的零錢賬號,就是電商系統在本系統中設置的自己內部的賬號,所以也叫作內部賬號。可以知道賬戶的全部消費明細和余額。
除了零錢賬號還有儲值卡賬號,以及信用賬號。
問題:有沒有優惠賬戶,一次消費的儲值卡賬戶和可以充值的儲值卡賬戶?
收款賬戶和收單賬戶:
當電商要對接銀行的時候,電商會被要求開一個收款賬戶,當用戶通過這個銀行來進行支付的時候,錢就會自動轉到這個賬戶中。
對於第三方支付也是一樣的,收款賬戶會開設在銀行和第三方這邊,也就是渠道側,一般來說,渠道每天都可以提供這個賬戶的交易流水提供給電商進行對賬,這樣在電商這邊,渠道就稱為了一個收單機構。所以在
電商在這邊,建立這個收款賬戶對應的對賬用的收單賬號,用來記錄通過這個渠道進行的各項交易流水。
賬戶建模:
賬戶模型是和公司業務密切相關的。賬戶建模有三大核心模型:
1、實體模型
2、賬戶模型
3、交易模型-------》針對各個角色的賬戶流水,明細模型,用於支持對賬。
實體模型:
支付相關的實體模型會有如下的屬性:
1、用戶ID,一般直接映射到賬戶的id
2、是否允許執行支付
3、支付密碼
4、用於設置和重置密碼的手機號
5、用於設置和重置密碼的郵箱
6、用戶的安全級別,根據業務需求來設置
賬戶模型:
根據業務需要,可以設置多種賬戶模型,一般來說,電商系統中涉及到的賬戶模型有:
1、虛擬幣賬戶
2、代扣賬戶
3、零錢賬戶:電商的內部賬號,用戶商戶清算單位需要建立零錢賬戶
4、第三方支付賬戶:用於在第三方支付機構建立的賬戶
5、銀行卡賬戶:用戶的銀行卡信息,一個卡對應一個賬戶
6、結算賬戶:用於支持和第三方和銀行進行結算用的賬戶。第三方為每個商戶號建立一個結算賬戶;銀行需要為借記卡,貸記卡建立結算賬號(銀行卡直連的時候使用)
7、代扣代繳賬戶
賬戶模型有關的屬性:
賬戶號:也就是賬戶id,一般是系統自動生成的(這裏要事先約定好賬戶id生成的規則)-------》問題:賬戶id生成有什麽規則?
賬戶名稱:這裏的賬戶名稱是用戶自己設置
賬戶使用的貨幣類型:一張銀行卡會涉及多種幣種,實際在內部,也會為每個幣種建立一個獨立的賬戶。
會計科目代碼:
賬戶控制相關:
是否允許充值,是否允許提現,是否允許透支,是否允許支付,是否允許轉賬進入,是否允許轉賬轉出,是否有安全保障,是否凍結,是否激活
資金相關:
當前賬戶余額=可用余額+凍結余額
當前賬戶可用余額:
當前賬戶凍結余額:--------》凍結余額?銀行卡和第三方支付信息:
第三方實體id:
第三方賬號,銀行卡賬號和第三方支付的open_id
第三方的app_id
賬戶的失效日期,該賬戶什麽時候失效
註意:有些第三方信息是不能保存的,如用戶的賬號密碼,信用卡的CV號等,對敏感信息,密碼進行加密保存,有時候甚至保存在另一張表中,還可以增加校驗字段,在讀取數據的時候做校驗,一旦發現數據有問題,
關閉該賬號。
交易模型:
交易記錄,交易流水,賬戶流水----------》這三者的核心是交易流水
賬戶流水是從賬戶視角的交易流水。
交易模型對應的屬性:
流水號:每一筆交易的流水號都不一樣,需要根據業務需要詳細設計流水號,這個號往往也是對交易表做分表分庫的依據
交易記錄創建時間:
交易記錄最後修改時間:
會計科目代碼:
關聯的訂單號,由商戶提供:
訂單名稱,描述,關聯的地址信息等等
費用信息,包括:結算貨幣類型,原始費用,實際費用
交易主體信息:記錄主體id,類型,名字,賬號,賬號類型,使用的ip地址,手機號,平臺,通知郵箱,當前位置等。這些信息雖然從主體表中獲取,但考慮到主體表信息隨時被修改,所以這裏需要記錄詳細的各原始信息。
交易對手信息:記錄對手主體的id,類型,名字,賬號,賬號類型,手機號,平臺,通知郵箱等
交易渠道信息:記錄所使用的的交易渠道的主體id,渠道賬戶,渠道執行支付時間,渠道側返回的訂單號等。如果有錯誤發生,還需要記錄從渠道接收到的錯誤信息和錯誤碼
支付系統、賬戶系統有關模型