这两天小程序支付不知道为什么一直出问题,之前用的都好好的,前几天大概从8.8开始,支付返回的日期都会比当天迟一天,这两天就一直报“调用支付JSAPI缺少参数;total_fee”,但是多点几下又有可能偶尔会支付成功,大部份是失败,原先我以为是body数据太长了,今天又更新了body数据,大大减少了数据长度,但错误依旧,查日志发现是这个原因:package: "prepay_id=undefined",不知如何解决?以下是真机调试日志:
两种支付失败结果,一个是参数错误调用支付失败,一个是调用支付成功,取消支付(支付失败: {errMsg: "requestPayment:fail cancel"})。
-------------------------------------------------------------
index.js:581 准备开始支付!
index.js:594 云函数结果: {errMsg: "cloud.callFunction:ok", result: {…}, requestID: "b085cd51-bdcf-11e9-bdc8-525400192d0e"}
index.js:628 支付失败: {errMsg: "requestPayment:fail:调用支付JSAPI缺少参数: total_fee"} <-----调用支付失败
index.js:581 准备开始支付!
index.js:594 云函数结果: {errMsg: "cloud.callFunction:ok", result: {…}, requestID: "b420a585-bdcf-11e9-9148-525400235f2a"}
index.js:628 支付失败: {errMsg: "requestPayment:fail cancel"} <----调用支付成功,取消支付
index.js:581 准备开始支付!
index.js:594 云函数结果: {errMsg: "cloud.callFunction:ok", result: {…}, requestID: "ba622a75-bdcf-11e9-bdc8-525400192d0e"}
index.js:628 支付失败: {errMsg: "requestPayment:fail:调用支付JSAPI缺少参数: total_fee"}
index.js:581 准备开始支付!
index.js:594 云函数果: {errMsg: "cloud.callFunction:ok", result: {…}, requestID: "bd30c0cd-bdcf-11e9-9148-525400235f2a"}
index.js:628 支付失败: {errMsg: "requestPayment:fail cancel"}
找到原因了,out_trade_no用17位的时间戳竟然会重!!!
加15位随机数解决!
好坑的错误,好坑的错误提示,错的好离谱。。。难道这个数据重了微信支付后台无法给出个准确的错误提示吗?整整找了几天的BUG!!!