(簡單記錄,歡迎一起討論)一般的支付系統(tǒng)由上游端+自己公司系統(tǒng)組成或者上游+自己公司系統(tǒng)+下游商戶
上游:指處在整個資金鏈的開始端,為下游提供不同接口增/減金額(簡單理解:銀行提供充值、消費、提現(xiàn)等接口,支付寶、微信等第三方支付公司去對接。微信對接銀行后,可以自己再開發(fā)一套支付系統(tǒng),為微信用戶提供充值、支付、提現(xiàn)等功能)
下游:和上游對接后,會在上游有一個存儲金額等信息的賬號,此時就可以為自己系統(tǒng)的用戶提供充值、消費、提現(xiàn)等服務了。需要說明的是下游也可以自己開發(fā)一套接口,為其他公司提供服務,此時下游就變成了上游,這涉及到簽約費率(簡單理解:用戶在微信里面有一個賬號有100元,微信在銀行的賬號里面也有100元。用戶在微信賬號上的金額操作最后都會體現(xiàn)在銀行端)
舉個列子:微信a用戶和b用戶同時從各自賬號提現(xiàn)了100元到銀行卡,此時微信在收到提現(xiàn)請求后會在自己系統(tǒng)處理一遍,扣除用戶微信賬號里面的100元,最后微信發(fā)轉(zhuǎn)賬請求給銀行,銀行扣除微信在銀行端賬號里面的200元,分別為a用戶和b用戶提供的銀行卡添加100元
下面我重點說明下之前接觸的支付項目。此項目即對接了上游,也為下游提供服務接口
一、涉及的系統(tǒng)羅列
支付項目主要包括消費訂單系統(tǒng)、商戶管理系統(tǒng)、清結(jié)算系統(tǒng)、路由系統(tǒng)、風控系統(tǒng)、賬務系統(tǒng)、出款訂單系統(tǒng),另外還有商戶服務平臺和運營管理平臺
消費訂單系統(tǒng):主要處理消費下單請求和轉(zhuǎn)發(fā)請求。包括后臺邏輯,如:商戶權(quán)限判斷、大額拆單、修改訂單狀態(tài)等
商戶管理系統(tǒng):商戶入駐、商戶簽約等圍繞商戶的系統(tǒng)
清結(jié)算系統(tǒng):主要是結(jié)算系統(tǒng),對當天交易成功的訂單進行結(jié)算(商戶簽約時有標注結(jié)算是按D0或者T1等方式結(jié)算)
路由系統(tǒng):主要是指金額操作走那個上游(比如說我們的上游有易寶、惠利寶等,根據(jù)邏輯判斷會請求到不通的上游)
風控系統(tǒng):大額交易都有監(jiān)管,單筆金額、當天累計金額限制
賬務系統(tǒng):管理金額,對商戶賬號金額增、減操作的最底層系統(tǒng)
出款訂單系統(tǒng):主要處理出款訂單請求和轉(zhuǎn)發(fā)請求。包括后臺邏輯,如:商戶權(quán)限判斷、手續(xù)費計算、修改訂單狀態(tài)等
商戶服務平臺:為商戶提供的平臺,方便用戶查詢訂單、提現(xiàn)、查看商戶id和秘鑰等功能
運營管理平臺:提供給運營管理的后臺,包括商戶信息、訂單信息等
二、消費訂單系統(tǒng)涉及的處理
1.網(wǎng)銀支付下單
流程說明
1.在商戶網(wǎng)站上銀行卡支付
2.向接口系統(tǒng)下單,對商戶訂單進行驗簽
3.請求進入消費訂單系統(tǒng),判斷產(chǎn)品類型(銀行卡、微信、支付寶)、銀行名稱、銀行編碼等
4.判斷該訂單是否存在、判斷商戶狀態(tài)、判斷商戶手續(xù)費是否足夠(即手續(xù)費<訂單金額)、修改訂單狀態(tài)
5.請求進入風控系統(tǒng),判斷是否風控攔截
6.請求進入路由系統(tǒng),請求消費路由選擇渠道編號,對應的渠道商戶號
7.渠道生成支付報文并往前返回、接口模塊返回支付報文,收銀臺網(wǎng)站跳轉(zhuǎn)到渠道網(wǎng)頁
簡單理解:收銀臺選擇銀行卡支付>請求發(fā)送到我們系統(tǒng)>做參數(shù)、風控等判斷>通過渠道請求到銀行,銀行返回支付報文>我們系統(tǒng)解析并展示網(wǎng)銀支付頁面>用戶完成網(wǎng)銀支付>自動跳轉(zhuǎn)到我們提供給銀行的頁面(此時上游異步給我們系統(tǒng)回了支付成功的報文)
2.掃碼下單
流程說明
1.在商戶網(wǎng)站上選擇掃碼支付
2.向接口系統(tǒng)下單,對商戶訂單進行驗簽
3.請求進入消費訂單系統(tǒng),判斷產(chǎn)品類型(微信、支付寶)
4.判斷該訂單是否存在、判斷商戶狀態(tài)、判斷商戶手續(xù)費是否足夠(即手續(xù)費<訂單金額)、修改訂單狀態(tài)
5.請求進入風控系統(tǒng),判斷是否風控攔截
6.請求進入路由系統(tǒng),請求消費路由選擇渠道編號,對應的渠道商戶號
7.渠道生成支付報文并往前返回。成功,返回二維碼url、失敗,返回錯誤信息、超時,返回交易超時
8.收銀臺顯示二維碼,用戶掃描支付
簡單理解:收銀臺選擇掃碼支付>請求發(fā)送到我們系統(tǒng)>做參數(shù)、風控等判斷>請求到上游,上游返回支付報文>我們系統(tǒng)解析并把url轉(zhuǎn)換為二維碼展示>用戶完成掃碼支付>自動跳轉(zhuǎn)到我們提供給上游的頁面(此時上游異步給我們系統(tǒng)回了支付成功的報文)
3.支付通知
流程說明
1.接口收到第三方支付成功的通知
2.接口透傳消費訂單系統(tǒng),找到對應的路由規(guī)則找到對應的渠道,渠道解析通知返回支付成功給路由
3.路由返回訂單消費支付成功,并且執(zhí)行路由單日訂單消費金額增加流程
4.消費訂單系統(tǒng),將訂單由待支付更新為成功
5.判斷該筆支付訂單商戶號+商戶訂單號在系統(tǒng)中是唯一成功訂單
6.異步推送,清結(jié)算流水,接口前置通知商戶支付成功
7.如果存在多筆訂單,并且都支付成功,則其中一筆走退款流程
簡單理解:上游給我們系統(tǒng)回支付成功的報文>我們系統(tǒng)解析處理>通知商戶或者我們系統(tǒng)的下游訂單支付成功
4.重復訂單支付成功
流程說明
1.當收到存在兩筆商戶號+商戶訂單號成功的通知,進入退款流程
2.異步根據(jù)商戶號+商戶訂單號對應的支付訂單號發(fā)起退貨,消費訂單系統(tǒng)通過訂單中心生成退貨支付訂單
3.根據(jù)原支付訂單號,送到路由,通過渠道發(fā)起網(wǎng)銀退貨
4.渠道收到退貨成功通知,向路由返回退貨成功,路由返回給消費訂單系統(tǒng)。其他狀態(tài)對應修改狀態(tài)即可,退款不成功則需要走扔處理流程
簡單理解:上游返回兩筆支付成功的通知>我們系統(tǒng)判斷,如果存在相同訂單則向上游發(fā)起退款>上游處理,返回處理結(jié)果*(商戶訂單過來后,會在我們系統(tǒng)落地,也會有一個匹配的訂單號,此訂單號才會發(fā)往上游)
5.自動查詢機制
流程說明
1..輪訓任務根據(jù)支付訂單號、查詢延時時間、查詢次數(shù)安排任務
2.消費訂單系統(tǒng)判斷需要查詢的支付訂單
3.通道查詢結(jié)果,成功則走收到支付成功通知的流程
6.手動查詢機制
流程說明
1.交易消費訂單系統(tǒng)下單成功后,
2.消費訂單狀態(tài)為待支付,手動在運支撐平臺或商戶服務后臺點擊補單后
3.向路由、通道發(fā)起訂單狀態(tài)查詢
4.查詢訂單結(jié)果為成功,更新訂單狀態(tài)為成功等一系列操作
三、出款訂單系統(tǒng)
1.出款下單
流程說明
1.商戶通過接口或商戶服務后臺向出款訂單系統(tǒng)下單
2.檢查訂單是否存在、商戶權(quán)限、大額拆單判斷、
3.出款訂單系統(tǒng)送入風控系統(tǒng)模塊,獲取該訂單單筆金額是否被限制
4.出款訂單系統(tǒng)送入賬務系統(tǒng),判斷賬務情況是否正確
5.出款訂單系統(tǒng)請求出款路由選擇渠道編號,對應的渠道商戶號
6.生成出款報文。直接發(fā)送至渠道
7.由運營支撐系統(tǒng)發(fā)起發(fā)送請求,將處理狀態(tài)由已生成更新為已發(fā)送查找對應出款訂單路由渠道記錄發(fā)送至三方服務器,收到對方同步應答
8.將訂單的處理狀態(tài)由1-已生成更新為2-已發(fā)送
簡單理解:商戶通過接口提交出款(提現(xiàn))>我們系統(tǒng)邏輯處理>發(fā)送到渠道
2.出款狀態(tài)查詢
流程說明
1.定時任務發(fā)起出款訂單系統(tǒng)對上游進行查詢訂單狀態(tài)
2.上游返回查詢結(jié)果,找到對應渠道,訂單的路由,傳到對應出款訂單系統(tǒng)
3.根據(jù)訂單狀態(tài),通知商戶