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

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一个没有。

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

报告相同问题?

悬赏问题

  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下:
  • ¥15 Mac(标签-IDE|关键词-File) idea
  • ¥15 潜在扩散模型的Unet特征提取
  • ¥15 iscsi服务无法访问,如何解决?
  • ¥15 感应式传感器制作的感应式讯响器