前端调起微信支付和支付宝支付

let params = JSON.parse(sessionStorage.getItem("params"));

    //发起支付-微信
    function onBridgeReady(params) {
        WeixinJSBridge.invoke(
            'getBrandWCPayRequest', {
                "appId": params.appId,     //公众号名称,由商户传入
                "timeStamp": params.timeStamp,         //时间戳,自1970年以来的秒数
                "nonceStr": params.nonceStr, //随机串
                "package": params.package,
                "signType": params.signType,         //微信签名方式:
                "paySign": params.paySign //微信签名
            },
            function (res) {
                if (res.err_msg == "get_brand_wcpay_request:ok") {
                    //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
                    location.replace("../paySuccess/paySuccess.html?token=" + params.token);
                }else if(res.err_msg == "get_brand_wcpay_request:cancel"){ //支付取消
                    closeBill();
                }else{
                    location.replace("../../index.html?token=" + params.token);
                }
            });
    }

    //发起支付-支付宝
    function onAlipayReady(params) {
        AlipayJSBridge.call("tradePay", {
            tradeNO: params.trad_no
        }, function (result) {
            if(result.resultCode == "9000"){ //支付成功
                location.replace("../paySuccess/paySuccess.html?token=" + params.token);
            }else if(result.resultCode == "6001"){ //支付取消
                closeBill();
            }else{
                location.replace("../../index.html?token=" + params.token);
            }
        });
    }
//获取基础数据

    if (params.channel == "WX") { //微信支付

        if (typeof WeixinJSBridge == "undefined") {

            if (document.addEventListener) {

                document.addEventListener('WeixinJSBridgeReady', function () {

                    onBridgeReady(params);

                }, false);

            } else if (document.attachEvent) {

                document.attachEvent('WeixinJSBridgeReady', function () {

                    onBridgeReady(params);

                });

                document.attachEvent('onWeixinJSBridgeReady', function () {

                    onBridgeReady(params);

                });

            }

        } else {

            onBridgeReady(params);

        }

    }

    if (params.channel == "ZFB") {

        // 如果jsbridge已经注入则直接调用

        if (window.AlipayJSBridge) {

            onAlipayReady(params);

        } else {

            // 如果没有注入则监听注入的事件

            document.addEventListener('AlipayJSBridgeReady', function () {

                onAlipayReady(params);

            }, false);

        }

    }
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在uniapp中唤起微信支付,可以按照以下步骤进行操作: 1. 在uniapp项目中,打开`manifest.json`文件,添加微信支付的权限。在`"app-plus"`节点下的`"dplus"`节点中添加以下代码: ```json "payment": { "provider": "wxpay" } ``` 2. 在需要唤起微信支付的页面中,引入`uni.requestPayment`方法。可以在页面的`methods`中添加以下代码: ```javascript methods: { payWithWechat() { uni.requestPayment({ provider: 'wxpay', timeStamp: '', // 支付签名时间戳,需和后台返回的一致 nonceStr: '', // 支付签名随机串,需和后台返回的一致 package: '', // 统一下单接口返回的 prepay_id 参数值 signType: 'MD5', // 签名方式,默认为 MD5 paySign: '', // 支付签名 success: function(res) { console.log('支付成功', res) }, fail: function(err) { console.log('支付失败', err) } }) } } ``` 3. 在后台服务器进行统一下单接口调用,获取到`timeStamp`、`nonceStr`、`package`、`paySign`等参数,并将这些参数传递给前端页面。 4. 在前端页面中,将接口返回的参数赋值给`uni.requestPayment`方法中对应的参数。 5. 当用户点击支付按钮时,调用`payWithWechat`方法,会触发微信支付弹窗,用户输入支付密码完成支付。 请注意,以上步骤中涉及到的具体参数值需要根据实际情况进行填写和调整,如`timeStamp`、`nonceStr`、`package`、`paySign`等。同时,确保已经在微信开放平台注册并获取到了相关的支付配置信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值