PHP异步实现微信公众号模板消息的主动推送

基于YOLO的印章检测及文字识别 针对印章自动化检测与文字识别需求,提出了一种融合改进YOLO模型与OCR技术的端到端解决方案,旨在解决复杂背景干扰、印章残缺变形及环形文字排列等难题 阅读详情
# 安装 Composer
curl -sS https://getcomposer.org/installer | php

使用composer.phar客户端将Guzzle作为依赖添加到项目:

php composer.phar require guzzlehttp/guzzle:~6.0

或者,你可以编辑项目中已存在的composer.json文件,添加Guzzle作为依赖:

 {
   "require": {
      "guzzlehttp/guzzle": "~6.0"
   }
}

安装完毕后,你需要引入Composer的自动加载文件:

require 'vendor/autoload.php';
<?php

use GuzzleHttp\Client;

require 'vendor/autoload.php';

/**
 * 使用 Guzzle 异步实现
 */
function test()
{
    $access_token = curl_get('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的app_id&secret=你的app_secret')['access_token'];

    # --------------------------------------------------------------------
    // 返回结果继续执行代码
    ob_end_clean();
    ob_start();

//    $data['code'] = 1;
//    $data['data'] = '';
//    $data['msg'] = '发送中';
//    $data['url'] = '/wxfs.php/wechatfans.send/add';
//    $data['wait'] = 3;
//    echo json_encode($data); // 返回结果给前端

    $size = ob_get_length();
    header("Content-Length: " . $size);
    header("Connection: close");
    header("HTTP/1.1 200 OK");
    header('Content-Type:application/json; charset=utf-8');
    ob_end_flush();
    if (ob_get_length()) {
        ob_flush();
    }
    flush();
    fastcgi_finish_request(); // 响应完成, 立即返回到前端,关闭连接
    ignore_user_abort(true); // 在关闭连接后,继续运行php脚本
//        set_time_limit(0); // 没有时间限制,不设置超时时间(根据实际情况使用)
    # --------------------------------------------------------------------

    $client = new Client();

    $wxUrlForSendingMessage = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=';

    // 单人
//    $touser_arr = array('openid1', 'openid2');
    // 群发
    $touser_arr = Db::table("wxfs")->column("openid");
    $touser_arr = array_reverse($touser_arr);

    $num = 0;

    @unlink(__DIR__ . '/logs.txt');

    foreach ($touser_arr as $v) {
        $response = $client->post($wxUrlForSendingMessage, [
            'query' => [
                'access_token' => $access_token,
            ],
            'json' => [
                'touser' => $v, // 粉丝的openid
                'template_id' => '微信公众号的模板id',
                'url' => 'www.baidu.com',
                'data' => [
                    'first' => [
                        'value' => '标题',
                        'color' => '#173177',
                    ],
                    'keyword1' => [
                        'value' => '项目名称',
                        'color' => '#CC3399',
                    ],
                    'keyword2' => [
                        'value' => '最新状态',
                        'color' => '#CC3399',
                    ],
                    'keyword3' => [
                        'value' => date('Y年m月d日 H:i:s'),
                        'color' => '#CC3399',
                    ],
                    'remark' => [
                        'value' => 备注,
                        'color' => '#FF0000',
                    ]
                ]
            ]
        ]);

        if (json_decode((string)$response->getBody(), true)['errmsg'] === 'ok') {
            $num += 1;

            // 记录到文件
            logs(date('Y-m-d H:i:s') . " [{$v}] 发送成功\r\n");
        }
    }

}

function curl_get($url)
{
    // 初始化
    $curl = curl_init();
    // 设置抓取的url
    curl_setopt($curl, CURLOPT_URL, $url);
    // 设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, 0);
    // 设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    // 执行命令
    $data = curl_exec($curl);
    // 关闭URL请求
    curl_close($curl);

    if (isset(json_decode($data, true)['errcode'])) {
        return json_decode($data, true);
    } else {
        // 返回数据
        return json_decode($data, true);
    }
}

function logs($str)
{
    // 记录到文件
    if (($fp = fopen(__DIR__ . '/logs.txt', 'a+')) !== false) {
        fputs($fp, $str);
        fclose($fp);
    }
}

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4 阅读详情

相关推荐

Aurix TC3XX Cache memory分析

Aurix Cache memory 分析

qwe0405080615的博客 4346

PHP微信公众号(微信小程序)模板消息推送

PHP微信公众号(微信小程序)模板消息推送

奥特曼想做个好人的博客 1893

LightRAG实战:从零构建中药知识图谱,解锁六种检索模式效能对比

本文详细介绍了如何使用轻量级RAG框架LightRAG从零构建中药知识图谱的实战过程。通过本地部署环境搭建、开源模型配置与《本草纲目》数据导入,文章重点对比了Naive、Local、Global、Hybrid、Mix和Bypass六种检索模式在中药问答中的效能差异,并提供了可视化图谱与优化心得,为开发者构建专业领域智能问答系统提供了实用指南。

