交易履約之結算平臺實踐

来源:https://www.cnblogs.com/jingdongkeji/archive/2023/10/10/17754088.html
-Advertisement-
Play Games

本文從系統建設的背景、設計細節、已支撐案例及適用業務場景多個層面進行詳細闡述。讀者可以關註文中所講的系統實踐過程,進而對結算領域系統設計能力提升,具有一定的參考價值。 ...


導讀

京東科技業務在快速發展的同時,產生了眾多線上化資金結算的需求。傳統的線下資金結算模式有著人力成本高、耗時長、多方溝通協調成本高、結算準確率低等固有缺點,且無法滿足“風法財審”對於資金流程的管控要求,在此背景下金道結算平臺孕育而生。本文從系統建設的背景、設計細節、已支撐案例及適用業務場景多個層面進行詳細闡述。讀者可以關註文中所講的系統實踐過程,進而對結算領域系統設計能力提升,具有一定的參考價值。

一、概述

1.1 背景

業務在快速發展的同時,產生了眾多線上化資金結算的需求。傳統的線下資金結算模式有著人力成本高、耗時長、多方溝通協調成本高、結算準確率低等固有缺點,且無法滿足“風法財審”對於資金流程的管控要求。金道結算平臺應運而生,專註於內部中心化流量場外的、通過外部場或搭建撮合平臺進行獲客、轉化的場景,支撐業務方面向客戶、合作伙伴、經銷商、供應商等多利益相關方,實現快速、專業、高效、準確的線上化計費結算解決方案提供和能力支持。金道結算平臺對接各垂直業務系統,實時同步業務的交易數據,並經過標準的結算流程(數據標準化預處理,清分,計費,分攤,結算單生成、運營確認等),最終通過財務渠道或其他支付渠道完成資金結算,有效降低了各業務系統結算成本的投入,提升業務資金流轉的健康度,為業務的快速增長賦能。

1.2 痛點

業務系統在開展業務時,以當前線下處理的方式,普遍存在以下痛點:

計算難:計算規則複雜,數據量大,人工難以處理;

響應慢:現有業務變化快和新增業務速度快,人工效率較低,難以快速響應新資金結算模式;

風險高:人工計費、核對、結算數據風險高且不合規,難以溯源,操作風險高;

運營難:基礎數據不完善,線下無法多維度分析,無法精準管理業務成本,及時調整策略;

成本大:人工結算的方式,投入的時間和資源成本高。

1.3 定位

金道結算平臺深耕業務場景,打通平臺介面,支持跨平臺結算,是業財一體化的橋梁,為平臺型交易及全域營銷賦能。

圖1 平臺定位

1.4 優勢

金道平臺的建設,在解決業務痛點基礎上,平臺優勢能夠從幾個層面體現:

1. 計費準確:支持大數據量計費,準確性達99.99%;

2. 結算快速:靈活支持按日或月等維度結算,縮短結算賬期,實現資金快速收付;

3. 運營精細:支持業務精細化運營,助力業務發展;

4. 成本降低:提高運營效率,節省成本。

二、系統架構介紹

2.1 名詞解釋

名詞 解釋
清分 清分是在清算前對數據標準化處理階段。在本文中,清分指的是對交易明細數據的核對、識別、調整及打標操作。
清算 清算是標準化數據的計算及核對過程,本文清算主要完成標準化數據的核對、計費及分攤處理。
結算 結算是彙總賬單,並完成資金最終轉移的過程。本文中的結算指的是對清算明細數據,以不同的維度生成結算單並確認,最終通過財務系統完成收付款的整個過程。
計費 本文中指:單據數據按一定計算規則,生成的結果金額及過程金額。
分攤 本文中指:費用存在多個承擔方,在清算過程中,會把計費的結果金額,再次按分攤的規則劃分到各方。
累額 本文中指:累額服務於分攤動作,具體過程 為分攤規則中配置了每個承擔方最大的承擔上限,那麼在計費後需要分攤時,需要參考承擔方已累加金額是否到了上限,如果到了上限,則此方不進行分攤金額,否則正常累加本次金額。
沖正 本文中指:同一單據重新計費、分攤時,需要把此單據在原累加總額值減去,再累加上本次金額。
重置 本文中指:順序清算場景時,業務線需要在歷史的某個單據向後重新清算時,累額中需要把總額回退到此單據清算時累加的總額快照,並標識累額流水中哪些是效數據。

表1 名詞解釋

2.2 服務域設計

圖2 服務域劃分

平臺基於DDD思想,劃分清分域、清算域、結算域及報表域四個大域,每個子域又依次劃分了自己的子域。

2.3 整體架構圖

圖3 整體架構圖

說明:

1. 金道平臺從數據處理流向上,自上而下劃為分數據源、清分、清算、結算及下游,從使用群體上分為零售客戶及科技客戶。

