Android H5调起原生微信或支付宝支付

 WebView调用原生微信或支付宝回调:其原理就是在shouldOverrideUrlLoading(final WebView view, String url)方法中进行拦截处理。

由于支付宝的取消支付之后跳转的页面显示不太友好,所以集成支付宝SDK-手机网站支付转APP支付,说明文档参照https://docs.open.alipay.com/204/105695/。按照说明集成aliPaySdk。

初始化WebView:

private void initWebView(){
    WebViewUtil.webSettingsApply(mWebView.getSettings());
    mWebView.setWebViewClient(new MyWebViewClient());
    mWebView.setWebChromeClient(new WebChromeClient(){
        @Override
        public void onReceivedTitle(WebView view, String title) {
            super.onReceivedTitle(view, title);
            if(!TextUtils.isEmpty(title) && mTitle != null) {
                mTitle.setText(title);
            }
        }
    });
    mWebView.loadUrl(mUrl);
}

覆写url加载:

 private class MyWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(final 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));
                H5PayActivity.this.startActivity(intent);
                return true;
            }catch (Exception e){ //异常处理
                view.goBack(); // 因为会出现有一个weixin空白页面;根据需求自己处理
                UIUtil.showToastShort("系统检测未安装微信,请先安装微信或者用支付宝支付");
                return true;
            }
        }

        // 支付宝支付处理
        final PayTask task = new PayTask(H5PayActivity.this); 
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信