weixin_29096377的博客 176

PHP:guzzlehttp/guzzle发送同步和异步网络请求

文档: https://guzzle-cn.readthedocs.io/zh_CN/latest/ https://packagist.org/packages/guzzlehttp/guzzle https://docs.guzzlephp.org/en/stable/ 安装 composer require guzzlehttp/guzzle 发送GET请求 <?php require 'vendor/autoload.php'; use GuzzleHttp\Client; $cl

彭世瑜的博客 3277

Kafka延迟队列实现方案全解析

$ \text{时间轮} = \text{环形数组} + \text{分层设计} $$需要补充代码实例或特定场景的优化方案可进一步细化,此大纲已覆盖核心技术路径。

lz989796的博客 816

点云工具CloudCompare下载、安装与汉化

打开软件后,是英文界面,找到菜单栏【Display】-【Language Translation】,选择简体中文。进入官网后,点击菜单栏【Download】提示需要重启软件才能生效,点OK即可。重启软件后,已经是中文了。选择合适系统进行下载。常规软件安装流程即可。

sagima_sdu的博客 1万+

PHP 微信小程序给公众号推送消息

首先需要去微信公众平台配置一下关联 可以看一下这个链接 有详细讲述。这样就可以直接拿过去用了。配置好以后就是代码部分。

qq_56816632的博客 988

Python地理空间数据库之geopandas使用详解

地理空间数据分析在许多领域中都有着广泛的应用,包括地理信息系统(GIS)、城市规划、环境科学、地质勘探等。Python GeoPandas是一个强大的库,旨在简化地理空间数据的处理和分析。本文将深入介绍GeoPandas库,包括其基本概念、功能特性、示例代码以及在实际应用中的应用场景。

Rocky006的博客 1万+

PHP开发微信公众号(二)消息接受与推送

