一張圖,搞懂“發(fā)票系統(tǒng)”

2 評(píng)論 7272 瀏覽 71 收藏 9 分鐘
🔗 B端产品经理需要更多地进行深入的用户访谈、调研、分析,而C端产品经理需要更多地快速的用户测试、反馈、迭代

很多場(chǎng)景下,都需要開發(fā)票。日常的我們所接觸都是作為需求方,那作為發(fā)票平臺(tái)方,我們?nèi)绾螌?shí)現(xiàn)對(duì)用戶的開票和發(fā)票提供呢?本文將會(huì)帶您了解“發(fā)票系統(tǒng)”,一起看看吧!

很多場(chǎng)景下,我們會(huì)要求對(duì)方開發(fā)票,住酒店時(shí),購買某種服務(wù)或者商品時(shí),用于后續(xù)的報(bào)稅或者報(bào)銷。

這是我們作為發(fā)票需求方,而如果我們作為平臺(tái)方,如何實(shí)現(xiàn)對(duì)用戶的開票和發(fā)票提供呢?比如你是一家外賣公司,要給平臺(tái)商家提供某項(xiàng)費(fèi)用的增值稅發(fā)票。

一、先認(rèn)清要開的“票”

廣義上去看,“票”的種類很多,不止是增值稅專票或者普票,我們可以將一種“憑證”都可以認(rèn)為是一種“票”,比如電子回單、消費(fèi)小票等等。

他們實(shí)現(xiàn)的底層邏輯和方法是類似,可以共用一個(gè)抽象模型。

在要實(shí)現(xiàn)自主開票之前,我們要先確定這是一個(gè)什么“票”。

這張票的樣子,也就是板式,票上需要展示的數(shù)據(jù),這些數(shù)據(jù)來自哪里,是業(yè)務(wù)系統(tǒng)里還是從用戶那采集得到。

如下圖這張?jiān)鲋刀惼胀òl(fā)票,其中的納稅人識(shí)別號(hào)就需要從用戶那里采集得到,在開通獲得發(fā)票以后,又可以得到發(fā)票代碼等數(shù)據(jù)。

因此,先分析你要實(shí)現(xiàn)的發(fā)票版式和數(shù)據(jù)參數(shù),以及數(shù)據(jù)獲取方式。

二、把握發(fā)票系統(tǒng)的框架

要實(shí)現(xiàn)一個(gè)開票系統(tǒng),怎么做,要先“心中有框架”。

先把大的邏輯和結(jié)構(gòu)搞清楚,再去分塊去實(shí)現(xiàn),從宏觀到微觀的過程,如下圖框架。

首先就是“數(shù)據(jù)準(zhǔn)備”。

要明確開的各個(gè)票種的源數(shù)據(jù)是什么,從哪里獲取,是賬務(wù)數(shù)據(jù)、賬單數(shù)據(jù)、還是稅單數(shù)據(jù)。

并且,該票種所需要的開票數(shù)據(jù)也不一定從一個(gè)地方就能完全獲得,可能是一個(gè)字段來自一個(gè)地方,比如稅號(hào)來自用戶中心,從客戶端采集的,而開票金額字段從賬務(wù)中心獲得。

因此,源數(shù)據(jù)是要“拼出來”。

然后就是開票的模式、發(fā)票的模版等基礎(chǔ)配置,不同的開票模式流程不同,例如你要開“消費(fèi)小票”那么就不需要發(fā)票服務(wù)商,完全可以自主閉環(huán)開出來,而要開正規(guī)的增值稅發(fā)票,就需要依賴外部服務(wù)商。

所以,發(fā)票模式跟支付模式類似,對(duì)私和對(duì)公有區(qū)別,快捷支付和網(wǎng)關(guān)支付也有區(qū)別。

接下來就是開票主流程,所有票種的開具都可以通過這個(gè)流程實(shí)現(xiàn),三大步:開票規(guī)則解析、開票數(shù)據(jù)封裝、提交開票申請(qǐng)。

其中提交開票申請(qǐng),類似提交支付申請(qǐng),可能不同國家、不同票種要提交給不同的發(fā)票服務(wù)商。

三、數(shù)據(jù)、狀態(tài)、能力、歷史

發(fā)票系統(tǒng)要重點(diǎn)想明白和管理好4個(gè)核心。

發(fā)票的數(shù)據(jù),就是最原始的發(fā)票單據(jù),可能每個(gè)商家每個(gè)結(jié)算周期一條數(shù)據(jù),這條數(shù)據(jù)記錄了開什么票、開票金額是多少、商家的稅號(hào)等信息。

開票的狀態(tài),每條數(shù)據(jù)的開票狀態(tài)是什么,是待開、開票中、沖銷了、還是已開票。

