溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

WebView啟動支付寶客戶端支付失敗的問題小結(jié)

發(fā)布時間:2020-09-21 15:43:52 來源:腳本之家 閱讀:406 作者:linkw_92 欄目:web開發(fā)

目前在做一個用App加載H5網(wǎng)頁,然后在網(wǎng)頁中調(diào)起支付寶客戶端支付,螞蟻金服的開發(fā)文檔上明確寫有支付寶支持手機網(wǎng)站支付,所以那就集成唄,但是做完之后出現(xiàn)了一個問題,不知道是不是Android端集成出現(xiàn)了細節(jié)問題,然后再使用支付的時候,支付寶客戶端具有一定的失敗率,所以失敗了只能采用收銀臺支付,雖然可以實現(xiàn)支付,但是體驗方面還是達不到公司的要求。

在H5中啟動支付寶我們可以看到這個界面

WebView啟動支付寶客戶端支付失敗的問題小結(jié)

他說他在嘗試打開,其實也就是在檢測是否安裝的支付寶客戶端,但是不知道為什么,有時候會失敗,然后就只能走收銀臺了,但是收銀臺是需要登錄的,所以體驗方面不是很好,但是我嘗試在瀏覽器上訪問url的時候,調(diào)起支付寶客戶端就可以的,不會出現(xiàn)失敗的情況,看來我們得想辦法借用瀏覽器的能力來啟動支付寶了。

本地用的是webview,所以攔截url還是比較方便的,通過打印url,發(fā)現(xiàn)有一個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;
}

意圖很明顯,在檢測是否安裝支付寶的時候,借用瀏覽器的能力來啟動支付寶,這樣效果真的不錯,然后你就會看見這樣一個頁面:

WebView啟動支付寶客戶端支付失敗的問題小結(jié)

支付寶文檔(官方權(quán)威解釋)

用上述方式做完之后,感覺有點不安,感覺并不是使用正規(guī)的渠道來實現(xiàn)的,然后又看了看支付寶的APP支付文檔,中間有一個功能叫做其他接入。

WebView啟動支付寶客戶端支付失敗的問題小結(jié)

WebView啟動支付寶客戶端支付失敗的問題小結(jié)

支付寶其實也早就準備了這個功能,但是唯一的區(qū)別就是,這個手機網(wǎng)站轉(zhuǎn)原生的實現(xiàn),我是借助了自帶瀏覽器,而他的實現(xiàn)是webview和js進行交互,攔截url,然后交給支付寶的SDK去處理,原理還是離不開他的SDK,所以他的實現(xiàn)方式比我的這種要麻煩一點,但是絕對權(quán)威,這點毫無疑問,所以看自己怎么選擇了。

以上所述是小編給大家介紹的WebView啟動支付寶客戶端支付失敗的問題小結(jié),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI