簡易支付平臺(已對接微信支付)

      最近H5開發的app需要對接微信支付,我想的是公司貌似開沒有支付平臺,聽說了另一個項目也要對接支付。爲了宇宙的和平,我想就提出來單做,所以說幹就幹,不考慮那麼多,只要自己認可自己就行。

一、支付平臺的核心意義思考

        最近看到很多程序員方面的書,都提到細思慢想,讓編碼時間儘可能少。所以我就從做支付的意義開始思考,發散開來。其實對於我們目前需要來說就是完成支付,老大給我的時間也就是1周,這1周我要想像其他聚合支付一樣做的你們牛x,那就有點吹牛了。所以先階段先當爲公司支付平臺起個頭吧。

         在我看來支付的核心就是我發起支付,然後完成支付,最後你告訴我支付結果,這就是支付平臺的意義。所以架構懟我來說一下就簡單了。

二、簡易平臺交互流程設計

就是這麼簡單,對接的業務系統發起支付前,先調用支付中心,生成預支付信息,支付中心存庫預支付信息。調用的時候業務系統通過鏈接進入支付中心(攜帶預支付單號)。微信H5支付會校驗referer,不存庫,把支付信息通過鏈接全部帶過來沒走通,而且回調的url必須在商戶平臺設置域名,如果多個平臺對接支付,那微信哪裏最多隻讓設置5個,肯定是不夠用的。所以支付中心單獨使用公司的二級域名:xxx.xxxx.com,在微信商戶平臺配置這一個就行了。另外微信的開發文檔寫的真是稀爛,雲裏霧裏的,之前配置的地方說設置一級域名其下的二級域名也有權限了,實際是扯淡忽悠。

三、架構接口設計

        按照這個簡單的設計要接入支付就是2調1鏈

第一次:支付前調用支付中心預支付接口,生成預支付信息

鏈接:通過支付中心url,參數拼接source業務系統來源(由支付中心告知),payNo業務單號(業務系統自行生成,不能含有“-”符號)

第二次:支付中心回到業務系統後,自主發起調用查詢支付結果

接口設計我就不能告訴大家了,大家按照上面的思路設計,安全這塊可以在鏈接Url上做文章。

四、給大家看看效果吧

微信瀏覽器(jsAPI):

1.   

3. 

非微信瀏覽器(H5

1.

 2  

 

 

 

支付成功/支付異常提示的頁面與上面一致。

網頁二維碼支付

這個暫時做的還比較粗糙,還有很大的優化空間。頁面也還要美化美化,我這一個後端做這個效果,其實我已經覺得不錯了。簡易支付中心就基本完事了,對於業務系統與支付中心間的鑑權可以自己設計,或者使用大家公司自己的加密方式。其他還有很多查賬、支付訂單等都還沒有集成進去。這裏的二維碼使用的是zxing,中間的logo因爲是springboot,讀取靜態資源大家可能會遇到路徑問題,我這裏也遇到了,解決思路是先讀臨時文件,如果沒有就從jar裏讀取到流文件,寫到臨時文件。

      其實在這個基礎上還可以錢不收到自己公司,可以直接收到第三方公司,那我們也只是需要增加第三方相關參數維護信息表。大家自己想想吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章