微信小程序 templateMessage.send推送消息 formId问题

何辰沛
2023-12-01

微信小程序推送消息,基本参数为接受用户openId, 消息模板id, formId表单提交id。

对于formId来讲,微信小程序只允许用户有提交表单后,才可以对用户推送消息。

表单属性通过report-submit=true设置,将会返回表单的id,微信文档上说要保存该id,方便后续推送操作使用。

但是需要注意,此时返回的formId还不能立即使用(辣鸡,开发者工具也辣鸡,?吐槽好爽),也就是说不能再catchSubmit的事件里使用该formId作为推送参数formId(可以通过report-submit-timeout参数来检测formId是否有效,说是网络不好情况下会无效,但是发现很多情况下都返回requestFormId:fail timeout无效没法使用). 所以此时如果要推送消息只能使用以前保存的formId并且每个formId只能用一次.

 

cloud.openapi.templateMessage.send({
    touser: toOpenId[0],
    templateId: template,
    formId: formId, //以前提交过表单的formId,不能直接使用catchSubmit中返回的那个
    page: 'pages/detail/detail?id=' + event.blogId,
    data: {
      keyword1: {
        value: event.nickName
      },
      keyword2: {
        value: event.message
      },
      keyword3: {
        value: new Date().toFormat("YYYY-MM-DD HH24:MI:SS")
      }
    },
  })

 

 类似资料: