收藏
回答

微信小程序支付报缺少参数total_fee,参数一切正常

问题描述:

1、当前小程序未发布,正处于开发阶段

2、发起支付的appid和服务端的appid都是一个值(小程序的appid)

3、服务端请求下单接口一切正常,返回数据也一切正常,没有报错或验签失败的现象,参数如下:

{

"timeStamp": 1642407577,

"nonceStr": "1JYD4286KH45LOY7MEM2H8X6EZAXPA65",

"package": "prepay_id=wx171619373602695cffdf9bef6ad6950000",

"signType": "RSA",

"paySign": "EnEfdLFOrN72Iedxvzt0HiZn3i6KiXzjj\/DPjIrgX4WDMpYpfQTPOhHziOAejavvdHoSXi36\/48e5I6gx0mySwNYzioiQE\/C\/LqUbPUYxrFVk6DpkoBcz7+wdzU24qhrQSZGaclfpJDe6NiEuPvsT7ceIrisRerrc0TICKzl9uR2fWvHxO9KFDCoYJql25A9AiA\/\/Ri5a5jfMKIwUjYX1rta2J5DchXiSOAwOkQSKHUXoiSwNiOv9FkT+VpgqJGtr+6sIatM07yStzb2ELfRgcswgBqVN9DGBHYlQjDKxBxDoz9r2LNKfFAmv4xcTL8ZPv4tQsv4zLf0YlhjKQc+5g=="

}

4、在手机上测试支付报错如下:

调用支付JSAPI缺少参数:total_fee


5、小程序的代码:

wx.requestOrderPayment({
  timeStamp: `"${res2.data.timeStamp}"`,
  nonceStr: `"${res2.data.nonceStr}"`,
  package: `"${res2.data.package}"`,
  signType: `"${res2.data.signType}"`,
  paySign: `"${res2.data.paySign}"`,
  success (res) {
    console.log('成功');
    console.log(res);
  },
  fail (res) {
    console.log('失败');
    console.log(res);
  }
})


最后一次编辑于  2022-01-17
回答关注问题邀请回答
收藏

2 个回答

  • Memory
    Memory
    2022-01-17

    V3接口虽然没有total_fee字段,但报错缺少total_fee和V2原因是一样的,自己检查

    1)package参数格式错误,正确的package参数格式应该是这样:package:"prepay_id=wx201222229874569b201de80e089456213"

    2)package参数为空,请按照文档要求上传正确的参数

    3)下单APPID与调起支付APPID是否一致

    自己可以通过postman+签名验证工具写死调起参数来验证

    2022-01-17
    有用 2
    回复
  • 星客微商城(¥900每年)
    星客微商城(¥900每年)
    2022-01-18

    根据我的经验,参数类错误,需要后端在生成签名的时候打印下xml结构。在客户端侧是无法看出来的。

    2022-01-18
    有用
    回复 1
    • Memory
      Memory
      2022-01-18
      V3哪来的XML?
      2022-01-18
      回复
登录 后发表内容