H5微信支付、支付宝支付

二、支付宝支付

1.支付宝支付比微信简单多了,也许是后端都配置好了,支付宝支付要在非微信浏览器里面才可以

2.根据后端自定义的接口传相应的参数(比如用户id、手机号、价格、支付方式等),成功后从返回值中取出类似form的表单的地址,这个就是拉起支付宝的东西,将此插入到当前页,打开就可以看到支付宝被拉起了

3.下面就是此页面所有的代码

$(function () {
        function getQueryString(name) { //去url上的id
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
            var r = window.location.search.substr(1).match(reg);
            if (r != null) return unescape(r[2]);
            return null;
        }
        var phone = getQueryString('phone'); //手机号
        var code = getQueryString('code'); //验证码
        var id = getQueryString('id'); //课程id
        var openid = getQueryString('openid');
        var appToken = getQueryString('appToken');

        //判断是否在微信浏览器
        var ua = navigator.userAgent.toLowerCase();
        var isWeixin = ua.indexOf('micromessenger') != -1;
        if (!isWeixin) {
            const params = {
                id: id, //页面初始加载带的id
                phone: phone, //用户手机号
                smsCode: code, //用户验证码
                channel: 'aliPay', //支付方式 wxPay微信 aliPay支付宝
            }
            /* 支付宝支付,传递后台要求的参数,返回值是一个form表单即唤起支付宝的地址 */
            $.ajax({
                url: base_url + '******/payMoneyForWeChatH5',
                type: 'post',
                dataType: "html",
                headers: {
                    openid: openid,
                    appToken: appToken
                },
                data: JSON.stringify(params),
                contentType: 'application/json;charset=UTF-8',
                success: function (res) {
                    var res = JSON.parse(res);
                    if (res.code == 0) {
                        $('body').append(res.data.content[0].aliString);
                        $("form").attr("target", "_blank");
                    } else {
                        alert(res.msg)
                    }
                },
            })
        }
    })

H5微信支付、支付宝支付

posted @ 2021-04-09 17:37  打个大大西瓜  阅读(267)  评论(0编辑  收藏  举报