银行转账功能(二)
銀行轉賬功能(二)
????? ? ??1、上一篇我們說過了同行轉賬,就是同庫轉賬。其原理無非是一個減錢,一個加錢。
????????? ?思考:既然原理都是一樣的,那么為什么還要說這個不同銀行(跨行)轉賬呢?
????? ??? ?2、跨行(跨地區和跨銀行)轉賬實質上我們可以理解為跨數據庫轉賬。那么如果說是這樣的話:
????????? ? 轉出方:賬戶甲
????????? ? 轉入方:? ?賬戶乙
????????? ? (1) 獲取不到? 賬戶已? 的賬號信息
????????? ? (2)無法或者說沒有能力將給? 賬戶乙? 的加款這件事添加事務
? ? ? ? ? ?3、跨行轉賬的基本實現思路:
????????? ? 前提:每個銀行都會有一個公有賬號(PublicAccount),這個賬號存在的意義主要是用來處理跨行業務。
????????? ???(1)從賬戶甲扣款(新手看的時候括號內的備注請忽略,真扣還是假扣我們不管,真扣(馬上減去轉賬金額),假扣(該賬戶會有一個字段記錄轉出金額,定時根據轉入方到賬或者銀行自己的條件對其進行歸0處理))。
?????????????(2)給? 銀行甲? 的PublicAccount加錢。
?????????????(3)通知? 賬戶乙? 所在的? 銀行乙,按照? 銀行乙? 約定的方式傳遞數據給該行所提供的API 。
?????????????(4)銀行已處理完之后,會通過某種方式提醒? 賬戶甲所在的? 銀行甲。然后? 賬戶甲完成了向賬戶乙的轉賬操作。
?????????????(5)那么問題來了,銀行甲? 還欠著? 銀行乙? 的錢呢。它只是收? 賬戶甲? 的錢,讓? 銀行乙? 給? 賬戶乙? 加款。但是? 銀行甲? 沒給? 銀行乙 轉賬(此時? 賬戶乙? 加款成功)。
????????? ? ?(6)在夜深人靜的時候(在線用戶較少的時候),銀行甲的PublicAccount賬戶會向銀行乙的PublicAccount中轉賬。就是把當天的銀行甲向銀行乙中所有轉賬金額加到銀行乙的PublicAccount賬戶中。當銀行乙的反饋信息中是加款成功的時候,銀行甲減去向銀行乙的轉賬金額(不歸0的原因是這個操作過程中可能有用戶完成了一筆轉賬或別的操作)。
總結
- 上一篇: 机器视觉行业市场现状及发展前景分析
- 下一篇: 异步请求中jetty处理ServletR