日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

支付系统的对账处理与设计--转

發(fā)布時(shí)間:2025/4/5 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 支付系统的对账处理与设计--转 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文來自 微信公眾號(hào)“鳳凰牌老熊”。

可以說,對(duì)賬是支付系統(tǒng)最頭疼的事情。每一筆交易,都要做到各參與者的記錄能夠吻合,沒有偏差。對(duì)賬系統(tǒng)的工作,是發(fā)現(xiàn)有差異的記錄,即軋帳;然后通過人工或者自動(dòng)的方式,解決這些差異,即平帳。

對(duì)電商系統(tǒng)來說,每一筆交易,在所有相關(guān)主體側(cè)都要能對(duì)得上:

  • 交易主體,如果發(fā)起人是個(gè)人,必須能夠從個(gè)人交易歷史記錄中找到這筆交易。但大部分人不會(huì)保留電子記錄,所以一般是提供可以下載的賬單或交易記錄,讓用戶自己對(duì)去。

  • 交易對(duì)手,一般是商戶。商戶側(cè)對(duì)賬處理同用戶側(cè),也僅僅提供對(duì)賬單。

  • 交易渠道側(cè),這是對(duì)賬的重點(diǎn),一是核實(shí)交易流水,二是核實(shí)交易傭金,畢竟是租用人家通道做結(jié)算的。

那有哪些記錄需要對(duì)賬? 目前主要是兩個(gè):一個(gè)是交易記錄;一個(gè)是退款記錄。 這里以交易記錄的處理為例,退款記錄可以類似處理。

一、對(duì)賬處理流程

一般來說,對(duì)賬流程涉及到如下步驟: 渠道對(duì)賬單下載、本地交易記錄準(zhǔn)備、軋賬、平賬。

1.1 渠道對(duì)賬單下載

銀行,第三方支付,銀聯(lián)等,基本都會(huì)提供對(duì)賬單下載的功能。不過也有少數(shù)工作做不到位或者太到位的銀行,只提供賬單查詢后臺(tái),不提供對(duì)賬單下載功能。 對(duì)開發(fā)人員來說,這里有幾個(gè)坑:

  • 對(duì)賬單格式不一。文本,XML,csv的都有。為了后續(xù)能夠統(tǒng)一處理,在賬單下載完成后,需要進(jìn)行標(biāo)準(zhǔn)化處理。

  • 下載方式不一,HTTP,HTTPS,FTP的,都有。下載程序需要按照渠道的協(xié)議來處理。

  • 下載時(shí)間不一,一般是凌晨1點(diǎn)后,到中午12才能用的也有。如果在預(yù)定的時(shí)間取不到數(shù)據(jù),需要注意重試讀取。

  • 穩(wěn)定性差。FTP服務(wù)器出問題那是常有的事。渠道側(cè)解決方案往往就是重啟。所以重試機(jī)制是必要的。

看一下第三方支付的對(duì)賬單情況:

渠道對(duì)賬周期賬單提供方式賬單文件格式
支付寶每天 2:10HTTPSXML
支付寶退款每天3:10HTTPSXML
百付寶每天7:00FTPTXT
百付寶退款每天7:00FTPTXT
微信支付每天10:30HTTPSTXT
微信退款每天10:30HTTPSTXT

銀行直連的對(duì)賬情況

銀行對(duì)賬形式對(duì)賬周期打款周期
交行接口/商戶對(duì)賬系統(tǒng)日對(duì)賬日結(jié)(T+1)
建行接口日對(duì)賬日結(jié)(T+1)
工行登錄網(wǎng)銀的方式手動(dòng)下載日對(duì)賬日結(jié)(T+1)
浦發(fā)信用卡登錄自助平臺(tái)獲取對(duì)賬文件,
借記卡通過接口形式提供對(duì)賬文件
日對(duì)賬日結(jié)(T+1)
農(nóng)行銀行定時(shí)推送對(duì)賬文件日對(duì)賬日結(jié)(T+0)
中行銀行定時(shí)推送對(duì)賬文件日對(duì)賬日結(jié)(T+1)
招行銀行定時(shí)推送對(duì)賬文件日對(duì)賬日結(jié)(T+1)

1.2 渠道對(duì)賬單標(biāo)準(zhǔn)化

