首页 > 文章列表 > 在PHP中实现微信模板消息发送

在PHP中实现微信模板消息发送

php 微信模板消息 发送
309 2023-05-13

随着微信的普及,微信模板消息也成为了企业与用户沟通的重要渠道。在PHP中实现微信模板消息发送,可以方便地实现推送业务通知、购买成功等消息,促进企业与用户之间的互动。本文就为大家详细介绍在PHP中实现微信模板消息发送的步骤。

一、准备工作

  1. 开通微信公众号并且绑定测试账号

微信公众号开通过程这里不再赘述,具体可以参考微信官方文档。在开发微信公众号之前,需要先申请开发账号,并绑定一个测试账号,这样才能测试发送消息的效果。

  1. 申请模板消息

开发者可以登录公众平台后台,进入【模板消息】页面,然后根据自己的需求申请使用模板消息。注意:一个公众号最多可以申请25个模板消息。

  1. 获取access_token

在发送模板消息之前,需要获取access_token,access_token是微信服务器和第三方服务器之间进行通信的唯一标识。可以通过使用用户名和密码、小程序appid和密钥、服务商开放平台等方式获取到access_token。在PHP中,我们可以通过curl请求来获取access_token。

二、编写代码

  1. 创建模板消息内容数组

在PHP中,我们需要先定义发送模板消息所需要的数据,以关联数组的形式表示,代码如下:

$data = array(
     'touser' => 'openid',//用户的openid,必填
     'template_id' => 'template_id',//模板id,必填
     'url' => 'http://www.baidu.com',//模板跳转链接,选填
     'data' => array(
         'first' => array('value' => '消息标题', 'color' => '#173177'),
         'keyword1' => array('value' => '消息内容', 'color' => '#173177'),
         'keyword2' => array('value' => '消息时间', 'color' => '#173177'),
         'remark' => array('value' => '消息备注', 'color' => '#173177'),
     )
);

注意:其中touser、template_id是必填项,其他内容都是非必填项。

  1. 通过curl向微信服务器发送模板消息

在PHP中,我们可以通过curl函数来模拟http请求,向微信服务器发送消息,代码如下:

//获取access_token
$access_token = getAccessToken();

$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $access_token;
$data_json = json_encode($data);

$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_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_json)
));

$res = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);

$result = json_decode($res, true);
if ($result['errcode'] == 0 && $result['errmsg'] == 'ok') {
    echo '发送成功';
} else {
    echo '发送失败'.$result['errmsg'];
}

代码中的getAccessToken()函数用于获取access_token值。

三、总结

在PHP中实现微信模板消息发送并不难,只需要准备好模板消息内容、获取access_token,并通过curl向微信服务器发送消息即可。注意:发送模板消息之前,需要先申请开通模板消息功能,并绑定测试账号。