安卓8.1系统版本,微信H5支付通道,webview白屏,其他系统版本能正常拉起微信支付,不加extraHeaders.put("Referer", "商户申请H5时提交的授权域名");这个就会提示商家参数格式有误,请联系商家解决,加了就8.1系统会白屏
1. 当前调起H5支付的referer为空导致,一般是因为直接访问页面调起H5支付,请按正常流程进行页面跳转后发起支付,或自行抓包确认referer值是否为空
2. 如果是APP里调起H5支付,需要在webview中手动设置referer,如(
Map extraHeaders = new HashMap();
extraHeaders.put("Referer", "商户申请H5时提交的授权域名");//例如 http://www.baidu.com ))
你好,解决了么? 我也遇到了
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { String url = request.getUrl().toString(); Logger.msg("sdk > 21 shouldOverrideUrlLoading:"+url); if (url.startsWith("weixin:")){ startActivity(new Intent("android.intent.action.VIEW", Uri.parse(url))); finish(); return true; }else if(url.startsWith("alipays:") || url.startsWith("alipay")){ boolean visit = Util.isAliPayInstalled(mContext); if(visit){ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); finish(); }else { ToastUtil.getInstance(WFTPayActivity.this,"未检测到支付宝客户端,请安装后重试。").show(); } return true; } // ------- 处理结束 ------- if (!(url.startsWith("http") || url.startsWith("https"))) { return true; } Map<String,String> extraHeaders = new HashMap<String, String>(); extraHeaders.put("Referer", referer); view.loadUrl(url, extraHeaders); referer = url; // view.loadUrl(url); return true; }