以在線教育公司為例,如何做一款財(cái)務(wù)對(duì)賬產(chǎn)品?

14 評(píng)論 6625 瀏覽 95 收藏 14 分鐘

筆者以一個(gè)虛構(gòu)的在線教育公司的對(duì)賬業(yè)務(wù)為背景,分享了怎么做對(duì)賬產(chǎn)品以及對(duì)應(yīng)的設(shè)計(jì)要點(diǎn)。

財(cái)務(wù)同學(xué)每月月初都需要核對(duì)上個(gè)自然月微信、支付寶等金融收款賬戶的交易流水和公司業(yè)務(wù)系統(tǒng)交易訂單的一致性,基于一致的前提下才能做賬。隨著業(yè)務(wù)的爆發(fā)性地增長,業(yè)務(wù)訂單量太大,人工對(duì)賬過于耗時(shí)和繁瑣,就到了需要通過產(chǎn)品方案來解決,實(shí)現(xiàn)自動(dòng)化對(duì)賬。

適讀對(duì)象

本文是四勾作為一名產(chǎn)品,通過產(chǎn)品方案來實(shí)現(xiàn)自動(dòng)化對(duì)賬的產(chǎn)品實(shí)踐,比較適合對(duì)對(duì)賬財(cái)務(wù)專業(yè)知識(shí)和對(duì)賬工作流有一定認(rèn)知,但就是不知道如何下手的產(chǎn)品經(jīng)理。

如果你還不清楚為什么要對(duì)賬,對(duì)賬是什么和什么對(duì)等一些財(cái)務(wù)方面的專業(yè)知識(shí)的話,建議先閱讀文章底部的「參考文章」惡補(bǔ)之后,再回來閱讀正文。

一、背景介紹

為了便于理解和深入業(yè)務(wù)場(chǎng)景,四勾虛設(shè)一個(gè)場(chǎng)景,帶著大家逐漸深入。

1. 虛擬場(chǎng)景

海豚教育是一家 K12 在線教育公司,主要服務(wù)的對(duì)象是小學(xué)和初中階段的學(xué)生,有數(shù)學(xué)、英語、語文等學(xué)科,主要的業(yè)務(wù)交易包括 2 部分:

  • 其一,購買課程的資金流入,分為體驗(yàn)課和正式課,體驗(yàn)課單價(jià) 30 – 50;正式課是一年的課程,課單價(jià) 6k – 8k;
  • 其二,課程退費(fèi)的資金流出。

資金的流入和流出都是通過微信或支付寶來進(jìn)行交易,現(xiàn)在交易訂單量巨大,需要通過產(chǎn)品來實(shí)現(xiàn)將微信和支付寶的每日交易數(shù)據(jù)和海豚自己的業(yè)務(wù)交易數(shù)據(jù)對(duì)賬。

微信和支付寶我們都叫做金融賬戶。

2. 對(duì)賬的價(jià)值

比較容易理解的是實(shí)際的收支和業(yè)務(wù)訂單的收支一致,保證做賬數(shù)據(jù)的正確性。其實(shí)有更深層次的價(jià)值,反向校驗(yàn)業(yè)務(wù)數(shù)據(jù)的準(zhǔn)確性,發(fā)現(xiàn)業(yè)務(wù)數(shù)據(jù)的問題,及時(shí)修正;規(guī)避財(cái)務(wù)風(fēng)險(xiǎn),進(jìn)而更好的服務(wù)用戶。

舉個(gè)栗子,微信有一筆 50 元的退費(fèi)記錄,業(yè)務(wù)訂單里沒有,賬無法對(duì)上。財(cái)務(wù)發(fā)現(xiàn)問題之后會(huì)聯(lián)系孩子的班主任老師,在業(yè)務(wù)系統(tǒng)一查發(fā)現(xiàn)他的退費(fèi)申請(qǐng)由于超時(shí)過期,退費(fèi)申請(qǐng)自動(dòng)關(guān)閉了。發(fā)現(xiàn)問題后需要采取措施,補(bǔ)退費(fèi)記錄,對(duì)賬號(hào)做停課處理。

3. 設(shè)計(jì)思路

  • 其一,每個(gè)金融賬戶分開獨(dú)立對(duì)賬,指微信和支付寶
  • 其二,以金融賬戶數(shù)據(jù)為參照物,拿海豚業(yè)務(wù)訂單數(shù)據(jù)往上對(duì)齊
  • 其三,對(duì)賬不區(qū)分學(xué)科,學(xué)科是對(duì)賬完畢之后用來出財(cái)務(wù)餅狀圖的

