首页 > 微信公众平台支付问题

微信公众平台支付问题

微信公众平台的js支付接口,需要根据一系列的参数生成wxpay_sign,现在有一个业务需求是在生成微信的wxpay_sign时,不能预先知道微信的支付金额,也就是total_fee参数。
有一个思路是通过ajax请求传递一系列参数,然后生成wxpay_sign并传递到接口,现在遇到的问题是一直报jsapi param invalid: timeStamp错误。代码如下:

    $.ajax({
        url: support_url,
        data: {'crowdfunding_id':crowdfunding_id, 'openid':openid, 'message':message, 'price':price, 'wxid':wxid},
        dataType: 'json',
        success: function(res){
            if (res.err == 0) {
                wxpay_sign = res.wxpay_sign;
                WeixinJSBridge.invoke('getBrandWCPayRequest',{
                    "appId": wxpay_sign.appId,
                    "timeStamp": wxpay_sign.timeStamp,
                    "nonceStr": wxpay_sign.nonceStr,
                    "package": wxpay_sign.package,
                    "signType": wxpay_sign.signType,
                    "paySign": wxpay_sign.paySign,
                },function(response) {
                    if(response.err_msg == 'get_brand_wcpay_request:ok'){
                        alert('支付成功');
                    }
                });
            } else {
                alert('支持失败');
            }
        }
    });
});

同样的调用微信支付接口的方法,如果后端预先知道价格,生成wxpay_sign并传递到后端是没有任何问题的,不知道是不是思路错了?


timestampjs 前端全部为小写,后端生成 sign 的时候为 timeStampS 大写。这是个坑,文档里有提到。

http://mp.weixin.qq.com/wiki/11/74ad127cc054f6b80759c40f77ec03db.html#.E5.8F.91.E8.B5.B7.E4.B8.80.E4.B8.AA.E5.BE.AE.E4.BF.A1.E6.94.AF.E4.BB.98.E8.AF.B7.E6.B1.82

【热门文章】
【热门文章】