现金支付

我们支持积分加现金购物的兑换方式,用户可以支付在线支付购买商品,用户支付的钱会结算到企业的后台余额里,企业可以提现。

目前支持两种支付方式,支付宝支付和微信支付。

对接方式:

Android客户端:

android系统webview默认不支持除http/https以外的协议,所以需要在shouldOverrideUrlLoading方法中拦截支付url实现H5支付。

  1. 确定添加权限
     uses-permission android:name="android.permission.INTERNET"
    
  2. 确定设置
     WebSettings webSettings = webview.getSettings();
     webSettings.setJavaScriptEnabled(true);
    
  3. 确定设置
     webview.setWebChromeClient(new WebChromeClient());
    
  4. 确定调起微信或支付宝时的url为alipays:、alipay、weixin://wap/pay?类型
  5. 确定在shouldOverrideUrlLoading方法中拦截url;

参考示例代码

该示例仅供参考,具体实现方式请参考支付宝和微信官方文档

String referer = "微信商户申请H5时提交的授权域名";
@Override
public boolean shouldOverrideUrlLoading(final WebView view, String url) {
if(url.startsWith("alipays:") || url.startsWith("alipay")) {
         try {
        startActivity(new Intent("android.intent.action.VIEW", Uri.parse(url)));
        } catch (Exception e) {
        new AlertDialog.Builder(MainActivity.this)
        .setMessage("未检测到支付宝客户端,请安装后重试。")
        .setPositiveButton("立即安装", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Uri alipayUrl = Uri.parse("https://d.alipay.com");
                startActivity(new Intent("android.intent.action.VIEW", alipayUrl));
            }
        }).setNegativeButton("取消", null).show();
     }
     return true;
}else 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<>();
    extraHeaders.put("Referer", referer);
    view.loadUrl(url, extraHeaders);
}
    return true;
}

results matching ""

    No results matching ""