二、對(duì)賬工作流

自動(dòng)對(duì)賬是按照每日對(duì)賬,當(dāng)天拉取前一日的微信和支付寶對(duì)賬單,和海豚的前一日的業(yè)務(wù)訂單進(jìn)行自動(dòng)化匹配,然后做出正常或異常的標(biāo)記。針對(duì)標(biāo)記異常的,再人工跟進(jìn)。

對(duì)賬工作流分為 4 個(gè)步驟,每個(gè)步驟有具體的分工,全景圖如下。

對(duì)賬工作流全景圖

1. 賬單下載

賬單下載更多的是技術(shù)層面的實(shí)現(xiàn),這里不做展開,涉及到如下 2 個(gè) API。

微信是當(dāng)日上午 10 點(diǎn)出前一日的對(duì)賬單,所以我們需要 10 點(diǎn)后拉取。

支付寶是當(dāng)日上午 9 點(diǎn)出前一日的對(duì)賬單,所以我們需要 9 點(diǎn)后拉取。

微信下載對(duì)賬單 API:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_6

支付寶下載對(duì)賬單 API:https://docs.open.alipay.com/204/106262/

2. 數(shù)據(jù)準(zhǔn)備

數(shù)據(jù)分為 3 個(gè)部分,每個(gè)金融賬戶各自需要 1 份數(shù)據(jù),我們這里叫做「微信對(duì)賬數(shù)據(jù)」和「支付寶對(duì)賬數(shù)據(jù)」。另外,業(yè)務(wù)系統(tǒng)的訂單數(shù)據(jù),我們叫做「海豚對(duì)賬數(shù)據(jù)」。

1)金融對(duì)賬數(shù)據(jù)

微信和支付寶的邏輯一樣,下面以微信為例:

整理后的微信對(duì)賬數(shù)據(jù)

交易類型,照搬微信對(duì)賬單上的,不做修改;

海豚訂單,是微信里的「商戶訂單號(hào)」,便于理解,四勾有意改了個(gè)更直觀的名字;

金融賬戶訂單,是微信的微信訂單號(hào)。

2)海豚對(duì)賬數(shù)據(jù)

每天凌晨 2 點(diǎn)拉取前一日的海豚業(yè)務(wù)訂單,包括購課付款成功和退費(fèi)成功的交易訂單,只拉取成功的訂單,忽略支付中或退費(fèi)中的交易未結(jié)束的部分。

同時(shí),整理完的對(duì)賬數(shù)據(jù)我們需要單獨(dú)存儲(chǔ),出于 2 點(diǎn)考慮:

  • 其一,業(yè)務(wù)訂單的修改不會(huì)影響我們的對(duì)賬數(shù)據(jù);
  • 其二,對(duì)賬完畢后我們會(huì)基于對(duì)賬數(shù)據(jù)計(jì)算各種各樣的財(cái)務(wù)報(bào)表,要確保數(shù)據(jù)源的一致性。

如下圖所示,保留 userId、課程名稱和課程編號(hào),便于以后按照課程欄目的財(cái)務(wù)統(tǒng)計(jì)。

整理后的海豚對(duì)賬數(shù)據(jù)

3. 對(duì)賬

1)單筆訂單的對(duì)賬狀態(tài)

正常:系統(tǒng)自動(dòng)對(duì)平的

異常未處理:系統(tǒng)未自動(dòng)對(duì)平的會(huì)標(biāo)記成異常未處理

異常已處理:人工處理掉異常,并且人工進(jìn)行海豚對(duì)賬數(shù)據(jù)和金融賬戶對(duì)賬數(shù)據(jù)關(guān)聯(lián)上

異常已掛起:

  • 就是暫時(shí)忽略,以后再說
  • 以后可以對(duì)已掛起的數(shù)據(jù)再次人工處理成異常已處理

單筆訂單對(duì)賬狀態(tài)的流轉(zhuǎn)

2)自動(dòng)對(duì)賬

微信自動(dòng)對(duì)賬完的數(shù)據(jù)狀態(tài)

舉個(gè)栗子:今天是 2019-12-26,我們對(duì)昨天 2019-12-25「微信」的對(duì)賬數(shù)據(jù)。上午 10 點(diǎn)所有金融賬戶數(shù)據(jù)準(zhǔn)備完畢后,立馬執(zhí)行自動(dòng)對(duì)賬。當(dāng)然對(duì)完微信之后會(huì)再對(duì)「支付寶」。

