PHP实现微信模板消息发送给指定用户

使用公众号的模板消息功能,必须是认证过的服务号,需要发送微信号的openid,同一微信号在不同公众号下的openid是不同的,在公众号下是唯一的,获取不到微信号

进入公众平台  功能->模板消息,如果没有,添加功能组件,添加模板消息

进入模板消息,在模板库中会有官方提供的一些公共样式,找到适合的添加,也可以申请自己的,要通过微信官方的审核

进入我的模板,拿到对应模板ID,

发送消息的接口,以 json的形式发送

以审核通知为例,json格式如下

{
    "touser": "这里是接收用户的OPENID",
    "template_id": "这里是模板ID",
    "url": "这里是点击详情后跳转的网址",
    "data": {
        "first": {
            "value": "您的提交内容已审核",
            "color": "#173177"
        },
        "keyword1": {
            "value": "审核的内容",
            "color": "#FF0000"
        },
        "keyword2": {
            "value": "审核成功",
            "color": "#173177"
        },
        "remark": {
            "value": "其它提示",
            "color": "blue"
        }
    }
}

php 数组转json发送请求

public function send($openid){

        $tokens //获取token
        $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$tokens;
        $params = [
            'touser' =>$openid,//接收消息的openid
            'template_id' => 'kheYi0eBdV-zDdO1qk216o9e_wTeRLA4wC-v2AS66p4',//模板ID
            'url' => '', //点击详情后的URL可以动态定义
            'data'=>[
                'first'=>[
                    'value'=>'您的提交内容已审核',
                    'color'=>'#173177'
                ],
                'keyword1'=>[
                    'value'=>'新增广告审核',
                    'color'=>'#173177'
                ],
                'keyword2'=>[
                    'value'=>'审核已通过',
                    'color'=>'#173177'
                ],
                'remark'=>[
                    'value'=>'',
                    'color'=>'#173177'
                ]
            ]
        ];

        $data = json_encode($params,JSON_UNESCAPED_UNICODE);

        $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_RETURNTRANSFER,1);
        curl_exec($curl);
        curl_close($curl);
    }
原文地址:https://www.cnblogs.com/songxuan/p/10400981.html