现金支付功能

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

通兑吧目前支持一种支付方式,微信H5支付

Android端对接积分商城微信支付

1.在webview中拦截wx.tenpay 然后在请求中加入请求头信息 具体代码如下

     Map<String, String> extraHeaders = new HashMap<String, String>();
     extraHeaders.put("Referer",“在微信注册的商户域名”);
     view.loadUrl(url, extraHeaders);

2.在webview中拦截weixin://wap/pay?域名 调用系统方法 打开微信支付页面

     if (url.startsWith("weixin://wap/pay?")) {
         Intent intent = new Intent();
         intent.setAction(Intent.ACTION_VIEW);
         intent.setData(Uri.parse(url));
         startActivity(intent);
         return true;
     }

ios对接积分商城微信支付

1.代理方法

    - (void)webView:(WKWebView *)webView decidePolicyForNavigationActi
    on:(WKNavigationAction *)navigationAction decisionHandler:(void (^)
    (WKNavigationActionPolicy))decisionHandler

拦截WKWebView加载的微信支付统一下单链接, 将redirect_url参数修改为唤起自己App的URLScheme

2.在webview中拦截wx.tenpay 然后在请求中加入请求头信息,具体代码如下:

[request setValue:[@ "在微信注册的商户域名" stringByAppendingString:@"://"]
forHTTPHeaderField:@"Referer"];

3.在webview中拦截weixin://wap/pay?域名 调用系统方法 打开微信支付页面,具体代码如下:

if ([[UIApplication sharedApplication] canOpenURL:navigationAction.request.URL]) {
    [[UIApplication sharedApplication] openURL:navigationAction.request.URL];
}

支付异常

1.商家参数格式有误

1.当前调起H5支付的referer为空导致,一般是因为直接访问页面调起H5支付,请按正常流程进行页面跳转后发起支付,或自行抓包确认referer值是否为空

2.如果是APP里调起H5支付,需要在webview中手动设置referer,如( Map extraHeaders = new HashMap(); extraHeaders.put("Referer", "商户申请H5时提交的授权域名");//例如 https://www.baidu.com ))

H5跳小程序支付

页面逻辑:用户在H5下单支付,涉及到现金支付,会跳到对应的小程序(/pages/pointsMallPay/pointsMallPay)页面支付,在该页面支付完成后,根据对应的状态返回H5页面,具体参数如下

H5页面下单成功跳小程序 window['wx'].miniProgram.navigateTo({ url: miniProgramPage? paySuccessRedirectUrl=paySuccessRedirectUrl&payFailRedirectUrl=payFailRedirectUrl&jsApiParameters=encodeURIComponent(jsApiParameters) })

其中urls由以下字段拼接而成
变量名 备注
miniProgramPage 小程序固定页面(页面固定为/pages/pointsMallPay/pointsMallPay)
paySuccessRedirectUrl 支付成功后返回页面URL(${location.origin}${location.pathname}#/pages/orderInfo/index?orderId=${res.orderId})
payFailRedirectUrl 支付失败后返回页面URL(${location.origin}${location.pathname}#/pages/orderInfo/index?orderId=${res.orderId})
jsApiParameters json字符串通过JSON.parse(decodeURIComponent(jsApiParameters))后的参数如下
jsApiParameters结构如下
变量名 备注
timeStamp 时间戳(例如1596696192)
nonceStr 随机字符串(例如ulpsgxwHGpjnWtGfQWdCQFsJTH9lLa00xx)
package 统一下单接口返回的 prepay_id 参数值(例如prepay_id=wx0614431208677750efe6d76e1512491200)
signType 签名算法(例如MD5)
paySign 支付签名(例如D23CEECBA1357584BF3E9F4AF2837394)

results matching ""

    No results matching ""