Q1:左右兩邊的數(shù)據(jù)來源?

左邊是海豚昨天的訂單里面,收款和退款的金融賬戶是微信的;

右邊的是微信昨天的全量交易對(duì)賬數(shù)據(jù)。

Q2:如何自動(dòng)對(duì)賬?

第 1 步,右邊的數(shù)據(jù)按照交易時(shí)間順序排列,并展示出來(此時(shí),左邊全部為空);

第 2 步,針對(duì)右邊每一條數(shù)據(jù),拿「海豚訂單」去海豚對(duì)賬數(shù)據(jù)里面查詢,同時(shí)滿足下面條件就自動(dòng)標(biāo)記成「正?!梗?/p>

  • 其一,能查詢到記錄(只去海豚對(duì)賬數(shù)據(jù)的 25 號(hào)數(shù)據(jù)里面查)
  • 其二,金額一樣

第 3 步,將第 2 步中查到的海豚對(duì)賬數(shù)據(jù)展示在對(duì)應(yīng)金融數(shù)據(jù)的左側(cè),并且將狀態(tài)標(biāo)記成「正?!?/p>

第 4 步,將金融對(duì)賬數(shù)據(jù)沒有標(biāo)記成正常的其它所有的行,都標(biāo)記成「異常未處理」(此時(shí),這些數(shù)據(jù)的左側(cè)都是空白)

第 5 步,將海豚對(duì)賬數(shù)據(jù)沒有被標(biāo)記正常的其它所有數(shù)據(jù),按照交易時(shí)間順序插入,都標(biāo)記成異常未處理(此時(shí),這些海豚數(shù)據(jù)的右側(cè)全部是空白)

自動(dòng)對(duì)賬包括上面的 5 步,自動(dòng)對(duì)賬結(jié)束會(huì)出現(xiàn):

  • 其一,狀態(tài)只有 2 種,正常和異常未處理;
  • 其二,異常未處理的,要么右邊空白,要么左邊空白

3)滾動(dòng)對(duì)賬

舉個(gè)栗子:一筆支付,微信 23:59:59 收到錢,回調(diào)海豚服務(wù)器時(shí)已經(jīng)跨天 00:00:02,這樣在自動(dòng)對(duì)賬時(shí)會(huì)被標(biāo)記成異常未處理。

出現(xiàn)上面的情況是由于遭遇日切,滾動(dòng)對(duì)賬就是專門來處理這種 case 的。

滾動(dòng)對(duì)賬前后的狀態(tài)變化

上下文:

24 號(hào)所有對(duì)賬結(jié)束后,海豚和微信各有 1 條異常未處理;

25 號(hào)自動(dòng)對(duì)賬結(jié)束后,海豚有 1 條異常未處理,微信有 2 條;

現(xiàn)在將要執(zhí)行 25 號(hào)的滾動(dòng)對(duì)賬

Q:如何滾動(dòng)對(duì)賬?

第 1 步,拿 24 號(hào)微信異常的數(shù)據(jù),去 25 號(hào)海豚的數(shù)據(jù)查,海豚訂單號(hào)一致、金額一致,就意味匹配成功,將兩者關(guān)聯(lián)上,并同時(shí)標(biāo)記為異常已處理;

第 2 步,反過來,拿 25 號(hào)微信異常去查 24 號(hào)海豚數(shù)據(jù)。

處理完上面 2 步之后,就如上圖下半部分所示。

4. 差錯(cuò)處理

差錯(cuò)處理分為 2 種,一種是能人工匹配上,處理成異常已處理;另一種是怎么也匹配不上,處理成異常已掛起。

1)處理成異常已處理

通過線下人工查明原因,找到匹配的兩邊的訂單號(hào),然后上系統(tǒng)進(jìn)行人工關(guān)聯(lián)。

將異常處理成異常已處理

2)處理成異常已掛起

將異常處理成異常已掛起

處理異常之后,對(duì)賬狀態(tài)發(fā)生變化,就如下所示:

處理完部分異常后的對(duì)賬狀態(tài)

三、產(chǎn)品實(shí)現(xiàn)

1. 頁面信息流

2. 對(duì)賬明細(xì)-全部

舉個(gè)栗子:要進(jìn)行 2019-12-14 到 31 號(hào)對(duì)賬,如何操作:

對(duì)賬時(shí)間段:選擇 2019-12-14 ~ 2019-12-31

對(duì)賬周期,如果選擇周,下面就按照自然周拆分,顯示 4 行,如上圖所示;如果按照日,下面顯示 31 – 14 + 1 = 18 行。

