https://developers.weixin.qq.com/miniprogram/dev/api/payment/wx.requestPayment.html
微信调起支付参数
"timeStamp": "1694065217",
"nonceStr": "A2ehnDIOpXZvPFfwunvqfDQIDz1FrD7G",
"package": "prepay_id=wx07134017250054b2c68f8eea1d2f930000",
"signType": "MD5",
"paySign": "104E4749F38B811A26B2A1A11646B795"
返回结果:【调用支付JSAPI缺少参数:total_fee】 如下图
我在下单的时候参数如下:
下单返回【prepay_Id】之后调起支付出现上述问题 这种情况下如何排查问题
请根据以下几点排查问题:
1)package参数格式错误,package参数格式应该是这样: package:"prepay_id=wx201410272009395522657a690389285100"
2)package参数没有获取,返回null。
3)请检查预支付会话标识prepay_id是否已失效
4)请求的appid与下单接口的appid是否一致
5)微信支付金额为“分”,不能有小数点
6)预支付ID为空(1、金额为空 2、订单编号重复 3、订单编号为空)
4)可以确认是一致的
5)当前的单都是1分 没有小数点
6)预支付id也是有的
关于 3)如何确定是否已经失效?
问题已经解决
后面排查出来的问题为:
后端返回给前端的时间戳timeStamp起初为int 前端用toString转为了字符串
后面后端将时间戳返回为string 前端依然用toString转 导致了 【调用支付JSAPI缺少参数:total_fee】
解决方案:
前端直接接收后端传过来的时间戳用即可 不用toString转 问题解决
版本问题,total_fee是V2版本里面的参数,你发的文档是V3的接口文档
把下单请求地址改为V3的地址
这个是v2的统一下单接口文档 你如果用的是v2的话 就确认一下请求参数有没有 total_fee