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

2018-02-09 12:41:50来源:oschina作者:ksQQ2952777280人点击

分享
有一种奇特的需求叫做微信房卡牛牛平台(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 extraHeaders = new HashMap();
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,如


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

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台