アンドロイド遭遇したマイクロチャネルの有料H5ピットを呼び出します

       私はいくつかの時間前に遭遇した、あなたは非常に過敏にし、開発プロセスは、我々はマイクロチャネル支払いはH5でアクセスする必要があるかもしれませんが、あなたには、いくつかのピットアクセスプロセスを経験することが、今日の仕上げ物事が思うつまずいたときに、その後、あなたはそれを共有することについて書きたいです!通常時は、支払いをプルアップすることができ、そして支払いが成功しているが、ショーは久しぶりに引っ張られたときに1日は突然別の公衆電話にそれを見つけるの後に可能です::遭遇したような状況であり、しばらくお待ちくださいシステムがビジー状態でありますもう一度お試しください!そして、あなたはオンライン検索ソリューションを開始し、それらのほとんどは、右キーとその他のパラメータを言うために発見され、その後、あなたがチェックするのは非常に努力して開始し、それが正しいですが、支払う余裕がないことができたあなたが感じるしようとしているこの時、プルにあります爆発します!私はピットに遭遇した方法についての今日の話は解決されます。

        次のようにまず、あなたはマイクロチャネルの有料H5を呼び出す方法を知っておく必要があり、私はここで使用していることは、デモです:     

        webView = findViewById(R.id.webview);
        WebSettings settings = webView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setDefaultTextEncodingName("UTF-8");
        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        webView.setWebChromeClient(new WebChromeClient());
        WebViewClient webViewClient = new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // 此处log 最终让我发现了问题根源
                Log.i("AAAAAA", "shouldOverrideUrlLoading: ---url = "+url);
                // 如下方案可在非微信内部WebView的H5页面中调出微信支付
                if (url.startsWith("weixin://wap/pay?")) {
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_VIEW);
                    intent.setData(Uri.parse(url));
                    startActivity(intent);
                    return true;
                } else {
                    Map<String, String> extraHeaders = new HashMap<String, String>();
                    // 此处连接为申请微信H5支付的时候填写的域名
                    extraHeaders.put("Referer", "http://wxpay.wxutil.com");
                    view.loadUrl(url, extraHeaders);
                }
                return true;
            }

            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error) { // 重写此方法可以让webview处理https请求
                handler.proceed();
            }
        };
        webView.setWebViewClient(webViewClient);
        webView.loadUrl("https://wxpay.wxutil.com/mch/pay/h5.v2.php");

       その後、shouldOverrideUrlLoadingログを追加するには、次の方法を観察した後、インターセプトさのパラメータ内のリンクを見つけるパッケージ欠損値を、ここで私は、繰り返し検証した後、約Tucaoしたいことを見つけ、パッケージを値が空の場合でも、ほとんどの時間もマイクロチャネル給与がプルアップされています、そして成功した支払いが、別のマシンや時間をかけて、この非常にピットで失敗する可能性があり、調査および背景クラスメートの後、あなたはすべて接続するたびパッケージを、パラメータの値が返された後とは、適切に適切に固定しましたこの感覚は、バグWXああではないので、その後、マシン問題はないが成功した変更され、支払い、支払いをプルするたびに成功!

       これはピットIの出会いで、あなたの参照を共有します

リリース8元の記事 ウォン称賛20 ビュー10000 +

おすすめ

転載: blog.csdn.net/u012850536/article/details/104040182