微信支付報錯:呼叫支付JSAPI缺少引數:total_fee解決辦法
阿新 • • 發佈:2020-12-31
技術標籤:微信小程式
使用微信小程式雲開發對接微信支付,拷貝官方的示例程式碼執行,報錯:呼叫支付JSAPI缺少引數。莫名其妙。
官方示例程式碼連線:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.html
解決辦法:
1、首先,雲開發繫結商戶號會發送一條驗證資訊到商戶號管理員的手機上,管理員必須驗證通過後才行。可用狀態如下:
2、官方示例程式碼的outTradeNo(訂單號),訂單號不能重複,這串數字肯定之前被用過了。要改幾個數字再試試。
3、在開發者工具裡,開啟真機除錯,可以看到具體的報錯資訊:
4、執行成功的參考程式碼:
雲函式:
// 雲函式程式碼 const cloud = require('wx-server-sdk') cloud.init({ traceUser: true }) exports.main = async (event, context) => { const res = await cloud.cloudPay.unifiedOrder({ "body" : "遇見自習室", "outTradeNo" : "1237762301201407033233365019", "spbillCreateIp" : "127.0.0.1", "subMchId" : "1602300040", "totalFee" : 1, "envId": "yujian-****", "functionName": "pay_cb" }) return res }
小程式端:
wxpay: function () { wx.cloud.callFunction({ name: 'wxpay', data: {}, success: function (res) { console.log("res",res) console.log("res.result.payment",res.result.payment) const payment = res.result.payment wx.requestPayment({ // timeStamp: param.timeStamp, // nonceStr: param.nonceStr, // package: param.package, // signType: param.signType, // paySign: param.paySign, ...payment, //這種用法之前倒是沒見過 success (res) { console.log('pay success', res) }, fail (res) { console.error('pay fail', err) } }) }, fail: console.error }) },
5、坑點:
報錯資訊莫名其妙的,文不對題。