上一篇文章我们知道怎么获取二维码,这样别人就可以扫描二维码来关注我们,但是别人关注后,发送消息,我们怎么进行相关处理? 这里我们就来学习下怎么处理处理这些消息,以及推送消息。 学习之前首先你需要有一个域名和空间 url:填写你希望微信公众平台把用户的消息转发到哪里 token:随便输入,用于微信公众平台和你的站点进行第一次通信建立关联用 /* 用于第一次验证我...

weixin_30586085的博客 1301

AI Agent开发第85课-DeepSeek-OCR 安装全指南:从 Transformers 到 vLLM,手把手教你跑通企业级 OCR

本文系统讲解 DeepSeek-OCR 的两种部署方式——基于 Hugging Face Transformers 的标准推理与基于 vLLM 的高性能加速推理。详细说明 CUDA 与 PyTorch 版本匹配、环境验证、依赖安装等关键细节,并提供可直接运行的完整代码示例。无论你是单卡调试还是高并发服务部署,都能在这里找到清晰路径。

打造全国最全的AI Agent开发知识领域的博客 2542

路径跟踪 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)

纯追踪算法(Pure Pursuit)参考了人类驾驶行为,其基本思想是在待跟踪路径上设置预瞄点(goal-ahead),通过简单的几何方法驱动机器人跟踪预瞄点直至抵达目标位置.本文详细推导纯追踪算法的理论原理及其变种——自适应纯追踪算法(APP)和规范化纯追踪算法(RPP),并提供ROS C++/Python/Matlab三种仿真实现加深理解

FRIGIDWINTER的博客 8407

如何用PHP实现消息推送

通过服务器自动推送消息到客户端(浏览器,APP,微信)的应用技术。

hxbgzgs85的博客 1612

Win10或Win11电脑找不到以太网网络适配器的解决方法

Win10或Win11电脑找不到以太网网络适配器的解决方法

Robot_PLC_HMI_Automation 653

PHP多线程Swoole实现微信公众号模板消息的主动推送

服务端代码: <?php $server = new Swoole\Server('127.0.0.1', 9503); $server->set([ 'worker_num' => 1, 'daemonize' => false, // 守护进程,开启后,关闭SSH面也可进行 'log_file' => 'swoole_task.log', 'task_worker_num' => 200 // task进程数量 ]

withoutfear的博客 1177

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

php 异步请求微信模板消息_PHP实现发送模板消息(微信公众号版)

以下为开发步骤:1.微信公众号为服务号且开通微信认证(其他类型账号不能发送)2.ip白名单设置你的服务器ip(用于获取access_token)3.网页授权你的域名(用于获取用户的openid)4.开通模板消息并在模板库中选用模板5.获取openid6.发送模板消息ip白名单网页授权开通模板消息并选用模板获取openid1.用户同意授权,获取codeappid:公众号appid基础设置里有(必填)...

weixin_29574585的博客 364

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

php 异步请求微信模板消息_使用php发送微信公众号模板消息推送的方法

我们在微信公众号开发过程中经常会需要向用户推送消息,最常用到的就是微信公众号模板消息了,下面是代码工坊整理的php实现微信公众号模板消息的使用思路。1、开通模板消息功能。2、添加模板消息模板。3、代码中首先先获取公众号的access_token。4、获取到了access_token进行缓存,接下来我们拼接数据,组合出正确的格式。5、向微信模板消息接口发送数据,微信会把信息发送给指定用户。(用户需已...

weixin_32126555的博客 560

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

php微信发送客服消息,微信公众号利用客服消息和模板消息实现微信群发

1、关于群发接口和消息接口关于群发接口1.订阅号每天可以群发消息一条,服务号每月(自然月)四条的群发权限。开发者模式下,可以通过高级群发接口,实现更灵活的群发能力。2.注意● 对于认证订阅号,群发接口每天可成功调用1次,此次群发可选择发送给全部用户或某个标签;● 对于认证服务号虽然开发者使用高级群发接口的每日调用限制为100次,但是用户每月只能接收4条,无论在公众平台网站上,还是使用接口群发,用户...

weixin_39896617的博客 881

php 异步请求微信模板消息_php实现微信模板消息推送

本文实例为大家分享了php微信模板消息推送的具体代码,供大家参考,具体内容如下1.微信公众号模板消息配置2.PHP代码/*** 发送模板消息*/public function send_notice(){//获取access_tokenif ($_COOKIE['access_token']){$access_token2=$_COOKIE['access_token'];}else{$json_...

weixin_30666313的博客 193

php 异步请求微信模板消息_模板消息群发,突破微信公众号群发次数限制!

每个认证的服务号都自带模板消息,只不过需要再次开发或直接免开发使用第三方,实现多次消息推送,触达到更多的粉丝。有如下优点:增加群发次数:无群发次数限制,不用再拍4次限制(增加文章阅读量等)消息便捷直达:服务通知,类型固定,轻松获取重点信息提升活动参与:增加活动曝光度,唤醒粉丝引导参与活动,提升活跃度满足个性需求:支持插入粉丝昵称,文案颜色修改,点击跳转网址/商品链接/图文/官网/小程序等精准标签群...

weixin_36163071的博客 529

php 异步请求微信模板消息_微信公众号开发(关注、取消、发送模板消息)

前言现在很多业务会基于微信公众号实现。笔者做这部分开发的时候,项目不允许再引入外部 jar 包,故做的相当蛋疼。这里是总结时写的 demo 节选。如何将 xml 消息转换成 json 对象?xstreammaven 依赖 <dependency> <groupId>com.thoughtworks.xstream</groupId...

weixin_36440941的博客 268

php 异步请求微信模板消息_PHP微信开发之模板消息回复

这篇文章主要为大家详细介绍了PHP微信开发之简单实现模板消息回复 的相关资料,感兴趣的小伙伴们可以参考一下微信公众平台上,有个模板消息回复接口:可以用来实现回复特定的消息-----比如用户下了订单之后,回复给用户您的订单正在处理中...比如下面这张图:用户进行了一些操作之后,服务号能够返回特定的消息----这就是模板消息。要实现模板消息的回复,你的公众号必须是经过微信认证的,如果是个人的订阅号,暂...

weixin_36322704的博客 254

TP5微信公众号发送消息通知

public function index(){ $data=[ 'touser'=>'用户openid', 'template_id'=>'模板id', 'url'=>$web_url = "http://".$_SERVER['SERVER_NAME'], 'to...

zhuchuana的博客 3048

微信客服消息html链接,微信公众号利用客服消息和模板消息实现微信群发

1、关于群发接口和消息接口关于群发接口1.订阅号每天可以群发消息一条,服务号每月(自然月)四条的群发权限。开发者模式下,可以通过高级群发接口,实现更灵活的群发能力。2.注意● 对于认证订阅号,群发接口每天可成功调用1次,此次群发可选择发送给全部用户或某个标签;● 对于认证服务号虽然开发者使用高级群发接口的每日调用限制为100次,但是用户每月只能接收4条,无论在公众平台网站上,还是使用接口群发,用户...

weixin_39894104的博客 1187

php 异步请求微信模板消息_php 实现发送微信模板消息(转)

* Created by PhpStorm.* User: StandOpen* Date: 15-1-7* Time: 9:41*/classOrderPush{protected$appid;protected$secrect;protected$accessToken;function __construct($appid, $secrect){$this->appid =$appi...

weixin_35079144的博客 195
上一篇: 通过html5自定义video标签的海报与播放按钮功能的代码详解
下一篇: PHP怎么守护进程运行php脚本
withoutfear
博客等级 码龄13年 541粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

withoutfear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值