2. 業務數據通過實時或離線兩種方式接入平臺。在清分中判別數據歸屬清分類型(通用流程或個性化流程),而進入不同的清分處理流程。清分域主要是按一定的規則對原始數據進行核對、識別、調整及打標動作,為清算做好數據標準化。

3. 當清分標準化數據後,會推送結果數據到清算域,清算按模型配置的清算規則,通過流程式控制制進入計費、分攤、累額等不同的組合處理(譬如:只計費、先計費後分攤、只分攤、先分攤後計費等),以及會補全結算戶、合同及匯率數據,數據落到清算明細表。

4. 結算模型達到結算周期條件時,會產生一個結算任務。結算任務處理時,會從清算表中按條件獲取待結算明細,然後按結算維度彙總,各自產生結算單信息。結算單自動按預定審批流程完成確認,最終推送到財務渠道(渠道當前有:科技財務、預存款賬戶、pop核算等),由財務渠道系統完成收付款。

2.4 典型問題技術設計

2.4.1 分片任務處理組件

平臺採用cds實現分庫分表存儲數據,通過DTS把數據同步到ES,併進行報表明細顯示。在整個結算流程中,存在眾多需要聚合表數據處理操作(譬如:單據預處理、清算預處理、生成結算單,條件拉取條件數據等),因為本平臺是與資金結算相關,金額必須絕對準確,所以未採用ES作為可信的聚合處理源。在前期公司調研相關產品後,未找到基於分庫分表有高效的聚合工具,所以特研發以下“分片任務處理組件”:

圖4 分片任務處理組件

此組件提供抽象的類shardingTask,預定好3個核心動作:split(如何分片)、do(分片數據如何處理)、merge(最終數據如何聚合)。

核心處理過程為:先統一抽象批量處理邏輯,把批量數據分片發送 MQ 並落庫。多節點多線程進行消費,消費完成後,對資料庫 MQ 記錄的狀態進行修改。每個分片處理完後,勻檢查該任務下的消息是否全部處理完成,如果完成後,最後執行合併邏輯,那麼此時我們想要的最終結果就出來了。

2.4.2 順序清算

背景

某些業務系統要求以業務發生的流水,按順序做計算、分攤及累額,為瞭解決這個場景,特設計以下通用的處理流程。

實現過程

第一步:數據接入在中間表中,按業務時間排序,然後打上唯一流水號(流水號自增特點):

圖5 打標流水號

第二步:業務人員或系統自動處理單據,進行清算時,會觸發條件 ,進入以下預清算處理流程:

圖6 預清算處理流程

原理:

不需要按順序處理的單據數據,直接發送了待清算MQ主題 中,需要按順序清算單據,進入主流程。

挑戰:

1. 分片存儲情況下業務數據明細百萬級排序;

2. 順序處理如何保證處理效率;

3. 順序清算異常情況,如何斷點繼續處理。

實現核心點:

原始快照表打標順序流水號,利用分片任務組件,拉取數據後放在zset中進行排序,全部放入後,觸發順序清算流程。為應對大促銷日,可以在業務能容忍的範圍中,開放併發清算(併發數據之間不保證順序),要成功整體成功,要失敗整體失敗。

2.4.3累額重置

背景

按順序計費、分攤及累額場景,當業務人員需要回退到歷史某個時間的單據重新順序清算時,就需要從累額明細中重置到將要執行單據的位點(也就是累加的總額回退回去,併在流水中標識出哪些是無效數據)。

實現原理

圖7 累額重置實現原理

三、系統功能介紹

3.1 結算流程

圖8 結算流程

整個流程主要分為 4 個步驟:

1. 出具結算方案:每當有新業務場景接入,需由產品同學調研業務運營同學以瞭解業務場景,並出具專業的線上化結算解決方案,輔助業務系統備齊結算所需數據來源,並輔助業務數據同學加工結算數據表。

2. 結算模型配置:依據結算解決方案,在金道結算系統完成結算模型的基本信息配置以及單據處理、清算處理、結算處理、下游處理等環節的規則配置。

3. 結算任務處理:業務交易發生推送到結算平臺,然後經過清分流程處理、清算流程處理、結算單生成,如果有對賬確認流程配置,則會推送賬單由客戶進行賬單確認,發票暫由運營人員線下開具(後續會支持)。

4. 結算完成:等確認完賬單後,賬單會推送到財務進行收付款處理,財務的處理結算會通知到結算平臺。最終賬單信息可以由結算平臺提供歸檔及檢索。

3.2 主要配置

3.2.1結算模型

1. 基本信息

圖9 基本信息

2. 規則信息

圖10 規則信息

結算模型是本平臺核心配置,內容涵蓋基本信息、結算周期、單據處理、清算處理、結算處理及下游配置,運營人員可以通過引導一站式配置好整個所需功能。

