WebView啟動(dòng)支付寶客戶端支付失敗的問(wèn)題小結(jié)
目前在做一個(gè)用App加載H5網(wǎng)頁(yè),然后在網(wǎng)頁(yè)中調(diào)起支付寶客戶端支付,螞蟻金服的開發(fā)文檔上明確寫有支付寶支持手機(jī)網(wǎng)站支付,所以那就集成唄,但是做完之后出現(xiàn)了一個(gè)問(wèn)題,不知道是不是Android端集成出現(xiàn)了細(xì)節(jié)問(wèn)題,然后再使用支付的時(shí)候,支付寶客戶端具有一定的失敗率,所以失敗了只能采用收銀臺(tái)支付,雖然可以實(shí)現(xiàn)支付,但是體驗(yàn)方面還是達(dá)不到公司的要求。
在H5中啟動(dòng)支付寶我們可以看到這個(gè)界面
他說(shuō)他在嘗試打開,其實(shí)也就是在檢測(cè)是否安裝的支付寶客戶端,但是不知道為什么,有時(shí)候會(huì)失敗,然后就只能走收銀臺(tái)了,但是收銀臺(tái)是需要登錄的,所以體驗(yàn)方面不是很好,但是我嘗試在瀏覽器上訪問(wèn)url的時(shí)候,調(diào)起支付寶客戶端就可以的,不會(huì)出現(xiàn)失敗的情況,看來(lái)我們得想辦法借用瀏覽器的能力來(lái)啟動(dòng)支付寶了。
本地用的是webview,所以攔截url還是比較方便的,通過(guò)打印url,發(fā)現(xiàn)有一個(gè)url是這樣的alipays://platformapi/startApp?
這個(gè)就是檢測(cè)的程序了,然后我們?cè)赪ebView中加入這樣一句話:
public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.contains("alipays://platformapi")) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity( intent ); } else { view.loadUrl(url); } return false; }
意圖很明顯,在檢測(cè)是否安裝支付寶的時(shí)候,借用瀏覽器的能力來(lái)啟動(dòng)支付寶,這樣效果真的不錯(cuò),然后你就會(huì)看見(jiàn)這樣一個(gè)頁(yè)面:
支付寶文檔(官方權(quán)威解釋)
用上述方式做完之后,感覺(jué)有點(diǎn)不安,感覺(jué)并不是使用正規(guī)的渠道來(lái)實(shí)現(xiàn)的,然后又看了看支付寶的APP支付文檔,中間有一個(gè)功能叫做其他接入。
支付寶其實(shí)也早就準(zhǔn)備了這個(gè)功能,但是唯一的區(qū)別就是,這個(gè)手機(jī)網(wǎng)站轉(zhuǎn)原生的實(shí)現(xiàn),我是借助了自帶瀏覽器,而他的實(shí)現(xiàn)是webview和js進(jìn)行交互,攔截url,然后交給支付寶的SDK去處理,原理還是離不開他的SDK,所以他的實(shí)現(xiàn)方式比我的這種要麻煩一點(diǎn),但是絕對(duì)權(quán)威,這點(diǎn)毫無(wú)疑問(wèn),所以看自己怎么選擇了。
以上所述是小編給大家介紹的WebView啟動(dòng)支付寶客戶端支付失敗的問(wèn)題小結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
ES6 Symbol在對(duì)象中的作用實(shí)例分析
這篇文章主要介紹了ES6 Symbol在對(duì)象中的作用,結(jié)合實(shí)例形式分析了ES6 Symbol在對(duì)象中聲明、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-06-06Bootstrap學(xué)習(xí)筆記之css組件(3)
這篇文章主要為大家詳細(xì)介紹了bootstrap學(xué)習(xí)筆記中的css組件,感興趣的小伙伴們可以參考一下2016-06-06全網(wǎng)小程序接口請(qǐng)求封裝實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于全網(wǎng)小程序接口請(qǐng)求封裝的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Popup彈出框添加數(shù)據(jù)實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Popup彈出框添加數(shù)據(jù)的簡(jiǎn)單實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10JavaScript組合模式學(xué)習(xí)要點(diǎn)
組合模式大概是設(shè)計(jì)模式里面使用最為廣泛的模式之一了,模式本身理解起來(lái)也比較簡(jiǎn)單,以至于可以毫不費(fèi)力的寫出一個(gè)能用的組合模式偽代碼2016-08-08基于javascript實(shí)現(xiàn)九九乘法表
這篇文章主要為大家詳細(xì)介紹了基于javascript實(shí)現(xiàn)九九乘法表的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-03-03