• 微信发送模板消息


      在微信开发中我们会经常遇到一种情况,就是需要主动向用户发送消息。除了微信的群发(订阅号每天1条,服务号一个月4条)、用户的交互(点击菜单,上报地理位置等),我们没有办法在隔一段时间之后给用户主动发送。目前微信支持客服消息(48小时)、微信模板消息和刚刚出来的一次性订阅消息来主动给客户发送消息。

    一、准备工作

      1.认证的服务号一个

      2.开通模板消息功能

      3.已经申请需要发送的模板消息

       大概是这个样子的

      

    二、获取access_token

        这个东西大部分开发者还是会的,但是还是有小部分初学者是不会的,所以允许我啰嗦几句介绍下怎么获取access_token

        

    <?php 
    function get_token(){
        $AppId = 'wx31a27decc3315323';
        $AppSecret = '056cb15f11d9159a1d8df8db45be8636';
        $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$AppId.'&secret='.$AppSecret;
        $res = json_decode(file_get_contents($url), true);
        $access_token = $res['access_token'];
    }
    ?>

    这个access_token是有时效性的,只有7200秒,并且获取access_token的接口有次数限制,所以需要保存起来如果过期了再重新获取。

    三、拼接模板消息,发送给用户

      1.打开模板消息->我的模板,然后点击模板消息后面的详情

      

      打开后是这样的:

      

     这里的详细内容很重要,是我们在接下来要拼接的内容。

     2.拼接模板消息,发送给用户

      这里拼接的模板消息一定要是跟上面的详细内容对应的,不然可能会导致发送失败。

      

    public function sendTemplate(){$access_token = "";//需要自己获取access_token
            $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token;
            $array = array(
                //这是填的是openid,如果大家手里没有openid又想发给自己的话,打开微信公众号用户管理,按下F12,然后查看自己的名字,里面有个data-fakeidid就是自己的openid
                'touser' => "odys8xDP3L7UP1nXoDFrevFqO6KQ",
                'template_id' => "vH8URK4R-w5hhXIM6IJiy6t91d_ZWdx6FGRkrICWQYU",
                'data' => array(
                    'name' => array(
                        'value' => '一本书',
                        'color' => '#743A3A'
                        ),
                    'remark' => array(
                        'value' => '你花了100块',
                        'color' => '#743A3A'
                        )
                    )
                );
            $res = json_decode(curl($url, json_encode($array)), true);
            var_dump($res);
        }

    发送返回结果errcode为0,表示发送成功,结果如下

      

      

  • 相关阅读:
    学习第五天
    第四天学习
    学习第三天
    学校键盘键位设置
    学习第二天
    fatal error C1902: 程序数据库管理器不匹配;请检查安装解决
    ffmpeg遇到inttypes.h和UINT64_C
    <ZZ>linux yum命令详解
    <ZZ>Linux rpm 命令参数使用详解[介绍和应用]
    转:Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
  • 原文地址:https://www.cnblogs.com/lina520/p/7325772.html
Copyright © 2020-2023  润新知