收藏
回答

调用支付JSAPI缺少参数:total_fee

在JSAPI 统一下单成功拿到prepay_id 后,在JSAPI 调起支付过程中出现错误提示 “调用支付JSAPI缺少参数:total_fee”。根据官方针对这一问题的提示,检查了package 格式,确认package格式正确,同时拿到的prepay_id 也不为空。提问前,也尝试了提供完整的body请求参数信息,都成功拿到prepay_id,但同样问题仍在,错误提示“调用支付JSAPI缺少参数:total_fee”。图(1)是调试过程中每一步的输出情况;图(2)、(3)是调起JSAPI支付出现的错误提示截图;图(4)是前端调起JSAPI的代码。请求帮助、指引,非常感谢!

回答关注问题邀请回答
收藏

4 个回答

  • C ause
    C ause
    05-06

    我现在也出现这个问题,请问有解决办法吗?

    05-06
    有用
    回复
  • 老白 石崖茶.银藤茶🍵
    老白 石崖茶.银藤茶🍵
    2023-02-06

    楼主,你问题解决了吗?

    我也碰到这样的问题,小程序使用服务商的子商户号支付,后端反悔了prepay_id值(没有出错),拉起支付时候提示JSAPI缺少参数total_fee,但是V3服务商的小程序支付里没看到这个参数

    2023-02-06
    有用
    回复
  • Memory
    Memory
    2021-09-02

    提供下文本格式的请求参数和时间点

    2021-09-02
    有用
    回复 9
    • 朱小勇~Daniel
      朱小勇~Daniel
      2021-09-03
      提交的参数日志:
      JSAPI支付提交时间日志--2021-09-03T00:16:18+08:00
       提交的参数日志:(如下图示)
       prepay_id=Error:The format of value 'AppleWebKit/602.3.12(KHTML,like Gecko) Mobile/14C92 MicroMessenger/6.5.21 NetType/WIFI Language/zh_CN' is invalid.
      确实在prepay_id这边出现错误。
      非常感谢提示指点!
      2021-09-03
      回复
    • 朱小勇~Daniel
      朱小勇~Daniel
      2021-09-03
      关于prepay_id=Error: 这个错误,我对User-Agent参数做了调整后。如下时日志- JSAPI支付提交时间日志--2021-09-03T00:44:35+08:00 记录到提交的参数日志:(详见下图)
      prepay_id=wx0300443508943253b75543ec29e0b90000
      但还是有错误提示“调用支付JSAPI缺少参数:total_fee”。
      我估计需要拿到access_token、ticket后再做一次签名成功后,再根据拿到的prepay_id去调起JSAPI支付,我明天会再试一下,并反馈。非常感谢!
      2021-09-03
      回复
    • Memory
      Memory
      2021-09-03回复朱小勇~Daniel
      你需要提供一下统一下单请求的参数和时间点,今天测试了以后给一个最新的吧,统一下单,调起支付都给下
      2021-09-03
      1
      回复
    • 朱小勇~Daniel
      朱小勇~Daniel
      2021-09-03
      1. 通过config接口注入权限验证配置,见图(1);
      2. 在15:25分,测试并做了日志,见图(2);
      3. 在用微信浏览器测试过程中,对出现的错误信息分别做了截图,见图(3)、(4)、(5)、(6);
      4. 图(4)显示{"checkResult": " {‘chooseWXPay':true}; "errMsg":"checkJsApi:ok"}; 
      5. 图(5)显示{“errMsg”:"config:fail"};
      6. 错误信息还是:“调用支付JSAPI缺少参数:total_fee”。
      下一步排除的故障疑点可能在哪里,请帮助指点,非常感谢!
      2021-09-03
      回复
    • 朱小勇~Daniel
      朱小勇~Daniel
      2021-09-03
      好的,日志如下:
      JSAPI支付提交时间日志--2021-09-03T15:25:28+08:00
       提交的参数日志:
      {
        “appId”: “wx1a5babba44467c44”,
        “timeStamp”: “1630653927”,
        “nonceStr”: “2IVLLHDX.JQA”,
        “package”: “prepay_id=wx03152527848797e420f7b3210a2fdd0000”,
        “signType”: “RSA”,
        “paySign”: “oHfFv3z5jJQmfG0gchzZdX356pES+O3LWwwfV8Q6nPmxxYKgZegnchba2oDgyXJJ5eCgJIjx2Xr0C0BwZZGApFPoTtUdrrNM0PQv1nWZx/16aQRpxdievqP3NghIbV6UFqX8yKQ7SRO86bNQs0tTUhKUW/49VafkRO3UAwrglCJleLfGBwyb4VnP1n8m87UtBkaKRcSXuxhrgnjyy7RqomeXQtlc/3na32KaS+bk6rsn3XiKxdqYlGbGtPAaWrJrmIe3aEZhMUT36zzGEkGufCoQRBTB5MT1DDJ5sVIiRRTj9gRnBHUcuF1SIt772lVX0Cvqao+nrGP8edTIONbJKA==”
      }


      另,我也试了将body增加detail项后,能拿到prepay_id, 但错误信息没变:“调用支付JSAPI缺少参数:total_fee”.
      2021-09-03
      回复
    查看更多(4)
  • 念
    2021-09-02

    你的参数里面都没看到 total_fee这个参数

    2021-09-02
    有用
    回复 3
    • 朱小勇~Daniel
      朱小勇~Daniel
      2021-09-03
      关于total_fee, 我的理解是微信支付后台根据提供的 prepay_id 去拿申请prepay_id时提交的请求参数(body)所包含的信息 , 在图(1)2. Body 中“amount” :{“total”:1000,“Currency”:“CNY”} 中,那个total 值。
      2021-09-03
      回复
    • 朱小勇~Daniel
      朱小勇~Daniel
      2021-09-03
      非常感谢提示指点!
      2021-09-03
      回复
    • 朱小勇~Daniel
      朱小勇~Daniel
      2021-09-05
      查了v2版本,请求参数中确实有比传的“total_fee”. 在v3中只有amount 对象,没有total_fee。根据v3的文档要求,拿到prepay_id(非空), 在调起JSAPI 6个参数之一的package,也按文档要求设为 prepay_id=wx041920.~.c50000, 但在调起JSAPI支付时出现“调用支付JSAPI缺少参数:total_fee”. 希望高手指点,谢谢!
      2021-09-05
      回复
登录 后发表内容