微信小程序模板消息填坑记录

作者: 无穷369 | 来源:发表于2018-08-27 16:30 被阅读83次
mp-notice.png

最近项目上用到了微信小程序的模板消息功能,但是在接入的过程当中遇到了个 form_id 的坑,微信文档里并没有详细的描述这一块儿的内容,所以在这里做一下记录,希望看到这篇文章的开发者们不要踩坑。

这个是发送模板消息的接口,一个 POST 请求

https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN
WX20180827-153242.png

需要给他传递4个必填参数,其中 form_id参数较为特殊,需要通过微信小程序端表单提交组件来获取这个 form_id 如果是支付后发送模板消息的话,那就用支付后得到的 prepay_id 就可以了。

我这里的做法是将一个按钮改成了表单提交的方式,同时也绑定了自己的点击事件业务逻辑。这样就可以做到静默获取 form_id ,省去了一些交互步骤。

<form bindsubmit="submitInfo" report-submit='true' >
     <button class='start_button' bindtap='start' form-type="submit">立即开始</button>
</form>

注意 report-submit要设置成 true才可以获取到form_id

这样就可以在 js 里的 submitInfo 方法中通过 e.detail.formId 获取, 然后传递到服务端保存到数据库。

submitInfo: function(e){
    console.log("formId",e.detail.formId);
}

注意 formId 有效期是 7 天,而且每次获取的 formId 只可以用于发送【一次】模板消息。另外,模拟器是获取不到 formId 的,模拟器获取会报错 the formId is a mock one 只有在真机中才可以获取到。而且,安卓和IOS获取到的 formId 长度有差异。安卓类似这样 1535357741912 IOS类似这样 b44a8191a2254759d51552f11bc27100

PHP端发送模板消息最好用我下面这样的方式提交POST请求

  //$url  是请求地址
  //$data  是json字符串
  //发送模版消息
  private function httpRequest($url, $data = null)
  {
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

      if (!empty ($data)) {
          curl_setopt($curl, CURLOPT_POST, 1);
          curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
      }
      curl_setopt($curl, CURLOPT_HTTPHEADER, array(
          'Content-Type: application/json; charset=utf-8',
          'Content-Length: ' . strlen($data)
      ));
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
      $output = curl_exec($curl);
      curl_close($curl);
      return $output;
  }

开发过程中还遇到了某些情况取不到formId的问题,在微信开放社区提问后得到解决。帖子地址

https://developers.weixin.qq.com/community/develop/doc/00004c7a7d05b8f98747df72b56000

相关文章

  • 微信小程序模板消息填坑记录

    最近项目上用到了微信小程序的模板消息功能,但是在接入的过程当中遇到了个 form_id 的坑,微信文档里并没有详细...

  • 微信小程序之模板消息

    模板消息 参考:官方文档 微信小程序网页上创建模板消息模板 创建完的模板消息如下: 小程序前台页面准备 官方文档原...

  • 小程序接入订阅消息操作指南

    最近,微信对小程序模板消息下发条件进行了调整,订阅消息已经登场,小程序模板消息将退出舞台,作为开发者的你,跟上微信...

  • 微信小程序推送公众号模板消息

    微信与小程序结合推送模板消息 描述: 因小程序是被动触发推送消息,所以要做成推送到该用户的微信公众号上代码推送模板...

  • 微信小程序&PHP 发送模板消息通知

    注意    模板消息接口需写在后台服务器上。【追加:目前微信小程序只能给本人反馈】    模板消息模板需要在小程序...

  • 【技术】微信小程序开发之订阅消息

    1.简介 做过微信小程序开发的小伙伴应该都有被微信小程序的消息下发机制困扰过,在此之前小程序仅能通过模板消息的形式...

  • 微信小程序模板消息

    阅读前建议先通读一下微信官方文章,如下https://developers.weixin.qq.com/minip...

  • 小程序模板消息

    微信小程序模板消息官方文档 一、简介 基于微信的通知渠道,提供了可以高效触达用户的模板消息能力,以便实现服务的闭环...

  • 微信小程序实践

    今天,实践了微信小程序,边看文档边填坑。 IDE:指的是微信开发者工具。IDE版本:Stable v1.02.20...

  • 微信小程序-订阅消息服务通知

    微信小程序目前支持一次性订阅模板消息,也就是首先在微信客户端用户允许订阅消息后,服务端可以按照指定模板推送消息给微...

网友评论

    本文标题:微信小程序模板消息填坑记录

    本文链接:https://www.haomeiwen.com/subject/egoziftx.html