開票的能力,不同的票種或者接的不同服務(wù)商所需要的開票能力不同,首次開票、沖銷能力、重開能力、下載發(fā)票能力、開票調(diào)整能力,這些能力的接入和實(shí)現(xiàn)依賴實(shí)際的需求。

最后就是開票歷史,每一章開好的票以某種形式存儲(chǔ)在數(shù)據(jù)庫中,方便用戶或者后臺(tái)管理人員查看,pdf形式、xml形式或者是圖片形式。

四、選服務(wù)商、接所需能力

如果某票種需要接入發(fā)票服務(wù)商,那么就需選擇一個(gè)適合自己的服務(wù)商,不同國家、不同票種可能適合的服務(wù)商不同。

但是,無論什么服務(wù)商,其服務(wù)接入邏輯是類似的,提供的能力也是類似的。

這一點(diǎn)跟接入支付渠道商差不多。

無論是接入哪家開票服務(wù)商,其實(shí)現(xiàn)的邏輯都如下圖類似,下圖以Gosocket為例,而且這家服務(wù)商是全球性質(zhì)的,比如你接入了墨西哥這個(gè)國家,那么在另一個(gè)國家也有可能不需要重復(fù)接入,只需要修改幾個(gè)傳參、語種即可。

整個(gè)邏輯流程圖里要搞清楚這幾個(gè)主要問題。

開票的能力,圖中包含了“申請(qǐng)開票”“下載發(fā)票”“沖銷發(fā)票”三個(gè)主要能力。

然后就是通過開票結(jié)果對(duì)發(fā)票源數(shù)據(jù)的“開票狀態(tài)”的更新,開票成功則更新為已開票、開票失敗則保持“待開票”的狀態(tài),沖銷成功以后將“已開票”狀態(tài)更新為“待開票”。

針對(duì)不同的開票狀態(tài),可以進(jìn)行不同的操作,例如自動(dòng)開票、沖銷發(fā)票、手動(dòng)開票等。

然后就是下載獲得了發(fā)票以后,將發(fā)票進(jìn)行存儲(chǔ),提供給后臺(tái)和用戶查看和下載,或者郵件自動(dòng)發(fā)送給用戶。

比如我們?cè)诘蔚蜛pp內(nèi)選擇“開票”,勾選對(duì)應(yīng)訂單以后申請(qǐng)開票,就需要填寫一個(gè)收票“郵箱”。

該郵箱,就會(huì)存儲(chǔ)到發(fā)票系統(tǒng)的“用戶郵箱”中,用于向用戶主動(dòng)發(fā)送電子發(fā)票。

五、想好怎么給用戶

好了,通過上面的努力,我們終于可以實(shí)現(xiàn)自動(dòng)開票了。

最后一步就是想明白你要如何將發(fā)票提供給需要的用戶。

比較常見的就是發(fā)送用戶指定的郵箱。

同樣,對(duì)于商家來說也可以在其后臺(tái)提供發(fā)票自主下載的能力。

以上就是如何實(shí)現(xiàn)一個(gè)發(fā)票管理系統(tǒng)的方法論。

專欄作家

陳天宇宙,微信公眾號(hào):陳天宇宙,人人都是產(chǎn)品經(jīng)理專欄作家。多平臺(tái)支付領(lǐng)域?qū)谧髡撸曩Y深產(chǎn)品;專注為10萬支付產(chǎn)品經(jīng)理和支付機(jī)構(gòu)以及企業(yè)提供深度支付內(nèi)容和服務(wù)!

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

題圖來自 Unsplash,基于 CC0 協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 大佬,有時(shí)間一起溝通一下發(fā)票產(chǎn)品體系

    來自安徽 回復(fù)
  2. 非常體系化的介紹了“發(fā)票系統(tǒng)”

    來自浙江 回復(fù)
专题
16614人已学习16篇文章
对于很多软件工程师来说,工作内容都与界面设计有很大的关联。本专题的文章分享了界面设计方法。
专题
15708人已学习12篇文章
CDP,即客户数据平台,是企业用来集中管理和整合客户数据的工具。本专题的文章分享了什么是CDP和如何搭建CDP平台。
专题
13170人已学习12篇文章
本专题的文章分享了金融产品经理需要知道的金融基础知识和产品观。
专题
15317人已学习14篇文章
痛点是什么?为什么用户会有痛点?如何抓住用户痛点?优先解决哪些用户痛点?本专题的文章分享了以上的问题详解。
专题
12870人已学习14篇文章
在项目实际推进过程中,不加控制的需求变更往往给项目带来沉重的负担和无法预料的风险。本专题的文章分享了如何做好需求变更。