微信公众号模板消息群发php代码示例
微信公众号模板消息群发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代码示例
- 浅析PHP中Collection 类的设计
- 微信JSAPI Ticket接口签名详解
- jQuery事件委托之Safari
- 原生JS获取元素集合的子元素宽度实例
- asp知识整理笔记2(问答模式)
- mysql向mariadb平滑过渡的步骤详解
- Vue 中使用 CSS Modules优雅方法
- asp.net类序列化生成xml文件实例详解
- Bootstrap栅格系统学习笔记
- Angular.js项目中使用gulp实现自动化构建以及压缩打
- 蒙古帝国是由谁一手建立的
- 规培生是什么意思
- java连接mysql数据库 java连接sql server数据库
- 《守望的天空》爱情甜吻戏,你心动了吗 期待浪
- 微信小程序实现搜索历史功能