小程序调起微信支付时提示“签名错误”怎么办?

焕焕 阅读 32

我在开发微信小程序的支付功能,后端已经按文档生成了 prepay_id 并返回给前端,但调用 wx.requestPayment 时一直报“签名错误”。我检查了时间戳、nonceStr、package 这些参数,看起来都对,签名也是用后端统一生成的,不知道问题出在哪。

这是前端调用的代码:

wx.requestPayment({
  timeStamp: res.data.timeStamp,
  nonceStr: res.data.nonceStr,
  package: res.data.package,
  signType: 'RSA',
  paySign: res.data.paySign,
  success(res) {
    console.log('支付成功', res)
  },
  fail(err) {
    console.error('支付失败', err)
  }
})

后端用的是 RSA 签名方式,但文档里好像默认是 MD5?是不是这里搞错了?

我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
UI敏涵
UI敏涵 Lv1
换用MD5签名,后端和前端保持一致。signType改成'MD5',后端重新生成签名。就这样。

wx.requestPayment({
timeStamp: res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.package,
signType: 'MD5',
paySign: res.data.paySign,
success(res) { console.log('支付成功', res) },
fail(err) { console.error('支付失败', err) }
})
点赞
2026-03-26 18:36