单个APP接入多个微信支付宝支付的一种解决方案
背景
最近在對接微信支付寶支付的時候出現(xiàn)了一個需求,由于我們公司在不同的地區(qū)有分公司,為了實現(xiàn)財務(wù)對賬方便,不同公司的客戶需要打款到相應(yīng)的公司的賬戶,也就是要實現(xiàn)接口分賬,一聽到這個需求,我一臉懵逼,之前做商城的時候,一個APP的收款不管是微信還是支付寶,都是只打到一個賬戶里面去,現(xiàn)在需要實現(xiàn)不管對于微信支付還是支付寶支付都需要有多個支付賬戶,實現(xiàn)接口分賬,當(dāng)時總經(jīng)理提出這個需求,Android跟ios歷史性地異口同聲地說,這個做不到,并且從技術(shù)的角度在那兒跟總經(jīng)理彈了一會兒琴,畢竟還是太年輕了,總經(jīng)理說,這個肯定是可以實現(xiàn)的,因為在他眼里,沒有什么是實現(xiàn)不了的,然后我們就回去搬磚了,然后思考這個問題的解決方案。
分析問題
- 需要實現(xiàn)的技術(shù)點
用戶支付的時候,根據(jù)用戶的uid,來把錢達到相應(yīng)的賬戶里面去,判斷身份很簡單,問題主要在于如何使得一個APP接入多個微信或者支付寶賬戶,下面來逐個分析一下微信跟支付寶的接入方式
- 微信
對接過微信支付的應(yīng)該很熟悉上面的這些東西,首先你得去微信開放平臺注冊一個賬號,一年300塊錢,然后再在這個賬號里面開通微信支付功能,所以一開始我們嘗試的就是不停地去騷擾微信客服,問問能不能通過一個微信支付賬號進行接口分賬,每次那邊的回答都是不可以,然后又問一個APP能不能申請多個微信支付賬號,那邊回答也說是不可以,臥槽,基本上到這個份上,我們已經(jīng)是放棄了,因為如果一個APP不能申請多個微信支付賬號,那么微信基本上是做不了接口分賬了,當(dāng)時IOS了解到的微信支付情況是這個樣子的,下面看看支付寶的過程。
- 支付寶
支付接入的時候其實也比較郁悶,苦逼之處在于支付寶以前是支持接口分賬的,也就是只需要注冊一個支付寶主賬戶,然后在注冊幾個子賬戶就可以進行接口分賬,只是我們的APP生不逢時,支付寶關(guān)閉了這個服務(wù),而且那邊的客服也是說一個APP只能注冊一個支付寶賬戶
發(fā)現(xiàn)希望
基本上到這里,我們已經(jīng)打算放棄了,因為畢竟跟我們最初的設(shè)想是一樣的,但是還是有點不甘心,因為在跟支付寶的技術(shù)客服,注意是技術(shù)客服,不是普通的人工客服,當(dāng)時跟他說了一下我們的使用場景,他說可以通過注冊多個支付寶賬號,其實這一點跟我之前的設(shè)想是一樣的,因為Android在介入支付寶的時候不需要應(yīng)用的簽名,可以通過服務(wù)端動態(tài)下發(fā)簽名,從而調(diào)起支付寶支付,我突然間好像明白了什么,因為之前的思路走不通的原因在于總是想通過一個APP來注冊多個支付寶賬號,沒有想到用多個支付寶賬戶來實線曲線救國。
支付寶實現(xiàn)接口分賬
- 注冊支付寶賬戶
支付寶支付跟微信支付最大的區(qū)別在于Android客戶端的接入,需要應(yīng)用的簽名,所以如果用兩個APP注冊的話勢必會導(dǎo)致簽名不一致,支付寶的注冊只需要填寫一個應(yīng)用名稱就好了,注意應(yīng)用名稱不能一樣,否則會失敗。
基本上到這里,支付寶實現(xiàn)接口分賬的鏈路打通了,測試也完全通過,吼吼
微信實現(xiàn)接口分賬
對于微信來說,一個APP對應(yīng)唯一的APPID,注冊信息大致如下:
微信支付應(yīng)用名稱 微信支付應(yīng)用信息受到支付寶的啟發(fā),能不能注冊在微信開放平臺注冊兩個賬號,然后申請兩個微信支付賬號,只不過這兩個賬號除了名稱不一樣以外,其余地全都一樣,不過雖然這么想還是有點虛,因為IOS在跟客服溝通的時候客服只是說同一個APP只能申請一個微信支付賬號,但是我們反問客服微信的判斷規(guī)則是什么的時候,微信那邊卻說不知道,如果是名稱,那么就能夠通過審核,如果是應(yīng)用的包名或者bundleid那基本上微信接入原生的APP支付徹底走不通了。
當(dāng)時是分了兩步走,總經(jīng)理說微信支付必須得接入,萬一不行只能接入微信H5支付,因為H5的話就可以實現(xiàn)動態(tài)下發(fā)了。所以當(dāng)時H5支付跟原生支付的賬號同時在申請,服務(wù)端那邊也是在做兩手的準(zhǔn)備,比較苦逼。最后萬幸的是,微信是通過應(yīng)用名稱來判斷APP的唯一性,很幸運,可以完全放棄H5支付了,微信支付接口分賬也打通了。
小結(jié)
這篇文章沒有涉及到任何技術(shù),但是這次實現(xiàn)一個APP實現(xiàn)多個接口分賬,確實讓我感觸很多,很多時候,我們在做一件事情的時候,會調(diào)用我們以往的經(jīng)驗,有好也有壞,之前做的支付都是單個微信支付寶,按照之前的經(jīng)驗,在嘗試之前就做出了錯誤的判斷,很多時候還是需要敢于拆掉思維里的墻,去嘗試一些新東西,包括在實現(xiàn)一些功能的時候,要勇于嘗試一些新的思維,新的解決方式,尤其是在用已有的知識實現(xiàn)不了或者實現(xiàn)起來比較痛苦的時候,畢竟改變是痛苦的,不改變只會更加痛苦。
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的单个APP接入多个微信支付宝支付的一种解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zsh vs. Bash不完全对比解析,
- 下一篇: 图形参数