·本篇文章是微信公众号开发的第6篇----推送模板消息,如果你是小白,建议从第一篇开始看,链接:微信公众号开发-接口配置信息(第①篇)_微信公众号 接口配置信息怎么设置-CSDN博客
- 打开微信公众平台,扫码登录
- 一直往下滑,点击模板消息
- 一共需要4个东西,一个是获得微信传来的post请求,一个是输入用户的openid,还有一个是模板id,最后一个就是数据了
- 首先回来测试界面,点击添加模板信息
- 根据我下图的格式来编写模板内容
格式: {{sxxx.DATA}}
名称:无极电影
内容:
电影名称:{{name.DATA}}
电影地区:{{address.DATA}}
电影主角:{{person.DATA}}
电影价格:{{price.DATA}}
编写好内容后,会生成一个模板id,复制
- 现在转到php代码:
首先需要拿到token和openid
<?php //获取token
$appId = 'wx066664444444444'; //换成自己的
$appSecret = '651f3222222222222222226';//换成自己
$templateId = 'S666666666666-TCI'; //模板id
$openId = "o66666666666666666M"; //用户openid
$accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appId&secret=$appSecret";
$accessTokenResponse = file_get_contents($accessTokenUrl);
$accessTokenData = json_decode($accessTokenResponse, true);
$accessToken = $accessTokenData['access_token'];
消息推送代码:
<?php
//模板消息推送
require "./idInfo.cls.php";
$data = file_get_contents('./model.json'); //获取文件里的内容
$postDatas = json_decode($data,true); //先把json转成php格式
$postData = array(
'touser' => $openId,
'template_id' => $templateId,
'topcolor' => '#FF0000',
// 'client_msg_id'=> "MSG_000001",
'data' => $postDatas
);
//JSON_UNESCAPED_UNICODE需要使用这个超全局变量才能正确输出json
$postDataJson = json_encode($postData,JSON_UNESCAPED_UNICODE);
// 发送模板消息
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=$accessToken";
$ch = curl_init(); //初始化curl会话
curl_setopt($ch, CURLOPT_URL,$url); //设置发送数据的网址
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设置有返回值,0,直接显示
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); //禁用证书验证
curl_setopt($ch, CURLOPT_POST, 1);//post方法请求
curl_setopt($ch, CURLOPT_POSTFIELDS, $postDataJson);//post请求发送的数据包
$response = curl_exec($ch);
$response = json_decode($response,true); //将json数据转成数组
print_r($response);
// 处理响应
if ($response['errcode'] == 0) {
echo "模板消息发送成功!";
} else {
echo "模板消息发送失败: " . $response['errmsg'];
}
curl_close($ch); //关闭会话
模板推送那肯定是少不了数据的,我们创建一个json并且引入到推送代码中
{
"name": {
"value":"异型旗舰",
"color":"#f00"
},
"address":{
"value":"广东广州",
"color":"#FF0000"
},
"person": {
"value":"无极天尊",
"color":"#173177"
},
"price":{
"value":"38",
"color":"#173177"
}
}
- 完成上面所有代码编写后,就可以直接进行测试了!
最后消息也是推送成功了,如果有问题评论区留言~