fire_in_java 2015-08-29 07:42 采纳率: 25%
浏览 7530
已采纳

java微信公众号 js调用微信支付报错 errMsg:chooseWXPay:fail

奖励有点少,实在是没有c币了。
下面是我的js,不清楚到底是什么原因导致的,各位大神帮忙给解决下吧;具体报错:config签名啥的是OK的,但是在调用chooseWXPay的时候,就失败了 报错errMsg:chooseWXPay:fail 没有别的提示信息,不清楚失败原因
$('#pay_sub_btn').on(touchType, function(){
var _this = $(this);
var payType = $('#pay_type').val();
var orderId = $('#J_payOrder_id').val();
var orderSn = $('#J_payOrder_sn').val();
var payFee = $('#J_payOrder_card_no').val();
var fieldLabel = $('#fieldLabel').val();
var date = $('#date').val();
var orderTimes = $('#orderTimes').val();
var gymName = $('#gymName').val();
var path = $('#basePath').val();

    hideError();
    lock = true;
    _this.text('支付中...');
    if(payType == 13){
       //支付宝支付

    }else{
        $.ajax({  
            url:path+"/orders/OrdersPayForWx.do?orderId="+orderId
        }).done(function(data){  
            var obj = eval('(' + data + ')');  
            if(parseInt(obj.agent)<5 && obj.agent != "false"){  
                alert("您的微信版本低于5.0无法使用微信支付,请升级之后再操作!~");
                return;  
            }else if(obj.agent == "false"){
                alert("请使用微信浏览器操作!~");
                return;  
            }
            if(obj.code == "0"){
                alert("登陆已经过期,请重新登录!~");
                window.location.href = path+'/login.jsp';
            }
            wx.config({
                debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                appId: obj.appId, // 必填,公众号的唯一标识
                timestamp: obj.contime, // 必填,生成签名的时间戳
                nonceStr: obj.constr, // 必填,生成签名的随机串
                signature: obj.consign,// 必填,签名,见附录1
                jsApiList: ['chooseWXPay'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
            });
            wx.ready(function(){
                wx.chooseWXPay({
                    "timestamp": obj.paytime, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
                    "nonceStr": obj.paystr, // 支付签名随机串,不长于 32 位
                    "package": obj.paypack, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
                    "signType": obj.paysigntype, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
                    "paySign": obj.paysign, // 支付签名
                    success: function (res) {
                        // 支付成功后的回调函数
                        alert(res.err_msg);
                        _this.text('支付');
                         if(res.err_msg == "get_brand_wcpay_request:ok" ) {
                             _this.text('支付');
                            // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。 
                             window.location.href = path + '/orders/GetOrders.do?page=1&pageSize=10&orderStatus=0';
                         }else{
                            alert(res.errMsg);
                            alert(res.err_msg);
                            _this.text('支付');
                            return false;
                         }
                    }
                });
            });
            wx.error(function(res){
                alert(res.err_msg);
                _this.text('支付');
                return false;
            });
        });  
    }
});
  • 写回答

1条回答

  • 微wx笑 Java领域优质创作者 2015-08-29 10:18
    关注

    {"errMsg":"chooseWXPay":"fail"},这个问题产生的原因很有可能是微信授权域名和微信支付域名设置的不一样,比如一个有www一个没有。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路