php发送微信模板消息
时间: 2023-09-06 08:09:04 浏览: 82
要发送微信模板消息,你需要完成以下步骤:
1. 获取 access_token:在发送模板消息前,需要先获取 access_token。可以通过以下接口获取:
```
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
```
其中,APPID 和 APPSECRET 分别为你的应用ID和应用密钥。该接口返回的 access_token 有效期为 2 小时,需要定时刷新。
2. 构造模板消息:
```
{
"touser": "OPENID",
"template_id": "TEMPLATE_ID",
"data": {
"first": {
"value": "恭喜你购买成功!",
"color": "#173177"
},
"keynote1": {
"value": "巧克力",
"color": "#173177"
},
"keynote2": {
"value": "39.8元",
"color": "#173177"
},
"keynote3": {
"value": "2014年9月22日",
"color": "#173177"
},
"remark": {
"value": "欢迎再次购买!",
"color": "#173177"
}
}
}
```
其中,touser 表示要发送给的用户的openid,template_id 表示模板ID,data 表示模板消息内容。具体的模板消息内容需要根据模板ID的要求来填写。
3. 发送模板消息:
```
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
```
其中,ACCESS_TOKEN 为第一步获取的 access_token。通过该接口发送模板消息即可。
在 PHP 中,可以使用 curl 函数来发送 HTTP 请求。以下是一个发送微信模板消息的 PHP 代码示例:
```
<?php
// 获取 access_token
$appid = "你的应用ID";
$appsecret = "你的应用密钥";
$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'];
// 构造模板消息
$data = array(
"touser" => "用户的openid",
"template_id" => "模板ID",
"data" => array(
"first" => array(
"value" => "恭喜你购买成功!",
"color" => "#173177"
),
"keynote1" => array(
"value" => "巧克力",
"color" => "#173177"
),
"keynote2" => array(
"value" => "39.8元",
"color" => "#173177"
),
"keynote3" => array(
"value" => "2014年9月22日",
"color" => "#173177"
),
"remark" => array(
"value" => "欢迎再次购买!",
"color" => "#173177"
)
)
);
$post_data = json_encode($data);
// 发送模板消息
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$access_token}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($post_data))
);
$res = curl_exec($ch);
curl_close($ch);
echo $res;
```
注意,以上代码仅供参考,需要根据具体情况进行调整。
阅读全文