欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微信H5支付原生支持

程序员文章站 2022-03-07 08:32:11
...

微信H5支付原生支持

最近有个报错,就是微信支付没办法调用起微信。然后支付中断了。网页端的小伙伴给了一个测试地址

https://wxpay.wxutil.com/mch/pay/h5.v2.php

最后是这样处理的:

private final class NWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
		if (url.startsWith("weixin://wap/pay?")) {
		    try {
		        Intent intent = new Intent();
		        intent.setAction(Intent.ACTION_VIEW);
		        intent.setData(Uri.parse(url));
		        context.startActivity(intent);
		    } catch (Exception e) {
		        Lg.e(e);
		        Toast.makeText(context, context.getString(R.string.please_install_wechat), Toast.LENGTH_LONG).show();
		    }
		    return true;
		} else if (url.startsWith("alipays://platformapi/startApp?")) {
		    try {
		        Intent intent = new Intent();
		        intent.setAction(Intent.ACTION_VIEW);
		        intent.setData(Uri.parse(url));
		        context.startActivity(intent);
		    } catch (Exception e) {
		        Lg.e(e);
		        Toast.makeText(context, context.getString(R.string.please_install_alipay), Toast.LENGTH_LONG).show();
		    }
		    return true;
		}
		return super.shouldOverrideUrlLoading(view, url);
	}
}

自测是可以支付了,但是支付回去之后会循环跳转。大概是这样:

A:https://wxpay.wxutil.com/mch/pay/h5.v2.php
- click pay
B:tenpay
C: payresult
- back
B:tenpay
C: payresult
- back
B:tenpay
C: payresult
....

请教了一下网页端的同事,是因为有一个callback的重定向回调。

嗯,支付是接上了。

相关标签: 支付