微信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的重定向回调。
嗯,支付是接上了。