1、如果是云开发,那么要在云开发控制台中配置:
3、云开发官方支付源码demo:
参数1(结果通知回调云函数名):"functionName": "pay_cb"
说明:"pay_cb"是一个云函数的名字,需要自己创建,官方没给demo。有人说可以为空,"functionName": "",我试了报错,但是随便填一个也能支付,就是必须的有值。
pay_cb云函数的作用:就是接收微信支付后的回调,回调函数如果不返回微信规定的代码和消息,微信会一直调这个函数。
// 云函数代码
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event, context) => {
const res = await cloud.cloudPay.unifiedOrder({
"body" : "小秋TIT店-超市",
"outTradeNo" : "1217752501201407033233368018",
"spbillCreateIp" : "127.0.0.1",
"subMchId" : "1900009231",
"totalFee" : 1,
"envId": "test-f0b102",
"functionName": "pay_cb"
})
return res
}
// 小程序代码
wx.cloud.callFunction({
name: '函数名',
data: {
// ...
},
success: res => {
const payment = res.result.payment
wx.requestPayment({
...payment,
success (res) {
console.log('pay success', res)
},
fail (err) {
console.error('pay fail', err)
}
})
},
fail: console.error,
})
2、商户订单号不能超过32位支付。
错误提示: return_msg: "输入源“/body/xml/out_trade_no”映射到值字段“商户订单号”字符串规则校验失败,字节数 54,大于最大值 32"
2、商户订单号不能重复。
支付的时候提示:调用支付JSAPI缺少参数:total_fee