请问php如何实现公众号模板消息推送给用户?
网友回复
先获取access_token然后接口推送模板数据,完整代码如下:
<?php var_dump(send_notice()); function send_notice() { $access_token = ''; $AppID = ""; $AppSecret = ""; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$AppID."&secret=".$AppSecret; $tokendata = curl_post($url); if (isset($tokendata['access_token'])) { $access_token = $tokendata['access_token']; }else{ return 'access_token获取失败'; } //模板消息 $json_template = json_tempalte(); $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token; $res = curl_post($url, urldecode($json_template)); var_dump($res); if ($res['errcode'] == 0) { return '发送成功'; } else { return '发送失败'; } } function json_tempalte() { //模板消息 $template = [ 'touser' => '', //用户openid 'template_id' => '', //在公众号下配置的模板id 'url' => '', //点击模板消息会跳转的链接 'topcolor' => "#7B68EE", //消息字体颜色 'data' => [ 'first' => ['value' => urlencode("您的活动已通过"), 'color' => "#FF0000"], 'keyword1' => ['value' => urlencode('测试文章标题'), 'color' => '#FF0000'], //keyword需要与配置的模板消息对应 'keyword2' => ['value' => urlencode(date("Y-m-d H:i:s")), 'color' => '#FF0000'], 'keyword3' => ['value' => urlencode('测试发布人'), 'color' => '#FF0000'], 'keyword4' => ['value' => urlencode('测试状态'), 'color' => '#FF0000'], 'remark' => ['value' => urlencode('备注:这是测试'), 'color' => '#FF0000'] ], ]; return json_encode($template); } function curl_post($url, $data = []) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // POST数据 curl_setopt($ch, CURLOPT_POST, 1); // 把post的变量加上 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $output = curl_exec($ch); curl_close($ch); return json_decode($output, true); }