3.2.2 計費模型

1. 計費規則

圖11 計費規則

對外提供計費服務,支持不同產品的計費模型和計費規則,形成計費規則引擎,實現計費規則和模型的可配置化,可支持靈活多變的計費場景。

2.分攤規則

圖12 分攤規則

本平臺支持基於預算的分攤配置能力,適合成本分攤型結算。目前我們支持分攤方式有按比例、按順序及按固定金額,支持兩級分攤,具備了大部分業務應用場景支撐能力。

四、業務支持案例

目前金道結算平臺已賦能了 微電佣金、白條息費成本、內容平臺創作者佣金、支付營銷券計收等 業務的線上化結算場景,日均處理訂單量達5000萬+,日均有效結算金額達1300萬+,有力支撐了業務快速發展。

4.1 微電業務

合作案例:為微電業務解決職場、坐席銷售金融產品而產生的資金結算問題,包括佣金、業績考核、企微加粉費和電話使用費等。

業務場景:微電業務售賣的金條、白條、基金、養老保障、小金保、股票、延保、CPA等。

圖13 微電業務

4.2 白條業務

合作案例:為白條與商城解決商城、科技、供應商、POP商家聯合營銷而產生的白條營銷費用收取問題。

業務場景:收取商城、供應商、POP商家的白條營銷費用。

圖14 白條業務

4.3 支付業務

合作案例:為支付解決外部機構採購優惠券,而產生的支付營銷費用收取問題.

業務場景:收取外部機構的支付營銷費。

圖15 支付業務

五、總結

針對目前業務場景、商業模式進行調研分析,主要有四種結算模式:分傭結算業績考核結算技術服務結算商品營銷結算

4種模式覆蓋目前所有場景,隨著接入業務場景的擴展,模式可再增加。

作者:京東科技 張學君

來源:京東雲開發者社區 轉載請註明來源


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 2023_10_10_MYSQL_DAY_02_筆記 #在 FROM 子句中使用子查詢 SELECT a.ename, a.sal, a.deptno, b.salavg FROM emp a, (SELECT deptno, AVG(sal) salavg FROM emp GROUP BY de ...
  • 如今,大規模、高時效、智能化數據處理已是“剛需”,企業需要更強大的數據平臺,來應對數據查詢、數據處理、數據挖掘、數據展示以及多種計算模型並行的挑戰,湖倉一體方案應運而生。 《實時湖倉實踐五講》是袋鼠雲打造的系列直播活動,將圍繞實時湖倉的建設趨勢和通用問題,邀請奮戰於企業數字化一線的核心產品&技術專家 ...
  • PostgreSQL 教程 ​ — — — — —— 參考: 菜鳥教程 ORDBMS 術語 在我們開始學習 PostgreSQL 資料庫前,讓我們先瞭解下 ORDBMS 的一些術語: 資料庫: 資料庫是一些關聯表的集合。 數據表: 表是數據的矩陣。在一個資料庫中的表看起來像一個簡單的電子錶格。 列: ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 在ElementUI的世界中,不僅有基礎的組件和功能,還有一些讓你眼前一亮、*得不能再*的高級技巧和竅門。本文將揭示這些技巧,讓你在前端開發的舞臺上獨領風騷。無論你是一個勇敢的創新者還是一個喜歡調皮搗蛋的開發者,這些技巧都將讓你的Elem ...
  • 之前在開發一個管理頁面,功能有,編輯時只有一行可以編輯,刪除時彈出警告視窗,確認後才執行刪除。 ​ 代碼為Element-plus中的示例。 但是ElMessageBox一直被遮擋 代碼如下,均為Element-plus的示例,此外還有兩層router-view嵌套: <template> <el- ...
  • 在我們日常的網頁中,尤其是新聞類的網頁會遇到許多類似於這樣的樣式 多行甚至單行的文本隱藏+上省略號標題。 解決這一辦法,需要利用css的樣式進行改變 如下代碼的演示: 單行文本隱藏: 多行文本隱藏: 主要知識點: 1、單行文本隱藏省略:文本不能換行、超出部分隱藏、超出部分省略 2、多行文本隱藏省略: ...
  • 最近,在 Steam 玩一款老游戲(生化危機 4 重置版),其中,每當游戲轉場的過程中,都有這麼一個有趣的 Loading 動畫: 整個效果有點類似於日食效果,中間一圈黑色,向外散髮著太陽般的光芒。 本文,我們將嘗試使用 CSS,還原這個效果。 整個效果做出來,類似於如下兩個動畫效果這樣: 實現主體 ...
  • 本篇文章主要是使用 NestJs + Sequelize + MySQL 完成基礎運行, 帶大家瞭解 Node 服務端的基礎搭建,也可以順便看看 Java SpringBoot 項目的基礎結構,它倆真的非常相似,不信你去問服務端開發同學。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...