微信公众号模板消息群发php代码示例

建站知识 2025-04-06 02:03www.168986.cn长沙网站建设

微信公众号模板消息群发PHP代码详解

想要实现微信公众号模板消息的群发功能吗?那就不能错过这篇PHP代码示例文章。通过php循环,你可以轻松实现模板消息的批量发送。

要注意如果模板消息发送不稳定,可能是因为aess_token令牌过期或缓存未及时更新。建议查看日志文件,并考虑每300秒更新一次aess_token,避免发送过程中的困扰。

模板id是公众号设置行业后获得的,一定要妥善保管。接下来,让我们看看下面的PHP代码示例:

```php

// 直接在页面逻辑中调用fahuo_wechat()函数即可,事先要引用该函数。

function fahuo_wechat($shopid){

// 检查是否配置了发送手机号信息

if(_cfg("sendmobile")){

// 加载系统模型

$thisdb = System::load_sys_class("model");

// 获取aess_token和模板id等相关信息

$aess = getAessToken();

// 获取aess_token和模板id

$aess_token = $aess['aess_token'];

$template_id = $aess['template_id'];

// 查询需要发送消息的会员记录

$sql = "select from `@_member_go_record` where `shopid`='$shopid' and status = '已付款,未发货,未完成'";

$row = $thisdb->GetList($sql);

// 构建发送消息的URL

$postUrl = "

// 循环发送消息

foreach($row as $k=>$v){

$uid = $v['uid'];

// 查询会员绑定的手机号等信息

$member_band = $thisdb->GetOne("SELECT b_code,b_data FROM `@_member_band` WHERE `b_uid` = '$uid' and b_data!='' ");

// 如果会员绑定了手机号且相关信息有效,则发送消息

if(!empty($member_band['b_data'])){

// 构建回调链接和消息数据

$url = WEB_PATH."/mobile/user/buyDetail/".$shopid;

$mobile = $v['pany_money'];

$data = array(

"touser" => $member_band['b_code'], // 一次只发一个人

"template_id" => $template_id,

"url" => $url, // 回调链接

"data" => array(

'first' => array(

"value" => "您好," . $v['username'] . ",您的牌局已组建成功。"

)

)

);

// TODO: 这里应该是发送消息的逻辑代码,使用POST请求发送数据到微信API接口。

}

}

}

?>

```

在缤纷的色彩世界中,我们精心构建了一个信息丰富的数据阵列。主体颜色被设定为"888",给人一种沉稳而内敛的感觉。关键词的设定更是细致入微,如"shopname","时间","金豆","待定"等,每个关键词都被赋予了特定的价值和颜色。还有一个特别的备注字段,标注着"点击查看详情",颜色为"054ff7",引人注目。这一切都包含在一个特定的函数中,准备被发送到微信服务器。这是发货通知内容的精心构建过程。

在网络通信的海洋中,Curl就像一位灵巧的航海家,引领我们跨越SSL的障碍,远方的数据宝藏。在初始化Curl时,我们可以通过设置两个关键的选项来绕过SSL验证:

```php

$curl = curl_init(); // 初始化Curl

curl_set($curl, CURLOPT_SSL_VERIFYPEER, false); // 禁用SSL证书验证

curl_set($curl, CURLOPT_SSL_VERIFYHOST, false); // 禁用SSL主机名验证

```

接下来,如果有数据需要发送,我们将启用POST请求并设置POST数据:

```php

if (!empty($data)){

curl_set($curl, CURLOPT_POST, true); // 设置POST请求

curl_set($curl, CURLOPT_POSTFIELDS, $data); // 设置POST数据

}

```

然后,我们设置Curl以文件流的形式返回结果,而不是直接输出:

```php

curl_set($curl, CURLOPT_RETURNTRANSFER, true); // 设置返回文件流形式的结果

```

执行Curl请求后,我们检查返回的输出。如果微信发信后的回执不包含":0",则意味着发送失败,我们会将失败的日志追加到指定的文件中。如果返回了特定的错误码"03",并且提供了手机号,我们会发送提醒消息给客户,提醒他们关注公众号:

```php

$output = curl_exec($curl); // 执行Curl请求并获取输出

if (!strstr($output, ":0")) { // 如果回执不包含":0",说明发送失败

$path = G_CACHES . 'aess_token2.json'; // 日志保存路径

file_put_contents($path, $output, FILE_APPEND); // 追加日志内容

}

if (strstr($output, "03") && $mobile) { // 如果是错误码"03",并且提供了手机号

sendMobileReminder($mobile, '请关注我们的公众号,否则收不到通知。'); // 发送提醒消息的函数(需自行实现)

}

```

关闭Curl资源并返回的JSON输出:

```php

curl_close($curl); // 关闭Curl资源

return json_decode($output); // 返回的JSON输出

上一篇:浅析PHP中Collection 类的设计 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by