收藏
回答

云函数的支付的functionName回调函数中,对执行数据库操作无效,也不能发送请求吗?

云函数的支付的functionName回调函数中,对执行数据库操作无效,也不能发送请求吗?

数据库中表没有新加,请求也没发出去。

// 云函数入口文件
const cloud = require('wx-server-sdk')
const rp = require('request-promise')



cloud.init({
  // API 调用都保持和云函数当前所在环境一致
  env: 'pro-wir1p',
  throwOnNotFound: false
})
const db = cloud.database()


// 云函数入口函数
exports.main = async (event, context) => {
  await db.collection('order').add({
    data: {
      isPay: false
    }
  })
  const resultCode = event.resultCode
  const returnCode = event.returnCode
  const orderId = event.outTradeNo


  if (resultCode === 'SUCCESS' && returnCode === 'SUCCESS') {
    // 去数据库里查找 对应的订单,并将对应的状态改为 true
    await db.collection('order').doc(orderId).update({
      data: {
        isPay: true
      }
    })
  try {
    let res = await db.collection('order').doc(orderId).get()
    // 发送请求 https://xxx:3000
    await rp({
      url: 'https://xxx:3000/user/order',
      method: "POST",
      json: true,
      body: res,//这里就是使用的json格式的数据
      headers: {
        "content-Type": "application/json",
      },
    })
    .then(function (res) {
      console.log(res)
    })
    .catch(function (err) {
      console.log('请求失败')
    });
  } catch (error) {
    console.error(error)
  }
    return { errcode: 0 }
  }
}
回答关注问题邀请回答
收藏

1 个回答

  • 老张
    老张
    2020-10-29

    建议数据先写死,调试,然后再接收支付回调信息。

    2020-10-29
    有用
    回复 5
    • Hit
      Hit
      2020-10-29
      await db.collection('order').add({
          data: {
            isPay: false
          }
        })
      大佬,这个数据库插入应该不存在什么问题吧,都是可以正常执行的吧。但是 我看数据库里没这条数据。
      2020-10-29
      回复
    • 老张
      老张
      2020-10-29回复Hit
      同一个环境?
      2020-10-29
      回复
    • Hit
      Hit
      2020-10-29回复老张
      都是一个环境,我写的是同样的 envId
      2020-10-29
      回复
    • 老张
      老张
      2020-10-29回复Hit
      看不出问题。建议你去新建一个云函数,就为了实现这个数据库操作。找找原因。
      2020-10-29
      回复
    • Hit
      Hit
      2020-10-29回复老张
      好的
      2020-10-29
      回复
登录 后发表内容
问题标签