jquery-weui微信支付报错问题解决

简介: //获取充值套餐 $.ajax({ type: 'post', url: api.domain + api.recharge_package, data: { "access_token": access }, success : function(res) { if (res.

微信支付报错问题解决
支付回调各种报错,openID、APPID等等原因,打印 console.log(typeof(res.jsApiParameters));
重点把string转化为Object就ok了。
每次支付请求会生成订单,根据对应订单号,修改数据库订单状态才可以完成。

{
  "appId":"wx1b35c*********3",
  "nonceStr":"nam97dundxjiisasumrevju*******",
  "package":"prepay_id=wx***",
  "signType":"MD5",
  "timeStamp":"1**",
  "paySign":"7CD01*****9"
}
//获取充值套餐
$.ajax({
    type: 'post',
    url: api.domain + api.recharge_package,
    data: {
        "access_token": access
    },
    success : function(res) {
        if (res.status == 1) {
            var n = res.data.length;
            var menu = [];
            if(n < 1){
                return false;
            }
            for(var i = 0;i < n;i++){
                menu.push(res.data[i].id);
                var selected;
                //设置默认套餐与价格
                if(i == 0){
                    selected = ' btn-active';
                    $('#money').html(res.data[i].price);
                } else {
                    selected = '';
                }
                var $list = $('<span class="weui-btn btn-check js-pay ' + selected + '" title="' +
                res.data[i].id + '" price="' + res.data[i].price + '">' + res.data[i].name + '</span>');
                $list.appendTo($('#parent'));
            }
            $('#count').val(menu);
        } else {
            $.toptip(res.msg,'cancel');
        }
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('XMLHttpRequest.status = ' + XMLHttpRequest.status);
        console.log('XMLHttpRequest.readyState = ' + XMLHttpRequest.readyState);
        console.log('textStatus = ' + textStatus);
    }
});
//点击套餐
$('body').on('click', '.js-pay', function(){
    var param_b = $(this).attr('title');
    var menu = $('#count').val().split(',');
    for(var p = 0; p < menu.length;p++) {
        if(menu[p] == param_b) {
            $('span[title="' + menu[p] + '"]').addClass('btn-active');
        } else {
            $('span[title="' + menu[p] + '"]').removeClass('btn-active');
        }
    }
    $('#money').html($(this).attr('price'));
});
//充值付费
$("#pay").click(function() {
    var package = $('.btn-active').attr('title');
    $.ajax({
        type: 'post',
        url: '/recharge/pay',
        data: {
            "access_token": access,
            "package_id": package
        },
        success : function(res) {
            console.log(typeof(res));
            console.log(res.jsApiParameters);
            console.log(typeof(res.jsApiParameters));
            if (res.status == 1) {
                if (typeof WeixinJSBridge == "undefined"){
                    if( document.addEventListener ){
                        document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
                    }else if (document.attachEvent){
                        document.attachEvent('WeixinJSBridgeReady', jsApiCall);
                        document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
                    }
                }else{
                    jsApiCall($.parseJSON(res.jsApiParameters),res.order_no);
                }
            } else {
                $.toptip(res.msg,'cancel');
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            console.log('XMLHttpRequest.status = ' + XMLHttpRequest.status);
            console.log('XMLHttpRequest.readyState = ' + XMLHttpRequest.readyState);
            console.log('textStatus = ' + textStatus);
        }
    });

});

//调用微信JS api 支付
function jsApiCall(n,order_no){
    console.log(n);
    WeixinJSBridge.invoke(
        'getBrandWCPayRequest',
        n,
        function(res){
            WeixinJSBridge.log(res.err_msg);
            //alert(res.err_code+res.err_desc+res.err_msg);
            if(res.err_msg == "get_brand_wcpay_request:ok" ) {
                    paySuccess(order_no);
              }else if(res.err_msg == "get_brand_wcpay_request:cancel"){
                $.toast("支付取消", "cancel");
              }else{
                $.toast("支付失败", "forbidden");
              }     // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。 
        }
    );
}
//微信回调成功,跳转成功页面
function paySuccess(n){
    $.ajax({
        type: 'post',
        url: api.domain + api,
        data: {
            "access_token": access,
            "order_no": n
        },
        success : function(res) {
            if (res.status == 1) {
                location.href = '/recharge/success';
            } else {
                $.toptip(res.msg,'cancel');
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            console.log('XMLHttpRequest.status = ' + XMLHttpRequest.status);
            console.log('XMLHttpRequest.readyState = ' + XMLHttpRequest.readyState);
            console.log('textStatus = ' + textStatus);
        }
    });
}
目录
相关文章
|
1月前
|
小程序 前端开发 JavaScript
uniapp转微信小程序编译报错 Bad attr `data-event-opts` with message
uniapp转微信小程序编译报错 Bad attr `data-event-opts` with message
|
5月前
|
小程序
微信小程序wx.createInnerAudioContext播放play报错errMsg: “operateAudio:fail jsapi has no permission, event=ope
微信小程序wx.createInnerAudioContext播放play报错errMsg: “operateAudio:fail jsapi has no permission, event=ope
微信分享报错 wxlog:Error:fail to load Keychain status:-25300 解决办法
微信分享报错 wxlog:Error:fail to load Keychain status:-25300 解决办法
1704 0
|
小程序 开发者
微信小程序报错[ app.json 文件内容错误] app.json: app.json 未找到,一招解决
微信小程序报错[ app.json 文件内容错误] app.json: app.json 未找到,一招解决
3321 0
微信小程序报错[ app.json 文件内容错误] app.json: app.json 未找到,一招解决
|
4月前
|
前端开发 开发者
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
51 0
|
4月前
|
存储 小程序 JavaScript
微信小程序替换双重循环渲染中报错图片
微信小程序替换双重循环渲染中报错图片
118 0
|
小程序 JavaScript 前端开发
微信小程序:报错(in promise) MiniProgramError {“errMsg“:“navigateTo:fail can not navigateTo a tabbar page“}
微信小程序:报错(in promise) MiniProgramError {“errMsg“:“navigateTo:fail can not navigateTo a tabbar page“}
1790 0
微信小程序:报错(in promise) MiniProgramError {“errMsg“:“navigateTo:fail can not navigateTo a tabbar page“}
|
4月前
|
小程序
使用uniapp的扩展组件,在微信小程序中出现报错如何解决
使用uniapp的扩展组件,在微信小程序中出现报错如何解决
|
5月前
|
前端开发 小程序 开发者
微信开发者工具创建的插件报错-Unhandled promise rejection TypeError: WebAssembly Instantiation...
微信开发者工具创建的插件报错-Unhandled promise rejection TypeError: WebAssembly Instantiation...
35 0
|
小程序 算法 Go
Golang微信小程序数据解密报错:invalid character “‘p‘“ looking for beginning of value
Golang微信小程序数据解密报错:invalid character “‘p‘“ looking for beginning of value
360 0

热门文章

最新文章

相关课程

更多