您好,登錄后才能下訂單哦!
目前在做一個用App加載H5網頁,然后在網頁中調起支付寶客戶端支付,螞蟻金服的開發文檔上明確寫有支付寶支持手機網站支付,所以那就集成唄,但是做完之后出現了一個問題,不知道是不是Android端集成出現了細節問題,然后再使用支付的時候,支付寶客戶端具有一定的失敗率,所以失敗了只能采用收銀臺支付,雖然可以實現支付,但是體驗方面還是達不到公司的要求。
在H5中啟動支付寶我們可以看到這個界面
他說他在嘗試打開,其實也就是在檢測是否安裝的支付寶客戶端,但是不知道為什么,有時候會失敗,然后就只能走收銀臺了,但是收銀臺是需要登錄的,所以體驗方面不是很好,但是我嘗試在瀏覽器上訪問url的時候,調起支付寶客戶端就可以的,不會出現失敗的情況,看來我們得想辦法借用瀏覽器的能力來啟動支付寶了。
本地用的是webview,所以攔截url還是比較方便的,通過打印url,發現有一個url是這樣的alipays://platformapi/startApp?
這個就是檢測的程序了,然后我們在WebView中加入這樣一句話:
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; }
意圖很明顯,在檢測是否安裝支付寶的時候,借用瀏覽器的能力來啟動支付寶,這樣效果真的不錯,然后你就會看見這樣一個頁面:
支付寶文檔(官方權威解釋)
用上述方式做完之后,感覺有點不安,感覺并不是使用正規的渠道來實現的,然后又看了看支付寶的APP支付文檔,中間有一個功能叫做其他接入。
支付寶其實也早就準備了這個功能,但是唯一的區別就是,這個手機網站轉原生的實現,我是借助了自帶瀏覽器,而他的實現是webview和js進行交互,攔截url,然后交給支付寶的SDK去處理,原理還是離不開他的SDK,所以他的實現方式比我的這種要麻煩一點,但是絕對權威,這點毫無疑問,所以看自己怎么選擇了。
以上所述是小編給大家介紹的WebView啟動支付寶客戶端支付失敗的問題小結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。