+
95
-

回答

先获取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);
}


网友回复

我知道答案,我要回答