WebView啟動(dòng)支付寶客戶(hù)端支付失敗的問(wèn)題小結(jié)
目前在做一個(gè)用App加載H5網(wǎng)頁(yè),然后在網(wǎng)頁(yè)中調(diào)起支付寶客戶(hù)端支付,螞蟻金服的開(kāi)發(fā)文檔上明確寫(xiě)有支付寶支持手機(jī)網(wǎng)站支付,所以那就集成唄,但是做完之后出現(xiàn)了一個(gè)問(wèn)題,不知道是不是Android端集成出現(xiàn)了細(xì)節(jié)問(wèn)題,然后再使用支付的時(shí)候,支付寶客戶(hù)端具有一定的失敗率,所以失敗了只能采用收銀臺(tái)支付,雖然可以實(shí)現(xiàn)支付,但是體驗(yàn)方面還是達(dá)不到公司的要求。
在H5中啟動(dòng)支付寶我們可以看到這個(gè)界面

他說(shuō)他在嘗試打開(kāi),其實(shí)也就是在檢測(cè)是否安裝的支付寶客戶(hù)端,但是不知道為什么,有時(shí)候會(huì)失敗,然后就只能走收銀臺(tái)了,但是收銀臺(tái)是需要登錄的,所以體驗(yàn)方面不是很好,但是我嘗試在瀏覽器上訪問(wèn)url的時(shí)候,調(diào)起支付寶客戶(hù)端就可以的,不會(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中加入這樣一句話(huà):
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)威解釋?zhuān)?/p>
用上述方式做完之后,感覺(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去處理,原理還是離不開(kāi)他的SDK,所以他的實(shí)現(xiàn)方式比我的這種要麻煩一點(diǎn),但是絕對(duì)權(quán)威,這點(diǎn)毫無(wú)疑問(wèn),所以看自己怎么選擇了。
以上所述是小編給大家介紹的WebView啟動(dòng)支付寶客戶(hù)端支付失敗的問(wèn)題小結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
淺談Javascript中substr和substring的區(qū)別
這篇文章主要介紹了Javascript中substr和substring的區(qū)別,非常的簡(jiǎn)單明了,有需要的小伙伴可以來(lái)仔細(xì)看看。2015-09-09
淺談js對(duì)象的創(chuàng)建和對(duì)6種繼承模式的理解和遐想
下面小編就為大家?guī)?lái)一篇淺談js對(duì)象的創(chuàng)建和對(duì)6種繼承模式的理解和遐想。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
利用js判斷手機(jī)是否安裝某個(gè)app的多種方案
這篇文章主要介紹了利用js檢測(cè)手機(jī)是否安裝某個(gè)app的多種方案,當(dāng)判斷后如果安裝了直接打開(kāi),如果有沒(méi)有安裝將自動(dòng)跳轉(zhuǎn)到下載的界面,有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-02-02
通過(guò)js簡(jiǎn)單實(shí)現(xiàn)將一個(gè)文本內(nèi)容轉(zhuǎn)譯成加密文本
將文本內(nèi)容轉(zhuǎn)譯成加密文本,在某些情況下還是比較實(shí)用的,下面通過(guò)js簡(jiǎn)單實(shí)現(xiàn)下,感興趣的朋友不要錯(cuò)過(guò)2013-10-10
javascript靜態(tài)頁(yè)面?zhèn)髦档娜N方法分享
這篇文章介紹了javascript靜態(tài)頁(yè)面?zhèn)髦档娜N方法及優(yōu)缺點(diǎn),有需要的朋友可以參考一下2013-11-11
json 帶斜杠時(shí)如何解析的實(shí)現(xiàn)
這篇文章主要介紹了json 帶斜杠時(shí)如何解析的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
js使用cookie實(shí)現(xiàn)記住用戶(hù)名功能示例
這篇文章主要介紹了js使用cookie實(shí)現(xiàn)記住用戶(hù)名功能,涉及javascript操作cookie讀寫(xiě)及刪除實(shí)現(xiàn)用戶(hù)名的保存功能,需要的朋友可以參考下2019-06-06

