要在 PHP 中实现微信公众号模板消息功能,您需要进行以下步骤:
-
在微信公众平台中申请模板消息功能并创建模板,获取模板消息 ID。
-
在 PHP 中调用微信公众号接口,使用 access_token 获取用户的 openid。
-
准备模板消息的数据,包括模板 ID、openid 以及模板中参数的值。
-
调用微信公众号接口,将模板消息发送给用户。
下面是一个使用 PHP 实现微信公众号模板消息功能的示例代码:
<?php
// 获取用户 openid
$access_token = "your_access_token";
$url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$access_token."&next_openid=";
$result = file_get_contents($url);
$obj = json_decode($result, true);
$openid = $obj["data"]["openid"][0];
// 准备模板消息的数据
$template_id = "your_template_id";
$data = array(
"first" => array(
"value" => "您好,您有新的任务",
"color" => "#173177"
),
"keyword1" => array(
"value" => "完成微信开发",
"color" => "#173177"
),
"keyword2" => array(
"value" => "2019年12月31日",
"color" => "#173177"
),
"remark" => array(
"value" => "请尽快完成任务",
"color" => "#173177"
)
);
$post_data = array(
"touser" => $openid,
"template_id" => $template_id,
"data" => $data
);
// 发送模板消息
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token;
$options = array(
"http" => array(
"header" => "Content-type: application/json",
"method" => "POST",
"content" => json_encode($post_data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$obj = json_decode($result, true);
if ($obj["errcode"] == 0) {
echo "发送成功";
} else {
echo "发送失败,错误码:" . $obj["errcode"];
}
?>
其中,$access_token 是通过调用接口获取的访问令牌,$openid 是要发送模板消息的用户的 openid,$template_id 是在公众平台中创建的模板消息的模板 ID,$data 是要发送的模板消息的数据。使用 file_get_contents() 函数向微信公众号接口发送 POST 请求,并将返回结果解析为 JSON 格式。如果发送成功,$obj["errcode"] 的值应该为 0。