開放銀行(Open Banking)作為銀行數(shù)字化轉(zhuǎn)型過程中的重要舉措,得到了業(yè)界越來越多的關(guān)注和重視,開放銀行通過 API 實現(xiàn)商業(yè)銀行和外部的數(shù)據(jù)共享,將金融服務(wù)嵌入到用戶的生活場景中來滿足客戶的多樣化需求,以場景為核心、圍繞客戶旅程重塑傳統(tǒng)業(yè)務(wù)模式,挖掘新的業(yè)務(wù)增長點。KPMG 在系列研究報告中指出,開放銀行或許是未來中國銀行業(yè)發(fā)展的必經(jīng)之路。
開放銀行與開發(fā)者體驗
根據(jù)《Open Banking Trends Report Q1 2020》的報告顯示,截止2020年Q1 世界前50的銀行中72%已經(jīng)構(gòu)建了開放平臺,78%的開放銀行平臺為開發(fā)者構(gòu)建了明確的開發(fā)者門戶網(wǎng)站(Developer Portal),越來越多的銀行建立專門的合作渠道,積極探索新的業(yè)務(wù)場景,把一些不直接競爭的合作伙伴接入到自己的生態(tài)系統(tǒng),據(jù)該報告顯示其中一家銀行通過向第三方開放API,每年新增賬戶增長72%,交易額增長91%。
和傳統(tǒng)的產(chǎn)品形態(tài)不同,開放銀行提供的是具有特定能力或者銀行數(shù)據(jù)的API,雖然直接使用開放銀行API的是生態(tài)應(yīng)用的開發(fā)者,但是本質(zhì)上這些API仍然是產(chǎn)品,也具備產(chǎn)品的特性,比如需要關(guān)注產(chǎn)品價值、市場的匹配度、用戶體驗,也需要考慮 API 的定價、營銷等方方面面,而用戶體驗往往是其中最容易被忽略的維度。在2019年的 State of API 報告中,73%的開發(fā)者認為易用性是評估 API 開發(fā)生態(tài)最重要的因素,API 缺少標準化和文檔不夠完善是頻繁提及的問題。
開發(fā)者通過開放銀行的 API 構(gòu)建多樣化的場景,作為開放銀行的平臺提供方,需要加強對開發(fā)者體驗的重視,把開發(fā)者體驗和業(yè)務(wù)場景探索置于同樣的優(yōu)先級。良好的開發(fā)者體驗不僅有利于建立產(chǎn)品的口碑,也有助于開放銀行應(yīng)用生態(tài)的蓬勃發(fā)展。
通過參考公開的開放銀行協(xié)議,借鑒業(yè)界在 API 生態(tài)建設(shè)方面的經(jīng)驗積累,我們認為開放銀行的平臺提供方需要從以下幾個重要的維度來提升開發(fā)者體驗:
- 自助式的開發(fā)過程
- 現(xiàn)代化的開放協(xié)議和 API 工具
- 精心設(shè)計的開發(fā)者套件
- 友好的開發(fā)者社區(qū)
提供自助式的開發(fā)過程讓應(yīng)用開發(fā)更流暢
在應(yīng)用的完整開發(fā)過程中,在很多環(huán)節(jié)都需要向平臺方申請資源,比如在開發(fā)期間,需要創(chuàng)建具有唯一標識的應(yīng)用程序(Application Id);需要申請沙箱(Sandbox)環(huán)境的訪問權(quán)限,通過集成 API 與沙箱環(huán)境進行功能驗證;在開發(fā)完成之后,需要和平臺方的產(chǎn)品環(huán)境進行集成;在正式部署上線之前,必須要經(jīng)過平臺方的架構(gòu)評審、合規(guī)檢查和安全掃描等,才能向應(yīng)用正式開放產(chǎn)品環(huán)境的訪問權(quán)限。平臺方可以提供自助式的工具或者產(chǎn)品功能,讓整個開發(fā)過程更加流暢。
(圖1: 開放銀行生態(tài)應(yīng)用開發(fā)過程)
在訪問申請環(huán)節(jié)
平臺方需要提供方便、易用的開發(fā)者門戶網(wǎng)站供開發(fā)者使用,除了基本的 API Catalog(API 清單)、API 文檔之外,還需要自動化資源申請流程,讓開發(fā)者可以快速獲取所需資源。
對于非產(chǎn)品環(huán)境的資源申請,需要提供入口供開發(fā)者進行資源申請,并自動生成測試賬戶、API 賬戶和 API 口令等,無需等待冗長的人工審核流程,開發(fā)者可以立刻啟動應(yīng)用的開發(fā)工作。
(圖2: BBVA開發(fā)者注冊之后可以立刻創(chuàng)建生態(tài)應(yīng)用,并獲取訪問沙盒環(huán)境的權(quán)限)
國內(nèi)開放銀行的平臺方在自助式資源申請方面還有不少提升空間,比如某國內(nèi)銀行的開放平臺,需要提交身份證號、借記卡號、住所地址、手機號碼等信息,經(jīng)過平臺方的資質(zhì)審核才能獲取沙盒的訪問權(quán)限,雖然一定程度上防范了來自黑客或者不法分子的惡意攻擊,但是也限制了開發(fā)者快速熟悉 API 的途徑,網(wǎng)絡(luò)攻擊防范的核心要從服務(wù)器端著手,需要建立威脅識別模型和自動防范體系,替代重量級的開發(fā)者審核流程。
(圖3:國內(nèi)某開放銀行沙盒申請流程)
在開發(fā)測試環(huán)節(jié)
在開發(fā)過程中往往需要創(chuàng)建測試用戶、準備測試數(shù)據(jù),并在沙盒環(huán)境進行應(yīng)用的功能測試。平臺方需要提供自助式的測試數(shù)據(jù)管理工具,生成多樣的、較完整的、具有代表性的用戶記錄,有助于開發(fā)者在開發(fā)期間發(fā)現(xiàn)和覆蓋更多的測試用例、提前發(fā)現(xiàn)應(yīng)用潛在的功能缺陷。
德意志銀行的開放平臺在測試數(shù)據(jù)準備方面比較成熟,開發(fā)者可以自助式地基于平臺內(nèi)置模版創(chuàng)建測試用戶,測試用戶的數(shù)據(jù)也比較全面。用戶創(chuàng)建成功之后,開發(fā)者還可以模擬測試用戶登錄、授權(quán)應(yīng)用訪問用戶在德意志銀行的賬號信息、交易歷史等數(shù)據(jù),在沙盒環(huán)境下進行端到端的功能驗證。
(圖4: 德意志銀行開放平臺內(nèi)置了標準用戶模版供開發(fā)者創(chuàng)建應(yīng)用的測試用戶)
(圖5:德意志銀行開放平臺會自動生成多樣、完整的測試數(shù)據(jù)供開發(fā)者使用)
在部署上線環(huán)節(jié)
考慮到法律和合規(guī)因素,在應(yīng)用正式上線之前,需要經(jīng)過必要的安全或者合規(guī)檢查,比如生態(tài)應(yīng)用的數(shù)據(jù)管理是否符合 GDPR 要求,如果涉及到支付相關(guān)的功能,還需要考慮 PCI 合規(guī)、PSD2 以及反洗錢等政策,在產(chǎn)品正式接入之前,平臺方和開放銀行的合作伙伴需要簽訂合約,明確平臺進駐要求和雙方權(quán)責。除了這些商務(wù)流程之外,平臺還需要采用“測試左移”的方式,提供安全和合規(guī)檢查清單,方便開發(fā)者在正式接入之前進行自檢,避免在后期產(chǎn)生額外的返工。BBVA創(chuàng)新實驗室(BBVA Labs) 圍繞開發(fā)者體驗開源了不少工具,幫助開發(fā)者在開發(fā)期間提前識別并解決一些安全和合規(guī)方面的問題:
apicheck:借鑒 Unix 系統(tǒng)的設(shè)計思路,自動化API測試相關(guān)的工具鏈,可以和BurpSuite、OWASP ZAP 進行集成,模擬滲透測試 ,發(fā)現(xiàn)生態(tài)應(yīng)用的服務(wù)器配置或者生態(tài)應(yīng)用代碼的一些安全缺陷
patton:建立漏洞知識庫,幫助開發(fā)者發(fā)現(xiàn)Ubuntu, Debian and RHEL 8 等操作系統(tǒng)的組件漏洞,提高生態(tài)應(yīng)用運行環(huán)境的安全性
采用現(xiàn)代化的開放協(xié)議和 API 工具擁抱開發(fā)者生態(tài)
現(xiàn)代化的開放協(xié)議和API工具有助于開發(fā)者擁抱成熟的開源生態(tài),避免重復(fù)造輪子,幫助開發(fā)者提升工作效率。在遇到系統(tǒng)集成相關(guān)問題時,也有大量的社區(qū)資源可以借鑒,方便應(yīng)用開發(fā)者快速解決問題。
首先在于認證協(xié)議(Authentication Protocol)的選擇上,目前大部分國外的開放銀行的平臺方都選擇了主流的OAuth 2.0 協(xié)議作為用戶身份認證協(xié)議, 但是在授權(quán)模式的選擇上有較大的差異,BBVA只支持客戶端憑證授權(quán)(Client Credential)模式,德意志銀行在應(yīng)用類型的選擇上更具多樣性,可以針對不同應(yīng)用形態(tài)的特點,選擇隱式(Implicit)、授權(quán)碼(Authroization Code)和客戶端憑證(Client Credential)模式,此外對于部分模式還需要考慮是否支持代碼交換的證明密鑰(PKCE)。
對于不熟悉OAuth協(xié)議的生態(tài)開發(fā)者來說,在認證模式選擇方面可能會存在一些挑戰(zhàn),為此德意志銀行提供了較為詳細的決策樹(Decision Tree)輔助開發(fā)者決策,幫助開發(fā)者選擇合適的應(yīng)用程序類型和授權(quán)模式:
(圖6: 德意志銀行的授權(quán)模式?jīng)Q策樹幫助開發(fā)者選擇正確的認證協(xié)議)
開發(fā)應(yīng)用時,開發(fā)者往往需要構(gòu)造地址(URL)、請求報文(Body)、請求頭(Header )等進行 API 測試,這些操作較為繁瑣,在開發(fā)者社區(qū)已有比較成熟的解決方案可以幫助開發(fā)者簡化這些操作 。我們也看到類似 Swagger 的工具在各家開放銀行中都被大范圍使用,開放銀行的平臺方使用 OpenAPI 規(guī)范描述 API 的定義,開發(fā)者下載描述文件之后使用 Swagger 工具打開,可直接查看 API 文檔并進行 API 試用,這種交互式的API開發(fā)體驗可以幫助開發(fā)者快速了解不同API的用途,把主要關(guān)注點放在快速構(gòu)建生態(tài)應(yīng)用上。BBVA 和 NBG 還進一步地提供了開箱即用的開放銀行 API 集合,開發(fā)者可以從官網(wǎng)或者GitHub 下載,導(dǎo)入到本地的 Postman 中即可立即使用。
(圖7:德意志銀行開放平臺可以直接下載JSON格式的)
(圖8: 西班牙對外銀行提供開箱即用的 Postman API 集合)
國內(nèi)開放銀行在協(xié)議的選擇上大多還是以定制化的協(xié)議為主,在應(yīng)用的形態(tài)上也存在一定的約束,不過目前大部分國內(nèi)開放銀行平臺都已經(jīng)支持了Swagger文件的下載,比如浦發(fā)銀行的開放平臺,對于 API 的用途、請求報文結(jié)構(gòu)、返回報文結(jié)構(gòu)和錯誤碼等都有非常詳細的描述:
(圖9:浦發(fā)銀行的開放平臺API 的 Swagger 描述)
提供精心設(shè)計的開發(fā)者套件降低開發(fā)者維護成本
服務(wù)提供方是否需要提供開發(fā)者套件(SDK) 供 API 調(diào)用方使用?對于這個問題業(yè)界一直有很多爭論,引入 SDK 意味著未來需要承擔長期的維護成本,當所依賴的組件庫升級或者框架升級的時候需要進行同步升級;如果支持多語言的話,這個維護成本會翻倍。
如果你的應(yīng)用只需要調(diào)用開放銀行的接口,獲取平臺金融產(chǎn)品和服務(wù)信息查詢,對于這種較簡單的API調(diào)用,我們推薦使用“寬容的讀者模式”(Tolerant Reader Pattern )直接進行API調(diào)用,調(diào)用時只依賴于所需的數(shù)據(jù),對于不需要的數(shù)據(jù)直接忽略,這種松耦合的設(shè)計更利于 API 提供方和 API 消費端的獨立演進。
但是對于大部分開放銀行的業(yè)務(wù)場景來說,都涉及到較復(fù)雜的、加解密、簽名等操作,我們鼓勵平臺方提供對開發(fā)者友好的SDK,封裝這些技術(shù)細節(jié),應(yīng)用的開發(fā)者無需了解具體加密、解密或者簽名算法,直接調(diào)用已經(jīng)封裝好的組件即可完成所需業(yè)務(wù)操作。2020 年 2 月 13 日,中國人民銀行發(fā)布《商業(yè)銀行應(yīng)用接口安全管理規(guī)范》,為開放銀行提供參考,加速了我國開放銀行管理規(guī)范的進一步完善。在這份安全管理規(guī)范中對于 SDK 的使用場景也有較為詳細的描述:
- 資金交易與賬戶信息查詢應(yīng)用類,此類金融產(chǎn)品和服務(wù)與用戶個體直接關(guān)聯(lián),實施高等級安全保護強度,此類商業(yè)銀行應(yīng)用程序接口包括但不限于:
- 商業(yè)銀行通過 SDK,提供資金交易類服務(wù),如支付、轉(zhuǎn)賬以及金融產(chǎn)品與服務(wù)購買等
- 商業(yè)銀行通過 SDK,提供用戶賬戶信息查詢類服務(wù),如賬戶余額、交易歷史、賬戶限額、付款時間、金融產(chǎn)品和服務(wù)持有情況等;
在實現(xiàn)方式上,我們推薦團隊自主維護 SDK的開發(fā),而不是依賴于工具的自動生成。雖然類似 Swagger 這樣的工具可以自動生成多編程語言的 SDK,但同時也引入了很多新的問題。這種基于規(guī)范(Specification)生成的代碼往往太過復(fù)雜、可讀性較差、診斷調(diào)試也不方便。由于開發(fā)時間、產(chǎn)品周期等各種約束條件,即使發(fā)布了新的版本,開發(fā)者也很難在短時間之內(nèi)把 SDK 升級到最新版,這些可維護性很差的 SDK 會一直留在應(yīng)用代碼中成為遺留的技術(shù)債務(wù)。
在開發(fā)語言的選擇上需要保持謹慎,支持的語言種類越多,未來升級維護的成本也越高。在設(shè)計 SDK 的時候還要管理好 SDK 的依賴,盡量減少所依賴的外部組件庫,這樣可以減少開發(fā)者在使用過程中的版本沖突問題。此外,如果有新的語言版本或者框架發(fā)布,待其穩(wěn)定之后也要即時升級 SDK 的版本,否則開發(fā)者還需要處理語言和框架的兼容性問題。
構(gòu)建友好的開發(fā)者社區(qū)持續(xù)收集開發(fā)者反饋
除了API 文檔、API 示例、行業(yè)案例和知識庫的構(gòu)建之外,平臺方還需要注意從開發(fā)者收集針對產(chǎn)品的反饋信息。
Twilio對于開發(fā)者社區(qū)非常重視,在開發(fā)者社區(qū)方面有很多值得學(xué)習(xí)的地方。Twilio是一個專注通訊服務(wù)的開放PaaS平臺,通過將復(fù)雜的底層通信功能打包成 API 并對外開放,從而實現(xiàn)云通信的功能。Twilio的員工經(jīng)常會組織或參加各種會議、演講、線下見面會和黑客馬拉松等活動,通過與開發(fā)者交流技術(shù)、分享經(jīng)驗,收集來自產(chǎn)品使用者的直接反饋,這些活動不但有助于在開發(fā)者社區(qū)建立良好的產(chǎn)品口碑,也可以針對用戶的痛點、想法和建議,適時調(diào)整產(chǎn)品的優(yōu)先級和演進路線。
目前各家開放銀行對于開發(fā)者社區(qū)的構(gòu)建都有所關(guān)注,其中BBVA在這方面成熟度相對較高,例如BBVA在開發(fā)者官網(wǎng)中提供渠道,方便開發(fā)者提出API 功能的需求,反饋API 缺陷、咨詢商業(yè)合作機會等。除此之外,BBVA也非常同樣重視和開發(fā)者下線的交互和溝通,在開發(fā)者官網(wǎng)會實時發(fā)布對外的市場營銷活動,吸引開發(fā)者參加。
(圖10: 西班牙對外銀行開放平臺收集來自開發(fā)者的反饋)
(圖11: 西班牙對外銀行開放平臺對外的營銷活動)
相對來說國內(nèi)的開放銀行的開發(fā)者社區(qū)還處于起步階段,開發(fā)者官網(wǎng)的信息主要還是圍繞信息推送為主,需要提供反饋入口,從開發(fā)者收集關(guān)于API、文檔等相關(guān)的反饋信息,促進平臺逐步發(fā)展。此外還需要注重和開發(fā)者的線下溝通渠道,可通過官網(wǎng)、微信群或者釘釘?shù)燃磿r發(fā)布開放銀行相關(guān)的動態(tài)、營銷活動或技術(shù)洞見,吸引開發(fā)者加入到這些活動中。
企業(yè)走向數(shù)字化,就是一個從封閉走向開放的過程,通過充分聯(lián)接挖掘數(shù)據(jù)的價值,形成新的商業(yè)模式,而 API 經(jīng)濟是企業(yè)數(shù)字化轉(zhuǎn)型的關(guān)鍵。企業(yè)需要通過 API 連接更大體量、更多類型的用戶,探索更豐富多樣的商業(yè)場景,實現(xiàn)盈利的持續(xù)增長 。友好的開發(fā)者體驗是支撐生態(tài)發(fā)展壯大的基礎(chǔ),開放銀行作為 API 經(jīng)濟在金融領(lǐng)域的載體,需要把提升開發(fā)者體驗作為重要的戰(zhàn)略舉措之一,吸引更多的合作伙伴參與到商業(yè)模式和業(yè)務(wù)場景的探索中來。
參考:
西班牙對外銀行, BBVA One Platform: https://bbvaopenplatform.com/
德意志銀行 API Program:https://developer.db.com/
希臘國家銀行 NBG Technology Hub:https://developer.nbg.gr/
浦發(fā)銀行API開放平臺:https://open.spdb.com.cn/develop/#/index
Mastering Open Banking: How the ‘Masters in openness’ create value:https://www.linkedin.com/pulse/mastering-open-banking-how-masters-openness-create-value-art-stevens/
企業(yè)IT驅(qū)動業(yè)務(wù)轉(zhuǎn)型,將重新定義API經(jīng)濟:https://mp.weixin.qq.com/s/qUV5Z-mZJVdLGu9Mbu7fQA
高盛等巨頭們的“瘋狂”是為開啟API經(jīng)濟時代新商業(yè)模式: https://mp.weixin.qq.com/s/Po_R3sX67xLp7gOxQqBJow
開放銀行發(fā)展研究報告:http://pdf.dfcfw.com/pdf/H3_AP202001141374061095_1.pdf
文/ThoughtWorks 楊政權(quán)
更多精彩洞見,請關(guān)注微信公眾號:ThoughtWorks洞見










