调用支付JSAPI缺少参数:total_fee
参考:
https://blog.csdn.net/iceErvin/article/details/71774006
从后台传回的是一个json对象,但是.timestamp中的s弄成了小写,所以报上面错误。s改为大写S
payData.appId前后,不需要单引号或者双引号了,加了后,构造的json,传到微信,同样会报上面的错误。
当然最直接,注释掉{//"appid"....//微信签名}这一段,直接用json对象payData也可,payData是后台返回的WXJsPayParam字符串,在前端使用payData = jQuery.parseJSON(data.WXJsPayParam);反序列化而成。
//调用微信支付模块
function onBridgeReady() {
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
//"appId": "'" + payData.appId + "'", //公众号名称,由商户传入
//"timeStamp": "'" + payData.timeStamp + "'", //时间戳,自1970年以来的秒数
//"nonceStr": "'" + payData.nonceStr + "'", //随机串
//"package": "'" + payData.package + "'",
//"signType": "'" + payData.signType + "'", //微信签名方式:
//"paySign": "'" + payData.paySign + "'" //微信签名
appId: payData.appId, //公众号名称,由商户传入
//timeStamp: payData.timestamp, //时间戳,自1970年以来的秒数
timeStamp: payData.timeStamp, //时间戳,自1970年以来的秒数
nonceStr: payData.nonceStr, //随机串
package: payData.package,
signType: payData.signType, //微信签名方式:
paySign: payData.paySign //微信签名
},
//payData,
function (res) {
jQuery('#msg').text(res.err_msg);
if (res.err_msg == "get_brand_wcpay_request:ok") {
//alert("支付成功,请稍后查询余额,如有疑问,请联系管理员.");
//fAlreadyPay();
} // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。
alert(JSON.stringify(res));
}
);
}