前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序发送模板消息

微信小程序发送模板消息

作者头像
孤烟
发布2020-09-27 11:08:03
2.9K0
发布2020-09-27 11:08:03
举报
文章被收录于专栏:golang开发笔记golang开发笔记

微信小程序还提供了给客服发送模板消息的功能,以便商家给客户发送通知。

官方文档

https://developers.weixin.qq....

使用效果

图片描述
图片描述

具体步骤

1、设置模板

登录 https://mp.weixin.qq.com/ “功能”-“模板消息”-“模板库” 这里我们选择合适的模板,点"选用”。 回到"我的模板",这里会看到选用的模板,有相应的模板id。

图片描述
图片描述
2、发送模板消息
代码语言:javascript
复制
//获取access_token
 $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $wxConfig['AppID'] . '&secret=' . $wxConfig['AppSecret']; //替换成自己的小程序appid和appsecret
        $weixin = file_get_contents($url);
        $jsondecode = json_decode($weixin);
        $array = get_object_vars($jsondecode);
        $token = $array['access_token'];

        $data = [];
        $data['touser'] =$openid;//这里填用户的opentid
        $data['template_id'] = 'xxxxxxxxxxxxxxxxxxx';//这里填第一步选用的模板id
        //点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
        $data['page'] = 'pages/index/main';
        
        $data['form_id'] = $row['prepay_id'];//表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id,本例为prepay_id,即支付时返回的prepay_id
        //
        $data['emphasis_keyword'] = "keyword1.DATA";//模板需要放大的关键词,不填则默认无放大
        //模板内容,不填则下发空模板。具体格式请参考示例。
        $data['data'] = [
            'keyword1' => ["value" => $row['money'],
                // "color"=>"#173177" //这里还可以设置字体颜色
            ],
            'keyword2' => ["value" => $row['trade_sn'],
                // "color"=>"#173177" //这里还可以设置字体颜色
            ],
            'keyword3' => ["value" => $row['ptime'],
              // "color"=>"#173177" //这里还可以设置字体颜色
            ],
            'keyword4' => ["value" => $buyRow['nickname'],
              // "color"=>"#173177" //这里还可以设置字体颜色
            ],
        ];
        $url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' . $token;
        $data = json_encode($data, true);
        $return = $this->Post($url, $data);
代码语言:javascript
复制
 public function Post($url, $data)
    {
        $cl = curl_init();
        if (stripos($url, 'https://') !== FALSE) {
            curl_setopt($cl, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($cl, CURLOPT_SSL_VERIFYHOST, FALSE);
            curl_setopt($cl, CURLOPT_SSLVERSION, 1);
        }
        curl_setopt($cl, CURLOPT_URL, $url);
        curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($cl, CURLOPT_POST, true);
        curl_setopt($cl, CURLOPT_POSTFIELDS, $data);
        $content = curl_exec($cl);
        $status = curl_getinfo($cl);
        curl_close($cl);
        if (isset($status['http_code']) && $status['http_code'] == 200) {
            return $content;
        } else {
            return FALSE;
        }
    }
3、返回值

返回示例

代码语言:javascript
复制
{
 "errcode": 0,
 "errmsg": "ok"
}

errcode: 0:为成功

errCode 的合法值

说明

最低版本

40037

template_id不正确

41028

form_id不正确,或者过期

41029

form_id已被使用

41030

page不正确

45009

接口调用超过限额(目前默认每个帐号日调用限额为100万)

小结

模板推送位置:服务通知 模板下发条件:用户本人在微信体系内与页面有交互行为后触发,详见 下发条件说明 模板跳转能力:点击查看详情仅能跳转下发模板的该帐号的各个页面 需要注意的是formID有两种方式: 一种是小程序前端,页面的 form 组件,属性 report-submit 为 true 时,可以声明为需要发送模板消息,此时点击按钮提交表单可以获取 formId,用于发送模板消息。 wxml文件代码:

代码语言:javascript
复制
<form bindsubmit="submit" report-submit="true">
  <!--这里是表单的各种 <input>-->
  <button formType="submit">提交</button>
</form>

js 点击将formid 传给服务端。

代码语言:javascript
复制
submitForm:function(e){
    var formid = e.detail.formid;
    wx.request({
      url: 'http://xxxxxxxxx.php',//服务器地址
      data:{
        formid:formid
      },
      header:{
        "Content-type":"application/json",
      },
      success:function(res){
        console.log(res.data);
      },
      fail:function(err){
        console.log(err);
      }
    })
  }

还有一种就服务端完成支付行为后返回的prepay_id。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 官方文档
  • 使用效果
  • 具体步骤
    • 1、设置模板
      • 2、发送模板消息
        • 3、返回值
        • 小结
        相关产品与服务
        云开发 CloudBase
        云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档