微信支付

通过jssdk调用

微信开发文档--微信支付

//立即支付

pay(val) {

//唤醒jssdk

    this._apis.jssdk

        .getJssdk({

channelInfoId:2,

            currentUrl:escape(window.location.href)//获取当前页面的url

        })

.then(response => {

//console.log(response, "订单支付成功");

            wx.config({

debug:false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

                appId: response.appId, // 必填,公众号的唯一标识

                timestamp: response.timestamp, // 必填,生成签名的时间戳

                nonceStr: response.nonceStr, // 必填,生成签名的随机串

                signature: response.signature, // 必填,签名,见附录1

                jsApiList: ["chooseWXPay"]// 必填,需要使用的JS接口列表,所有JS接口列表见附录2

            });

            //确认支付

            this._apis.shop

                .getPageOrderPay({

id: val.id,

                    payWay:"1",

                    replacePayWay: val.replacePayWay,

                    memberInfoId: val.memberInfoId,

                    channelInfoId:"2"

                })

.then(r => {

wx.ready(function () {

wx.chooseWXPay({

// appId:response.appId,

                            timestamp: r.payParams.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符

                            nonceStr: r.payParams.nonceStr, // 支付签名随机串,不长于 32 位

                            package: r.payParams.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)

                            signType: r.payParams.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'

                            paySign: r.payParams.paySign, // 支付签名

                            success:function (res) {

this.onLoad();

                                window.location.href=`/orderDetailed?id=${val.id}`;

                            }

});

                    });

                })

.catch(e => {

console.error(e);

                });

        })

.catch(error => {

console.error(error);

        });

}

H5支付

//立即支付

pay(val) {

this._apis.shop

        .getPageOrderPay({

            id: val.id,

            payWay:"1",

            replacePayWay: val.replacePayWay,

            memberInfoId: val.memberInfoId,

            channelInfoId:"2"

        })

.then(response => {

if (typeof WeixinJSBridge =="undefined") {

if (document.addEventListener) {

document.addEventListener(

"WeixinJSBridgeReady",

                        onBridgeReady,

false

                    );

                }else if (document.attachEvent) {

document.attachEvent("WeixinJSBridgeReady", onBridgeReady);

                    document.attachEvent("onWeixinJSBridgeReady", onBridgeReady);

                }

}else {

this.onBridgeReady(response);

            }

})

.catch(e => {

console.error(e);

        });

},

onBridgeReady(val) {

let _this =this;

    WeixinJSBridge.invoke(

    "getBrandWCPayRequest",

        {

            appId: val.payParams.appId, //公众号名称,由商户传入

            timeStamp: val.payParams.timeStamp, //时间戳,自1970年以来的秒数

            nonceStr: val.payParams.nonceStr, //随机串

            package: val.payParams.package,

            signType: val.payParams.signType, //微信签名方式:

            paySign: val.payParams.paySign //微信签名

        },

        function (res) {

if (res.err_msg =="get_brand_wcpay_request:ok") {

_this.status ="";

}

}

);

},

你可能感兴趣的:(微信支付)