收藏
回答

订阅消息webhook发送失败?

云函数发送订阅消息,本地调试可以正常发送。

webhook调用云函数发送订阅消息老是失败,求各位大佬帮忙找找原因

下面是云函数代码

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
const db=cloud.database();
const _ = db.command;
exports.main = async (event, context) => {
  try {

      //审核结束的商品ID,来自CMS的Webhook
      var goodsId = event.actionFilter._id; //webhook调用时的ID
      // var goodsId = event._id; //本地调试时的ID  

      //获取商品信息
      var goodsData = await db.collection("XianZhi").doc(goodsId).get()

      //枚举框架,true=通过,false=不通过
      var SizeEnum = {
        properties: {
          true: {value: true, code: "通过"},
          false: {value: false, code: "不通过"},
        }
      }
      //获取审核结果布朗值
      var Encode = goodsData.data.passshow
      //审核结果布朗值转换成中文字符串
      var CHcode = SizeEnum.properties[Encode].code;

      //获取审核时间
      var passtime = goodsData.data.passtime
      //时间戳转日期
      // var dateTime = new Date(parseInt(passtime)).toLocaleString()
      var time = new Date(passtime);
      var year = time.getFullYear();
      var month = time.getMonth() + 1;
      var date = time.getDate();
      var hour = time.getHours();
      var minute = time.getMinutes();
      var second = time.getSeconds();
      month = month < 10 ? "0" + month : month;
      date = date < 10 ? "0" + date : date;
      hour = hour < 10 ? "0" + hour : hour;
      minute = minute < 10 ? "0" + minute : minute;
      second = second < 10 ? "0" + second : second;

      var dateTime = year + "年" + month + "月" + date + "日" + " " + hour + ":" + minute + ":" + second;

      //获取审核不通过原因
      var because = goodsData.data.because
      //获取提示信息
      var toast = goodsData.data.toast
      //获取发送对象
      var touser = goodsData.data.openid

    const result = await cloud.openapi.subscribeMessage.send({
        "touser": touser,
        "page": '/pages/seller/seller',
        "lang": 'zh_CN',
        "data": {
          //审核类型
          thing1:{
            value:"闲置商品发布审核"
          },
          //审核结果
          thing4:{
            value:CHcode
          },
          //审核时间
          date7:{
            value:dateTime
          },
          //不通过的原因
        thing5:{
            value:because
          },
          //温馨提示
          thing12:{
            value:toast
          }
        },
        "templateId": '7WkR7ofDDQuZ6NPIz3_RkRmUoBsaDr1b35KZKA1H2zM'
      })

    //发送之后,减去一个订阅数量
    var userData = await db.collection("DinYue_Message").where({
      openid:touser,
      type:"Shenhen"
    }).update({
      data:{
        num:_.inc(-1)
      }
    })
    return result,userData
  } catch (err) {
    return err
  }
}

回答关注问题邀请回答
收藏

2 个回答

  • Kitori
    Kitori
    2022-11-17

    我也遇到这个问题了,没报错但是就是发不出

    2022-11-17
    有用
    回复 1
    • 城市多少盏灯
      城市多少盏灯
      2022-11-21
      webhook调用云函数没有权限调运订阅消息发送
      2022-11-21
      回复
  • 青团社
    青团社
    2022-07-29

    发下 具体的错误日志。

    2022-07-29
    有用
    回复
登录 后发表内容