第三方支付

424 阅读1分钟

支付方式

this.$api.productApi.buy(params).then(res => {
    if (res.data.code == 0) {
        const req = res.data.data
        if (oPay.tag == 'wx') {
            WeixinJSBridge.invoke(
                'getBrandWCPayRequest', {
                    'appId': req.wxpay_jsapi.data.app_id,     //公众号名称,由商户传入
                    'timeStamp': req.wxpay_jsapi.data.timestamp.toString(),         //时间戳,自1970年以来的秒数
                    'nonceStr': req.wxpay_jsapi.data.nonce_str, //随机串
                    'package': req.wxpay_jsapi.data.package,
                    'signType': req.wxpay_jsapi.data.sign_type,         //微信签名方式:
                    'paySign': req.wxpay_jsapi.data.pay_sign //微信签名
                }, (res) => {
                    res.err_msg == 'get_brand_wcpay_request:ok'
                        ? ...... : this.$toast({message: res.data.msg,})
                })
        } else if (oPay.tag == 'aliApplet') {
            my.tradePay({
                // 调用统一收单交易创建接口(alipay.trade.create),获得返回字段支付宝交易号trade_no
                tradeNO: req.alipay_lky.trade_no,
                success: (res) => {
                    const enumCode = {
                        9000: '订单处理成功',
                        8000: '正在处理中。支付结果未知(有可能已经支付成功),请查询商户订单列表中订单的支付状态',
                        4000: '订单处理失败',
                        6001: '用户中途取消',
                        6002: '网络连接出错',
                        6004: '处理结果未知(有可能已经成功),请查询商户订单列表中订单状态',
                        99: '用户点击忘记密码导致快捷界面退出(only iOS)',
                    }
                    this.$toast({message: enumCode[res.resultCode]})
                    ......
                },
                fail: (err) => {
                    this.$toast({message: err.data.msg,})
                }
            });
        }else if(oPay.tag == 'vxApplet'){
            const data = req.wxpay_weapp.data
            let arr = []
            for(let key in data){
                arr.push([`${key}=${data[key]}`])
            }
            wx.miniProgram.navigateTo({
                url: `/pages/payment/payment?${arr.join('&')}`
            });
        } else {
            location.href = req.redirect_url
        }
    } else {
        this.$toast({message: res.data.msg, duration: 2000})
    }

}).catch(err => {

})
<script>
    const SDK = function () {
      // 如该 H5 页面需要同时在非支付宝客户端内使用,为避免该请求404,可参考以下写法
      // 请尽量在 html 头部执行以下脚本
      if (navigator.userAgent.indexOf('AlipayClient') > -1) {
        document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
        return false
      }
  
      if(window.WeixinJSBridge && WeixinJSBridge.invoke && window.__wxjs_environment === 'miniprogram'){
        document.writeln('<script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"' + '>' + '<' + '/' + 'script>')
      }
    }
    SDK();
</script>