快捷支付的本質:拆解掃碼支付的實現原理
如今在中國,二維碼支付已經成為了人們最重要的支付方式。本文回答了二維碼的種類、原理、互聯互通的邏輯以及掃碼住背后資金流的走向問題。
目前在大街小巷,掃碼支付已經成為了最受歡迎的支付方式,那么大家是否會好奇這背后的支付原理是怎樣的?
同時我近期看到央行開始主推“標準條碼互聯互通”的新聞,感覺還挺有趣的,于是抽空對掃碼支付進行了一次大梳理,也順便分享出來。那么通過這篇文章,我將主要介紹三件事:
- ?常見主掃和被掃支付的原理?
- ?常見的靜態聚合碼是如何實現一碼多付的?
- ?條碼支付互聯互通是什么?有什么價值?以及可能會如何實現的?
一、掃碼支付
我們常見的掃碼支付主要分為主掃(你掃商家)和被掃 (商家掃你)兩種;
要特別講明白掃碼支付,就不得不提一下二維碼這個plus的東西。我們生活中存在各種應用二維碼的東西,如掃碼加好友,掃碼下載app,掃碼支付等,同時也存在條形碼,類似超市的付款條碼,商品條碼等。
與條碼相比,二維碼記錄信息容量更大,具有容錯性,所以是當前最受歡迎的一種記錄形式。
二維碼/條碼都是一種加密的信息承接載體,都是將復雜的東西簡化給我們呈現出來。
當我們通過掃一掃進行掃描二維碼的時候,實際上就是通過一定的規則將二維碼里面的內容解析出來,比如地址合法性,是不是支付鏈接,還是外鏈網址之類的。
1. 主掃的原理
1)先睹為快
2)主掃支付的流程
3)主掃的核心邏輯
在我們實際的過程中,經常會出現支付寶掃支付寶二維碼有時會提示已失效,掃其他二維碼會告知不可用,那么這里掃碼的原理是怎樣的,做了哪些具體判斷呢?
- 判斷二維碼鏈接是不是支付鏈接;
- 判斷該支付鏈接是不是自家的。如果不是,則攔截,目前支付寶的支付鏈接是“https://qr.alipay.com…”,則允許通過請求服務器,但如果檢測是“https://qr.wx.com…”,說明是微信支付鏈接,支付寶則反手就給你屏蔽了~
- 之后再去解析二維碼是否符合自家規則,目前支付寶的二維碼是“28”開頭,微信一般是”13“開頭;解析之后,再判斷二維碼是否有效;有效則進行支付即可;無效則提示二維碼失效。
2. 被掃的原理
場景:我們去超市買東西經常都會要求打開付款碼,然后掃碼槍進行掃碼支付。
特點:操作步驟簡單、支持離線付款、付款效率高
1)先睹為快
或許在這里很多人會納悶這里有條形碼和二維碼,最終的支付到底是掃條形碼還是二維碼呢?
其實這里取決于掃碼槍,現階段市面上有兩類:一維掃碼槍 (僅可以支持掃條形碼)和二維掃碼槍(兩個都可以掃)。
2)被掃付款邏輯
- 用戶打開付款碼;
- 收銀員輸入用戶應付款金額,并生成訂單;
- 掃碼槍掃碼之后,將訂單提交給商家收銀臺系統;
- 商家收銀臺系統將訂單推給商家后臺;
- 商家后臺將訂單推給支付寶請求完成扣款;
- 支付寶扣款成功,通知商家后臺系統,同時給用戶發送消息通知。
以上如果商家不是直連支付寶/微信,而是對接其他三方支付公司,那么支付訂單可由商家推給支付寶/微信官方,改為推給對接的三方支付公司即可。一旦支付寶扣款成功,那么對接的支付公司會回調通知商家這筆訂單的支付結果。
3. 主掃和被掃的對比
相同點:
- 兩者的基本原理都是一樣的;
- 掃碼支付的限額都比較低,遠低于網銀支付;
不同點:
- 用戶主動操作對象不一樣,一個是用戶,一個是商家;
- 被掃的話,在用戶付款碼中就會包含用戶的唯一ID標識,支付寶/微信可以直接找到該用戶完成扣款操作。
4. 異常情況處理
在我們進行掃碼支付時,其實也會出現一些故障,那么針對這些故障,一般會有什么補救措施呢?
1)掃碼槍付款時,突然網絡不穩定不確定是否已付款了怎么辦?
答:出現網絡不穩定,可以由兩種處理方式:
- 可以調用查詢接口去主動查詢微信/支付寶渠道該筆訂單是否已支付;如已支付,則就會更新訂單狀態;
- 直接調用訂單撤銷接口,即不管用戶有沒有完成付款,這筆訂單終止,已付款則會退回余額;
2)出現重復支付的問題怎么辦?
答:系統作自動退款處理。一般重復支付指的是一個商品重復請求多次,并且多次完成支付了。針對這種情況,商家所接入的支付機構會判斷出來,同時會作自動退款處理的。
二、靜態聚合碼
正常來講:支付寶和微信的二維碼是不互通的,支付寶不會支持微信的二維碼進行付款。而近幾年我們經??吹缴碳屹N出靜態聚合碼,消費者通過這個碼使用微信付款,也可以使用支付寶付款,那么這里面的邏輯是怎樣的呢?
1. 實現原理
任何支付行為都是通過一個支付鏈接來完成,而支付鏈接內容會包括必要信息,如來源、金額、商戶信息等。
而每個支付鏈接只能其對應的服務端處理,即用戶使用支付寶二維碼完成支付行為的,最終付款會指向支付寶的服務端的;而微信二維碼則會指向微信的服務端。
要實現上述的聚合碼付款,那么就需要一個前置的中間環節,需要這樣的一個通用的二維碼來優先判斷付款來源方。在技術實現上會有userAgent來判斷用戶來自哪種客戶端。如果是MicroMessenger 則表示微信;AlipayClient是支付寶。
1) 時序圖如下
2) 大概流程圖
- 用戶通過微信/支付寶掃描靜態聚合碼;
- 系統判斷掃碼來源是微信還是支付寶;技術層面一般會用userAgent進行區分;
- 確認來源后請求對應的渠道,如確認是支付寶,則直接請求支付寶進行支付即可;
- 支付完成,異步通知商戶對應的支付結果;
聚合二維碼的推出,的確提高用戶和商戶的便利性;同時也會幫助商戶實現統一對賬功能,解決財務上對賬難的煩惱。
三、條碼互聯互通
1. 背景
中國人民銀行印發銀發【2019】209號文件,明確指出要推動條碼支付互聯互通。簡單的講就是以后要推動支付寶app可以去掃微信二維碼進行付款啦。
部分文件內容如下:
2. 互聯互通的價值
央行主推條碼業務進行互聯互通,至少有三個價值點:
1)為商家和用戶提供便利
對于商家而言,無需在提供一堆不同的二維碼,也無需中間的聚合服務商賺差價;對于用戶而言,也無需識別區分是何種二維碼,打開app掃一掃就對了。
2)梳理規范,降低風險
更多二維碼交易,將會通過銀聯/網聯進行清算,交易更加規范和統一,有利于風險共享和識別,對監管有利;降低聚合支付的市場空間,有利于保持秩序。
3)打破市場競爭壁壘,更加有利于公平
相對更公平一些,而市場格局不會發生太大變化。同樣的,在“斷直連”之后對于市場格局也并未影響支付寶微信的市場份額。
支付互聯互通之后,那么更多拼的是服務和價值;誰的服務好,提供的價值多,誰就能占據更多的用戶。
3. 如何實現互聯互通
清算機構:是指銀聯和網聯這兩家具有資金清算能力的機構,簡稱央媽的一胎和二胎。每天資金的清結算均有這兩家處理,所有的支付公司、銀行都會在清算機構里面開立賬戶。
實現互聯互通,我認為至少要做好以下兩件事情:
- 清算機構重新制定支付二維碼規范;所有支付機構和銀行均得統一參與;
- 不同支付機構的二維碼要互認互掃。就是支付寶掃碼發現是微信支付鏈接,不能直接屏蔽告訴用戶不能支付,而是要繼續完成支付,最后將用戶的賬戶資金扣減。
說明:
- 打開支付寶掃一掃功能去掃微信付款碼;
- 商家層面會請求所對接的支付機構進行預下單處理,如微信;
- 支付寶層面受理到該微信支付鏈接,則允許支付寶用戶下單支付;
- 用戶端完成支付寶扣款100元(以100為例);商家層面提示微信收款完成,并記賬100元;
- 清算機構準實時給支付寶、微信調賬處理。微信加100元;支付寶減100元;清分完畢!
4. 資金怎么流向
在資金流層面,基本有一條恒定規則:用戶哪款app去付款,就是扣誰的錢;
舉例:就算是實現互認互掃之后,用戶用支付寶掃微信商家收款碼;那么扣款對象一定是用戶支付寶賬戶,而收款對象為微信商家。
示例展示如下圖所示:
- 用戶用支付寶付款,對應支付寶賬戶減少100元;
- 清算機構會對支付寶、微信等支付機構進行調賬調整通知,分別是:支付寶在清算機構的賬戶減少100元,微信對應的賬戶增加100元;
- 微信在清算機構的賬戶余額增加100元,則對應給其商戶賬戶增加100元。最終實現資金對平。
四、小結
聊到這里,掃碼支付的出現,已經極大的方便了用戶的付款操作,讓我們大步踏向“無現金”時代啦。
同時為了更清楚闡述掃碼支付,我們現在再追本溯源一下,掃碼支付的本質到底是什么呢?造就它的底層是什么呢?
其實就是快捷支付。
因為快捷的簽約綁卡后,通過簡單的驗證就可以完成扣款操作;這種便利性造就了掃碼支付的繁榮,也會造就后續刷臉支付的繁榮。
作為文章的結尾,再送上自己對于這個拆解主題的產品思考,分為5個維度:
1)梳理產品的應用場景,建立概念模型;即我們在哪些場景使用掃碼支付的,這個場景的表述決定用戶對產品的接受程度。
2)確立產品價值;掃碼支付已經成為最主流付款方式,與生活密不可分,提高付款效率,這是掃碼支付的產品價值;但掃碼背后的邏輯大家都會比較忽視,而將它呈現出來讓更多感興趣的人理解,這也是文章的最大價值。
3)拆解業務流程的關鍵角色;關注產品的參與角色方,是讓我們快速了解產品的關鍵點;比如掃碼支付的關鍵角色:用戶端、商戶端、微信端/支付寶端、清算機構。只有拆解這些,整個的思路會更清晰。
4)確立產品核心流程,以及底層技術的實現方式。首先確立產品層面的核心流程。即:根據關鍵角色之間會如何形成交互關聯,信息傳遞的;哪些信息的關聯是這個業務不會變的?比如普通掃碼支付和靜態聚合碼支付的相同點是什么,這個相同點就是業務所不變的。而底層的技術考慮主要是方便驗證產品思路的可行性。
5)簡化呈現出來。對于一件事情真正弄懂的關鍵判斷條件之一,就是:盡可能將原本復雜的底層邏輯簡化為形象簡單的事情表述出來,用戶聽的越清楚,則表明自己懂的越透徹。
作者:JANMING;公眾號:產品思考隨筆
本文由 @JANMING 原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
代付、快捷、網銀、掃碼這些產品有什么區別
通俗易懂,很受益 ,謝謝分享
結尾贊??
那么問題來了,用戶A在支付寶被扣的錢,商家b也是在支付寶收錢。那么錢都是歸支付寶管理,那支付寶為什么要扣了錢后給微信加錢呢?
主動是不可能的,這時就需要央媽來定規矩了,既可實現監管需要,又可以謀求統一
都是用支付寶付款和加款是跟微信沒關系呀
你邏輯有問題
注意用戶支付的平臺和收款商戶的收款的平臺啦
情景一:用戶A使用支付寶掃支付寶的商家碼,資金都是支付寶管理,不需要清帳;
情景二:用戶B使用支付寶掃了微信的商家碼,并支付100元,為了讓兩個資金的流向層面互通,支付寶用戶C的支付寶賬號減少了100,微信商家的微信賬戶自然需要增加了100元的。
更多咨詢,請查收個人公眾號:產品思考隨筆