使用微信公众号做模板消息推送

有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

导读:本篇文章讲解 使用微信公众号做模板消息推送,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

前言

需要做一个微信公众号推送的业务,看了下有以下三种类型,这边选择模板方式。

  1. 模板消息:此消息可以群发,可以单发,发送次数不受限制,但是发送模板的内容必须经过微信官方审核。
  2. 向单个粉丝发送消息:此种功能发送次数没有限制,但是接受消息的粉丝必须在48小时内与服务号有互动,否则服务号的消息发送不出去。
  3. 群发消息:给所有关注此微信的人同时发送,但每个月的发送次数有限制。

说明

  1. openid:用户在本应用里的唯一值(建议在公众号做个类似绑定订阅等功能获取)
  2. access_token: 在公众号相关接口获取
  3. template_id: 在公众号后台微信模板库里面查询

代码

 /**
  * @param string $touser       接收方的openid
  * @param string $url          接收方点击详情后跳转的地址
  * @param array $data          页面的参数
  * @param string $template_id  模板id
  * @return mixed
  * @date 2022/11/25 15:06
  * @author
  * @desc
  */
public function send($touser="", $url="",$data = [],$template_id="123"){
        if (empty($touser)) output_error("缺少人员openid,操作失败");
        if (empty($url)) output_error("操作失败");
        $params = [
            'touser' =>$touser,
            'template_id' => $template_id,//模板ID
            'url' =>$url, //点击详情后的URL可以动态定义
            'data' =>
                [
                    'first' =>
                        [
                            'value' => '您有一条消息。',
                            'color' => '#173177'
                        ],
                    'keyword1' =>
                        [
                            'value' => $data['student_name'],
                            'color' => '#173177'
                        ],
                    'keyword2' =>
                        [
                            'value' => $data['time'],
                            'color' => '#173177'
                        ],
                    'remark' =>
                        [
                            'value' => '详情图片请点击查看',
                            'color' => '#173177'
                        ],
                ]
        ];
        $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $this->getAccessToken();
        $res = $this->jsonCurlPost($url,$params);
        return $res;
    }

    protected function jsonCurlPost($url = '', $postData = '', $options = array())
    {
        if (is_array($postData)) {
            $postData = json_encode($postData);
        }
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5); //设置cURL允许执行的最长秒数
        if (!empty($options)) {
            curl_setopt($ch, CURLOPT_HTTPHEADER, $options);
        }
        //https请求 不验证证书和host
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $data = curl_exec($ch);
        curl_close($ch);
        return json_decode($data, true);
    }

调用

        $data=[
            'student_name'=>'学生名',
            'time'=>date('Y-m-d H:i:s'),
        ];
        $res = (new DoSend())->send('open_id','https://blog.csdn.net/xiantianga6883',$data,'template_id');

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/133989.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!