Android原生WebView調(diào)用微信H5支付出現(xiàn)【請在微信外打開訂單,進行支付】

這是樓主寫的第一篇博文,我的博文特色就是一擊必中。如果你的問題是這樣的,那么快速瀏覽找到解決方案,如果不是,關(guān)閉文章,繼續(xù)去探索吧~~

問題:

Android在對接H5支付的時候,出現(xiàn)了這樣一個問題。明明是在android原生的調(diào)用的H5支付鏈接,可是報錯【請在微信外打開訂單,進行支付】,提示很明顯,在發(fā)起微信支付的時候,認為我是在微信中打開的,所以不讓支付。

上圖:

探索過程:

當然就是百度了,百度了好多次,竟然沒有發(fā)現(xiàn)這樣的問題。所有的回答全是,在瀏覽器打開,不要在微信打開??晌颐髅骶褪窃谧约簩懙腤ebView中打開的啊,真讓人頭大。

上圖:

問題原因:

原來是在進行webView設(shè)置的時候,多了這兩句代碼。

String ua = settings.getUserAgentString();

settings.setUserAgentString(ua + " MicroMessenger/4.5.255");

問題剖析:

android通過微信內(nèi)置瀏覽器訪問網(wǎng)頁得到的user agent為

Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255

也就是說,微信是通過判斷MicroMessenger關(guān)鍵字來鑒別是不是微信內(nèi)置瀏覽器,所以才會報錯。

解決方案:

去掉這個用戶代理(userAgent)就行了。

總結(jié):

自己不了解的代碼不要隨便拷貝過來就加上,一定要弄明白這些代碼的意義,不然你出現(xiàn)的問題,度娘都沒法幫你解決。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容