H5 通用收银台实战总结
收銀臺的定位
為業務提供安全、多樣化的收/退款能力,對業務屏蔽支付大小類和收款賬戶的復雜路由,對支付網關屏蔽復雜的業務場景。
解釋一下收銀臺為什么要提供退款能力?
我們都知道超市里的收銀臺只負責收錢,退錢需要去服務臺。
但是線上的系統設計不能照搬線下的模式,交易類場景不能憑空產生一筆退款,一定要在某筆收款的基礎上才能產生退款,因此,退款能力放在收銀臺不管是校驗正向的收款數據,還是生成退款數據都是很方便合理的。
如果退款獨立出去,只能增加系統的復雜度。同一個系統內有進有出,這樣才能做到數據的完整閉環。
收銀臺僅提供退款能力,具體還是要由業務觸發,比如我們??吹降摹巴丝睢?#xff0c;“取消訂單”按鈕,都是業務入口,這個入口就等價于超市里的服務臺。
收銀臺概覽
頁面功能分區
借用“多點收銀臺”的截圖,介紹一下功能分區。小小頁面,背后卻大有乾坤。
圖中沒有“商品名稱區”,如果需要展示,一般放在“金額區”下面。
圖中“支付方式選擇區”占比最大,底層邏輯也是最復雜的一部分,下面重點介紹一下這個區域。
之所以復雜,原因是為了追求最佳的支付體驗,哪些環境、哪些業務場景展示哪些支付方式是動態確定的,比如說微信環境展示了支付寶,由于眾所周知的原因,又不能直接拉起支付寶支付,體驗更無從談起了。
哪些環境?
APP環境(如果業務涉及多個APP,比如普通版、極速版,需要細分)
H5環境(個人感覺沒必要再細分PC、手機了)
微信環境、小程序環境、公眾號環境
支付寶環境、支付寶小程序環境
或者嵌入其他APP的環境(例如抖音、快手...,需要細分,便于環境隔離)
負責跳轉收銀臺頁面的上游,需要把環境的關鍵信息帶給收銀臺,可以放在UA中(要注意頁面分享、跳轉,可能導致UA信息丟失),這樣收銀臺才能根據當前環境來展示相應的支付方式了。
一般APP環境支持所有支付方式,微信和支付寶互斥,其他視具體環境而定。
哪些業務場景?
優先級低于環境,和業務緊密相關,例如存在套現風險的業務場景(例如充值后能提現)不能支持信用卡、某些業務場景只需要微信支付寶就行...
一般需要依托類目關系,粒度盡量細一些(一般業務2~3級類目就可滿足),能夠靈活支撐業務訴求。
展示哪些支付方式?
用戶看到的都是支付方式的大類,是根據上面兩大條件確定的。
背后具體是哪個支付小類,主要是根據環境來確定的。比如你看到的支付寶,在APP環境背后的小類是支付寶APP支付,在H5環境背后的小類又會變為支付寶網站支付。因為不同的小類,對應三方的不同支付能力,收銀臺要拉起的支付組件也不同。
配置
配置這一塊非常重要,如果設計不好,后面不管是接入新的支付方式,還是新的業務場景接入,都不可能做到靈活擴展。
需要根據自身業務場景,把配置信息分類,劃分出不同的維度,各維度配置相互隔離,獨立變化。
例如概覽圖中的幾個維度:支付方式列表、倒計時、商品名稱、收款賬戶、退款賬戶。
而每個維度變化的因子,基本都是和業務相關的,主要是和類目系統對應,更細分的話還可以加上訂單、賬單類型(可能預付、后付訴求不同)、城市(不同城市收款賬戶不同,一般公司業務不會涉及)、時間(灰度使用)。
上面幾個維度中,支付方式列表和收款賬戶的配置最為復雜。
支付方式列表是由環境和業務場景共同決定的,最終展示結果是兩套配置的交集,代碼邏輯要能滿足這種配置方式。
收款賬戶對上游是完全透明的,但為了滿足財務核算要求,各業務線會有獨立的收款賬戶,一般收款賬戶配置的粒度不用太細,區分到業務品類就可以。除了滿足常規的賬戶配置,還要考慮到更換賬戶的場景,要能夠滿足過渡期,還要兼容老賬戶的退款。
退款
收銀臺的退款只面向上游系統,不面向用戶。
系統自動原路退款
下面幾種場景,系統要能夠自動把多余支付的錢退還給用戶。
1)同一賬單,在2個端進入收銀臺后,都發起支付,兩筆都會支付成功,需要退還一筆
2)在賬單即將自動關閉前,喚起三方支付頁面(微信/支付寶...),系統在收到三方支付成功通知后,發現賬單已關閉,需要退還這筆支付
3)由于種種原因,賬單未關閉,但上游訂單已關閉,上游系統在收到支付成功通知后要觸發系統自動原路退款
業務普通原路退款
正常的業務退款,上游業務系統根據自身業務場景調用即可。
非原路退款
1)退款時效超過了三方支付通道的退款時間限制
2)用戶原先支付的賬戶注銷了
這兩種場景都無法通過原路退的方式把錢退還給用戶,需要用戶提供其他收款賬戶來接收退款。
這種場景的概率很小,可通過銀行卡轉賬方式退給用戶,同時要保證數據的完整性,根據原路退款失敗的記錄新生成一筆非原路退款數據。
安全
數字簽名
業務跳轉到收銀臺頁面,必須要帶上簽名信息,收銀臺來驗證簽名是否正確,信息是否被篡改。
簽名信息的關鍵要素可以包含,訂單ID、賬單ID、金額、環境來源等等
風控
主要是為了避免刷單、套現操作,可以接入風控系統,根據支付場景配置風控規則。
退款白名單
退款是直接從公司賬戶出錢,為了避免資損,退款的安全性一定要保證。
一般直接上游系統沒幾個,加上IP白名單控制。
退款金額也要做嚴格控制,不能多退(計算可退金額時要減去退款中的金額)。
原創不易,多多關注,一鍵三連,感謝支持!
總結
以上是生活随笔為你收集整理的H5 通用收银台实战总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android midi 分析,MIDI
- 下一篇: ADA集成开发环境GNAT-GPS的版本