现金支付功能

兑吧支持积分加钱购的兑换方式,用户可以支付现金购买商品,用户支付的钱会结算到开发者后台余额里,开发者可以提现。

兑吧目前支持两种支付方式,支付宝H5支付微信H5支付

开发者默认支付方式为支付宝H5支付,开发者可向兑吧运营申请开通微信支付,如满足对接条件即可开通。

对接方式:

纯H5接入:

无需对接即可支持H5支付。

微信公众号:

无需对接,支付宝支付需要跳到浏览器完成支付,如开通了微信支付,可在微信端内完成微信支付。

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 ""