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);
        }
    });
}
目录
相关文章
|
6月前
|
小程序 前端开发 JavaScript
uniapp转微信小程序编译报错 Bad attr `data-event-opts` with message
uniapp转微信小程序编译报错 Bad attr `data-event-opts` with message
|
6月前
|
前端开发 开发者
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
384 0
|
1月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
498 7
|
3月前
|
网络协议
企业微信——给国外的邮箱发邮件报错Authentication results: DKIM = did not pass
企业微信——给国外的邮箱发邮件报错Authentication results: DKIM = did not pass
255 2
|
1月前
微信接口报错 "errcode":40163,"errmsg":"code been used, 如何处理?
【10月更文挑战第11天】微信接口报错 "errcode":40163,"errmsg":"code been used, 如何处理?
687 1
|
4月前
|
移动开发 开发框架 JavaScript
基于Jquery WeUI的微信开发H5页面控件的经验总结(1)
基于Jquery WeUI的微信开发H5页面控件的经验总结(1)
|
4月前
|
文字识别 小程序 安全
印刷文字识别操作报错合集之微信小程序调用API时路径总是返回不对,该如何处理
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
4月前
|
移动开发 JSON JavaScript
基于Jquery WeUI的微信开发H5页面控件的经验总结(2)
基于Jquery WeUI的微信开发H5页面控件的经验总结(2)
|
4月前
|
小程序 API
微信小程序getLocation报错 getLocation:fail the api need to be declared in the requiredPrivateInfos field in
微信小程序getLocation报错 getLocation:fail the api need to be declared in the requiredPrivateInfos field in
383 1
|
4月前
|
小程序 开发者
【微信小程序】 微信小程序报错不在以下request合法域名列表中
【微信小程序】 微信小程序报错不在以下request合法域名列表中
939 0