<微信房卡牛牛平台的Android使用微信H5支付>

ksQQ2952777280 · · 194 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
有一种奇特的需求叫做微信房卡牛牛平台(h5.hxforum.com) 联系方式170618633533企鹅2952777280 微信Tel17061863533 源码出售,平台出租,房卡有意者私聊扣Q,在app上使用h5支付。这个实际上是有优势的,比如有多个app要做微信支付,只要h5做一套就可以全部通用。网上搜了一圈,讲的有很多,但是都不太细致,有些坑没有说。下面是我的实现:
public class WebViewTestActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view_test);
        WebView webView = ((WebView) findViewById(R.id.webviewtest));

        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) {
                // 如下方案可在非微信内部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>();
                    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("http://wxpay.wxutil.com/mch/pay/h5.v2.php");
    }

}

 

 

出现的错误无外乎就是微信官网列出的那几种,可以看这个链接 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4 。比如我在原生系统上最开始报的错误就是:商家参数格式有误,请联系商家解决,这个实际上官方给出了解决方案:

2. 如果是APP里调起H5支付,需要在webview中手动设置referer,如

(Map extraHeaders = new HashMap();
extraHeaders.put("Referer", "商户申请H5时提交的授权域名");//例如 http://www.baidu.com ))

本文来自:开源中国博客

感谢作者:ksQQ2952777280

查看原文:<微信房卡牛牛平台的Android使用微信H5支付>

194 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet