前言
需要做一个微信公众号推送的业务,看了下有以下三种类型,这边选择模板方式。
- 模板消息:此消息可以群发,可以单发,发送次数不受限制,但是发送模板的内容必须经过微信官方审核。
- 向单个粉丝发送消息:此种功能发送次数没有限制,但是接受消息的粉丝必须在48小时内与服务号有互动,否则服务号的消息发送不出去。
- 群发消息:给所有关注此微信的人同时发送,但每个月的发送次数有限制。
说明
- openid:用户在本应用里的唯一值(建议在公众号做个类似绑定订阅等功能获取)
- access_token: 在公众号相关接口获取
- template_id: 在公众号后台微信模板库里面查询
代码
/**
* @param string $touser 接收方的openid
* @param string $url 接收方点击详情后跳转的地址
* @param array $data 页面的参数
* @param string $template_id 模板id
* @return mixed
* @date 2022/11/25 15:06
* @author
* @desc
*/
public function send($touser="", $url="",$data = [],$template_id="123"){
if (empty($touser)) output_error("缺少人员openid,操作失败");
if (empty($url)) output_error("操作失败");
$params = [
'touser' =>$touser,
'template_id' => $template_id,//模板ID
'url' =>$url, //点击详情后的URL可以动态定义
'data' =>
[
'first' =>
[
'value' => '您有一条消息。',
'color' => '#173177'
],
'keyword1' =>
[
'value' => $data['student_name'],
'color' => '#173177'
],
'keyword2' =>
[
'value' => $data['time'],
'color' => '#173177'
],
'remark' =>
[
'value' => '详情图片请点击查看',
'color' => '#173177'
],
]
];
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $this->getAccessToken();
$res = $this->jsonCurlPost($url,$params);
return $res;
}
protected function jsonCurlPost($url = '', $postData = '', $options = array())
{
if (is_array($postData)) {
$postData = json_encode($postData);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_TIMEOUT, 5); //设置cURL允许执行的最长秒数
if (!empty($options)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $options);
}
//https请求 不验证证书和host
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$data = curl_exec($ch);
curl_close($ch);
return json_decode($data, true);
}
调用
$data=[
'student_name'=>'学生名',
'time'=>date('Y-m-d H:i:s'),
];
$res = (new DoSend())->send('open_id','https://blog.csdn.net/xiantianga6883',$data,'template_id');
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/133989.html