云支付的回调函数会一直被调用,这是正常的吗?没有调用支付,回调函数也会一直调用
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database();
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
if(event.returnCode == 'SUCCESS' && event.resultCode == 'SUCCESS') //两个都成功,支付完成
{
var time = "444";
var order = await db.collection('orderlist').where({outTradeNo : event.outTradeNo})
.update({
data:{
info:{
paystate:'已支付',
orderstate:'生产中',
payTime:time
}
}
})
}
const res = {errcode:0, errmsg:'SUCCESS'}
return res
}
return的结构体没有问题,主要是代码中更新的时候你使用了await,阻塞了应答微信服务端的应答,也就是应答晚了,微信服务端认为你没有应答,所以就一直在回调。试一下这样。
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/open/pay/paymentCallback.html