微信公众平台支付问题

发布于 2022-09-02 01:05:23 字数 1292 浏览 16 评论 0

微信公众平台的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并传递到后端是没有任何问题的,不知道是不是思路错了?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

错々过的事 2022-09-09 01:05:23

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文