找個(gè)例子大家看看, 比如微信的對(duì)賬單,他是csv格式的,包括如下信息:

  • 交易時(shí)間:這是在微信側(cè)的支付完成的時(shí)間。 這個(gè)時(shí)間會(huì)成為一個(gè)陷阱。

  • 公眾賬號(hào)ID,商戶號(hào),子商戶號(hào),設(shè)備號(hào): 這些信息需要做驗(yàn)證,確保是自己的單子,不要讓微信把老王家的單子也給發(fā)過來了;

  • 微信訂單號(hào),商戶訂單號(hào): 這兩個(gè)是對(duì)單的核心。前者是微信側(cè)產(chǎn)生的訂單號(hào),在微信支付接口返回值中有。但是萬一收不到這個(gè)返回值,那在本地記錄中可能就空了。 后者是我們發(fā)送給微信的訂單號(hào),一般用這個(gè)來做對(duì)單依據(jù)。兩邊的數(shù)據(jù)中都會(huì)有這個(gè)值。

  • 用戶標(biāo)識(shí),交易類型,交易狀態(tài),付款銀行,貨幣種類,總金額,企業(yè)紅包金額: 這幾個(gè)就是對(duì)單的核心字段,必須確保雙方是一致的。

  • 商品名稱,商戶數(shù)據(jù)包,手續(xù)費(fèi),費(fèi)率:這些是可選驗(yàn)證。

  • 而某寶的對(duì)賬單,是文本格式的,用空格隔開。他們家的就簡(jiǎn)單很多,只有商戶訂單號(hào),交易流水號(hào),交易時(shí)間,支付時(shí)間,付款方,交易金額,交易類型,交易狀態(tài)這些字段。

    由于每個(gè)渠道的賬單格式都不盡相同, 在得到賬單后,下一步是對(duì)賬單做標(biāo)準(zhǔn)化處理,這樣軋帳以及后續(xù)工作就可以統(tǒng)一處理了。 標(biāo)準(zhǔn)化后的賬單數(shù)據(jù)可以放在文件系統(tǒng)或者數(shù)據(jù)庫(kù)中。這取決于交易數(shù)據(jù)量。每天百萬以上的量,還是使用文件系統(tǒng),比較合適。數(shù)據(jù)庫(kù)操作相對(duì)比較慢,也浪費(fèi)資源。 基于文件系統(tǒng)的標(biāo)準(zhǔn)化涉及如下內(nèi)容:

    文件格式標(biāo)準(zhǔn)化?統(tǒng)一使用csv或者json或者xml格式。如果是使用hadoop或者spark來對(duì)賬,使用csv是個(gè)不錯(cuò)的選擇。

    文件存儲(chǔ)統(tǒng)一化?文件目錄,文件名都需要遵循統(tǒng)一命名規(guī)范。

    為了加快處理速度,我們使用hdfs作為文件系統(tǒng),有利于后續(xù)的對(duì)賬的處理。

    1.3 本地交易記錄準(zhǔn)備

    本地交易記錄的準(zhǔn)備,總的來說有如下方法:

    • 啥都不做,直接用原始數(shù)據(jù)。鑒于大部分系統(tǒng)使用的是mysql,這也意味著在MySQL上做對(duì)賬。對(duì)賬時(shí)需要大量的數(shù)據(jù)查找工作,必然會(huì)影響線上業(yè)務(wù)。在數(shù)據(jù)規(guī)模較大,比如超過100萬時(shí),就不太合適了。

    • 當(dāng)然,還有一個(gè)選擇是使用備庫(kù)來執(zhí)行對(duì)賬,這樣既簡(jiǎn)單,也不影響線上業(yè)務(wù)。這是典型的空間換時(shí)間的做法。

    • 如果業(yè)務(wù)大到需要分表分庫(kù)才能處理,那對(duì)賬數(shù)據(jù)準(zhǔn)備也不一樣。使用分庫(kù)也不現(xiàn)實(shí),因?yàn)榉謳?kù)一般是按照主體id,而不是渠道id,來分庫(kù),這樣對(duì)賬就需要在多個(gè)庫(kù)上進(jìn)行,效率反而降低了。而對(duì)分表分庫(kù)建立從庫(kù)也非常耗費(fèi)資源。這種情況下,需要同步一份數(shù)據(jù)到(hdfs)文件系統(tǒng)中,或者NOSQL數(shù)據(jù)庫(kù)上。

    由于交易記錄是支付系統(tǒng)核心數(shù)據(jù),有大量的應(yīng)用,如信用、風(fēng)控等,都需要交易記錄數(shù)據(jù)。這些應(yīng)用對(duì)交易記錄的需求還不完全一致,為了提升性能, 交易記錄會(huì)使用異步的方式來將數(shù)據(jù)投遞給使用方。 交易記錄在入庫(kù)時(shí),投遞消息到消息系統(tǒng)中。使用方監(jiān)聽這個(gè)消息,一旦收到新消息,則從交易記錄庫(kù)中查詢數(shù)據(jù),獲取數(shù)據(jù)并更新到庫(kù)中。關(guān)于此類數(shù)據(jù)同步的文章不少,這里就不詳細(xì)介紹。

    1.4 軋帳

    軋帳是按照客戶訂單號(hào)來比較本地交易記錄和渠道交易記錄是否一致。從算法角度,是計(jì)算兩個(gè)數(shù)組的差異。在單機(jī)運(yùn)行時(shí),可以采用的算法不少,這里不詳細(xì)介紹。 我們推薦采用mapreduce來軋帳,這有個(gè)優(yōu)勢(shì),可以按照訂單號(hào)將渠道提供的記錄和本地記錄shuffle到同一個(gè)reduce處理上,這樣就可以很容易進(jìn)行數(shù)據(jù)比對(duì)。 軋帳中最大的坑,莫過于切分點(diǎn)的問題。比如以整0點(diǎn)為切分點(diǎn),那存在一個(gè)問題,本地23:59發(fā)起的交易,到了渠道側(cè),可能會(huì)在00:01處理,這一筆交易變成第二天的帳了。實(shí)際處理中,一筆交易在渠道側(cè)處理,花上幾分鐘都有可能。 對(duì)于切分點(diǎn)附近無法確認(rèn)的帳,做一個(gè)時(shí)間窗,在時(shí)間窗內(nèi)的數(shù)據(jù),留待第二天對(duì)賬時(shí)繼續(xù)處理。

    1.5 平帳

    發(fā)現(xiàn)兩邊不一致的數(shù)據(jù),那應(yīng)該如何處理?數(shù)據(jù)量不大時(shí),記錄起來,人工甄別就行。但如果數(shù)據(jù)量很大,每天上千條,人工處理就成本太高了。這個(gè)沒有統(tǒng)一的處理方法,需要根據(jù)有問題的數(shù)據(jù),做個(gè)分析,然后做自動(dòng)處理。 針對(duì)交易記錄的對(duì)賬的處理,主要有如下情況:

    • 長(zhǎng)款: 本地未支付,支付渠道已支付。這主要是本地未正確接收到渠道下發(fā)的異步通知導(dǎo)致。 一般處理是將本地狀態(tài)修改為已支付,并做響應(yīng)的后續(xù)處理,比如通知業(yè)務(wù)方等。

    • 短款:本地已支付,但是支付渠道中無記錄;或者本地?zé)o記錄,支付渠道有記錄。在排除跨日因素外,這種情況非常少見,需要了解具體原因后做處理。

    • 金額不一致: 本地已支付,支付渠道已支付,但是金額不同,這個(gè)需要人工核查。

    針對(duì)退款的對(duì)賬處理,主要有如下情況:

    • 本地未退款,支付渠道已退款,則以支付渠道為準(zhǔn),修改本地為已退款狀態(tài),并出發(fā)后續(xù)處理。

    • 本地已退款、支付渠道已退款,但是金額不同,需要人工核查;

    • 本地已退款,但是支付渠道無記錄;或者支付渠道有記錄,但是本地沒有。 在排除跨日因素外, 這種情況非常少見,需要了解具體原因后做處理。

    二、對(duì)賬架構(gòu)

    基于微服務(wù)的對(duì)賬系統(tǒng)實(shí)現(xiàn)的一個(gè)參考架構(gòu)如下:

    2.1 對(duì)賬單下載

    對(duì)賬單下載組件每天定時(shí)觸發(fā),從支付通道服務(wù)器上下載對(duì)賬單。 目前主要有HTTP(S)和FTP兩種對(duì)賬單下載方式。 技術(shù)選型上,HTTP(S)用apache httpclient即可實(shí)現(xiàn)鏈接池和斷點(diǎn)續(xù)傳, FTP也可以使用Apache Commons Net API。 不管是哪一個(gè),都需要設(shè)置重試次數(shù)和鏈接超時(shí)間。重試次數(shù)和間隔的設(shè)置需要小心,重試太頻繁,容易把服務(wù)器打死.;時(shí)間間隔太大,又會(huì)阻塞后續(xù)處理步驟。5~10分鐘是一個(gè)合適的重試間隔區(qū)間。鏈接超時(shí)指在服務(wù)器出現(xiàn)問題時(shí),連接在指定時(shí)間內(nèi)獲取不到數(shù)據(jù)即自動(dòng)斷開。這個(gè)很容易被忽略。我們有一次系統(tǒng)出問題,是渠道側(cè)的FTP假死后重啟,導(dǎo)致我們的客戶端掛住,一直在等待重新鏈接。此外,注意,有些對(duì)賬單下載是支持分頁(yè)下載的。

    2.2 對(duì)賬單轉(zhuǎn)換

    將對(duì)賬單轉(zhuǎn)換為標(biāo)準(zhǔn)格式的賬單,為對(duì)賬Mapreduce任務(wù)執(zhí)行提供支持。每個(gè)渠道的對(duì)賬單格式不一,需要分別開發(fā)轉(zhuǎn)換程序。 轉(zhuǎn)換程序主要就兩個(gè)操作: 解析源文件、轉(zhuǎn)換成標(biāo)準(zhǔn)格式并輸出。

    2.3 軋賬MR

    如上所述,軋賬MapReduce程序在Hadoop上運(yùn)行,以交易號(hào)為Key,核對(duì)渠道訂單和本地交易記錄之間的差異,輸出差異記錄。最后將差異記錄導(dǎo)入到差異表中。

    總之,對(duì)賬工作,即復(fù)雜也不復(fù)雜。需要細(xì)心,對(duì)業(yè)務(wù)要有深入的了解,并選擇合適的架構(gòu)。

    感謝您對(duì)本文的關(guān)注,如需要及時(shí)收到鳳凰牌老熊的最新作品,或者有相關(guān)問題探討,請(qǐng)掃碼關(guān)注“鳳凰牌老熊”的微信公眾號(hào),在公眾號(hào)里留言或者回復(fù),可以盡快處理,謝謝。

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/6408369.html

    總結(jié)

    以上是生活随笔為你收集整理的支付系统的对账处理与设计--转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久久久久网站 | 2021国产在线视频 | 国产精品黄色大片 | 九九热最新视频 | 免费的黄网站 | 一级美女视频 | 国产精品久免费的黄网站 | 成人av动漫| 天堂视频免费在线观看 | 黄色一级免费片 | 久操视频在线免费观看 | 奇米影视盒 | 国产农村妇女毛片精品久久 | 日日操日日射 | 欧美激情视频网址 | 亚洲伦理影院 | 日本午夜小视频 | 亚洲AV成人无码网站天堂久久 | 伊人网欧美 | 91免费在线 | 视频国产一区 | 久久精品一级片 | 天天天天 | 一区二区三区在线播放视频 | 男女做事网站 | 蜜桃视频在线观看一区 | 欧美影院一区二区三区 | 成人一区二区在线观看 | 99久久99久久免费精品蜜臀 | 人妻互换免费中文字幕 | 正在播放经典国语对白 | 欧美中文字幕第一页 | 蜜桃91精品入口 | 日本啪啪网| 日韩色网 | 中出白浆| 黑人欧美一区二区三区 | zzjj国产精品一区二区 | 亚洲美女一区 | 操操插插 | 欧美日韩一区二区三区免费 | 国产精品成熟老女人 | 亚洲精品不卡 | 日本久久一区二区 | 黄色片亚洲 | 免费黄网在线观看 | 国产女人水真多18毛片18精品 | av图片在线观看 | 男人舔女人下部高潮全视频 | 日日摸日日干 | av在线播放一区二区三区 | 波多野结衣视频一区二区 | 啪啪自拍视频 | 欧美特级视频 | 在线观看国产免费av | 国产制服91一区二区三区制服 | 黄色观看网站 | 国产xxxx性hd极品 | 美女精品一区二区 | 免费极品av一视觉盛宴 | 91精品视频观看 | 国产一卡二卡三卡四卡 | 天天干夜夜夜 | 亚洲一二三视频 | 国产日韩在线看 | 日韩欧美在线观看视频 | 国产精品第3页 | 激情婷婷小说 | 91麻豆国产在线 | 中文字幕首页 | 中文字幕视频免费观看 | 黄色片aaa | 亚洲经典久久 | 午夜性色福利影院 | 中文字幕黄色av | 欧美人与动性xxxxx杂性 | 亚洲黄片一区二区三区 | 女人的洗澡毛片毛多 | 久久久视频在线 | 亚洲av无码乱码国产精品 | 色婷婷av一区二区三 | 成人亚洲综合 | 超碰cc| 中文字幕一区二区三区四区不卡 | 秋霞99 | 国产精品视频导航 | www.中文字幕av | 亚洲精品美女 | 久久偷看各类女兵18女厕嘘嘘 | 精品国产免费av | 亚洲a精品 | av福利在线免费观看 | 日韩欧美在线一区二区 | 免费看日韩 | 91美女片黄在线观看 | caopeng在线视频| 久久精品国产露脸对白 | 欧美精品国产 | 中文幕无线码中文字夫妻 |