微信支付-H5支付
最近前端给了我一个链接,让我用webView嵌在原生APP当中。这个链接打开之后,经过一番操作,需要使用微信支付。
刚接手的时候一脸懵逼,所有操作都是在h5界面进行的。完全不走Android原生,当然页面是在原生的webView里面展示。APP本身是没有集成微信支付SDK的,所以几乎可能直接调起微信客户端进行支付。只能从webView入手了,webView能做的也不多。
h5返回的支付授权链接不能直接加载(直接加载会显示加载失败)。结合网上的一些资料以及微信支付提供的文档。只能选择拦截支付授权链接。具体操作如下:
web_view?.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
Log.e(TAG, ">>>>>>>网页链接:" + url)
//拦截微信支付链接
if (url?.contains("weixin://wap/pay")!!) {
Log.e(TAG,">>>>>>>微信链接:")
var intent = Intent()
intent.setAction(Intent.ACTION_VIEW)
intent.setData(Uri.parse(url))
startActivity(intent)
return true
}
return super.shouldOverrideUrlLoading(view, url)
}
}
h5页面返回支付授权链接即可进行支付。