3. 對(duì)賬明細(xì)-微信

點(diǎn)擊上圖微信下面的最后一行,顯示如下界面。點(diǎn)擊下圖「上一周期」,顯示上一個(gè)自然周的對(duì)賬。

Q:何為「未平賬」,何為「已平賬」?

  • 對(duì)賬狀態(tài)中,只要有異常未處理,稱為未平賬;
  • 沒有異常未處理的,稱為已平賬,包括正常、異常已處理和異常已掛起。

參考文章

1. 詳細(xì)解析「財(cái)務(wù)對(duì)賬」的秘密https://zhuanlan.zhihu.com/p/42289649

2. 財(cái)務(wù)對(duì)賬系統(tǒng)設(shè)計(jì)

https://juejin.im/post/5b1c76f4e51d450688135cfd

3. 聊聊對(duì)賬系統(tǒng)的設(shè)計(jì)方案

https://juejin.im/post/5c485cd8f265da61327fa12f

4. 支付對(duì)賬系統(tǒng)怎么設(shè)計(jì)?

https://mp.weixin.qq.com/s/SOpwMsVB5wNkwMZdKKMkwg

5. 從0開始學(xué)習(xí)搭建支付系統(tǒng)——核算對(duì)賬核心

https://zhuanlan.zhihu.com/p/45492985

 

本文由 @四勾 4J 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自u(píng)nsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 大家有不明確的或者有疑問的,歡迎加我微信詳聊:vincent4j

    來自北京 回復(fù)
  2. 看了您的文章很有收獲,可以加微信進(jìn)一步溝通嗎,我的微信號(hào)15933556182,期待您的回復(fù)呀~

    來自北京 回復(fù)
    1. 可以加我微信詳聊:vincent4j

      來自北京 回復(fù)
  3. 請(qǐng)問掛起操作的目的是什么?對(duì)于掛起或者未處理的異常,都會(huì)參與到下一次的滾動(dòng)對(duì)賬嗎?

    來自廣東 回復(fù)
    1. 掛起就是「來源于自己商城或平臺(tái)之外」的收入,比如說我們測(cè)試環(huán)境來的訂單,再比如說通過小鵝通賣課程自動(dòng)轉(zhuǎn)到微信商戶里的。
      掛起的是滾動(dòng)對(duì)賬完畢之后,操作者確認(rèn)是「來源于自己商城或平臺(tái)之外」的收入,掛起操作在滾動(dòng)對(duì)賬之后。
      未處理的異常,也是在滾動(dòng)對(duì)賬之后,就是滾動(dòng)對(duì)賬都對(duì)不平的。
      如果還有疑問,直接加 vx vincent4j

      來自北京 回復(fù)
    2. 非常感謝解答!

      來自廣東 回復(fù)
  4. 針對(duì)掛起的付款金額,會(huì)統(tǒng)計(jì)在應(yīng)收金額里面嗎?

    來自廣東 回復(fù)
    1. 會(huì),那也是收入的一部分

      來自北京 回復(fù)
    2. 但是在統(tǒng)計(jì)收入展示的時(shí)候會(huì)分成多列:所有收入金額,其中掛起金額,其中異常未處理金額。

      來自北京 回復(fù)
  5. 寫的不錯(cuò),很清晰啦

    回復(fù)
  6. 這種完全是通過第三方支付訂單號(hào)去對(duì)賬的么?有沒有一種可能,就是第三方支付訂單號(hào)匹配上然后金額不匹配,假設(shè)海豚系統(tǒng)可以修改金額,那么修改完之后如何下一步操作呢?還是沿用原有的人工處理異常流程么?如果采用,那么對(duì)賬的效率問題有沒有考慮過?
    或者還有沒一種手工單的可能,那么這部分怎么對(duì)呢?
    (這是暫時(shí)想到這么多問題,不知道實(shí)際有沒這個(gè)問題)

    來自江蘇 回復(fù)
    1. 問題 1,金額對(duì)不上的情況,需要通過線下理清楚問題出在哪方是海豚方,還是微信方;如果是海豚方,修正訂單數(shù)據(jù);如果是微信方,對(duì)付款人多退少補(bǔ);然后再出發(fā)再次對(duì)賬。
      問題 2:手工單也是需要導(dǎo)入業(yè)務(wù)系統(tǒng)的

      來自北京 回復(fù)
  7. 有點(diǎn)混亂,表示沒看懂

    來自重慶 回復(fù)
    1. 可以具體說說,或者私聊我

      來自北京 回復(fù)