好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

微信php发送消息 php企业微信接收消息

很多站长朋友们都不太清楚微信php发送消息,今天小编就来给大家整理微信php发送消息,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 求微信公众号接口 给客户发送信息的 PHP代码 2、 php发送1000条微信模板消息万多久 3、 微信公众平台如何通过php代码给会员发送被动响应消息 求微信公众号接口 给客户发送信息的 PHP代码

你好,可以用客服消息接口或模板消息接口实现。但是需要认证公众号才能有权限。

认证服务号可以发送客服接口消息[需要对应openid24小时内有互动]和模板消息,订阅号则没有模板消息权限。

发送文字消息示例:

$postdata ='{"touser":"o5BkRs_vRwfPqAb1ceXHfJDzmQ5o","msgtype":"text","text":{"content":"Hello World"}}';

    $opts = array(

        'http' => array(

            'method' => 'POST',

            'Content-Length' => strlen($postdata),

            'Host' => 'api.weixin.qq.com',

            'Content-Type' => 'application/json',

            'content' => $postdata

        )

    );

    $context = stream_context_create($opts);

    $result = file_get_contents('你的access_token', true, $context);

    echo $result;

php发送1000条微信模板消息万多久

几分钟。

用swoole,循环task,就可以发送1000条微信了,不需要耗费太长的时间,如果操作熟练的话,短短几秒钟也是有可能的。

消息的发送速度主要看你的操作熟练程度了,新手的话会稍微的慢一些,大概会花费几分钟的时间的。

微信公众平台如何通过php代码给会员发送被动响应消息

明确在哪接收消息

从微信公众平台接口消息指南中可以了解到,当用户向公众帐号发消息时,微信服务器会将消息通过POST方式提交给我们在接口配置信息中填写的URL,而我们就需要在URL所指向的请求处理类CoreServlet的doPost方法中接收消息、处理消息和响应消息。

接收、处理、响应消息

下面先来看我已经写好的CoreServlet的完整代码:

package org.liufeng.course.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.liufeng.course.service.CoreService;

import org.liufeng.course.util.SignUtil;

/**

* 核心请求处理类

*

* @author liufeng

* @date 2013-05-18

*/

public class CoreServlet extends HttpServlet {

private static final long serialVersionUID = 4440739483644821986L;

/**

* 确认请求来自微信服务器

*/

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 微信加密签名

String signature = request.getParameter("signature");

// 时间戳

String timestamp = request.getParameter("timestamp");

// 随机数

String nonce = request.getParameter("nonce");

// 随机字符串

String echostr = request.getParameter("echostr");

PrintWriter out = response.getWriter();

// 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败

if (SignUtil.checkSignature(signature, timestamp, nonce)) {

out.print(echostr);

}

out.close();

out = null;

}

/**

* 处理微信服务器发来的消息

*/

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 将请求、响应的编码均设置为UTF-8(防止中文乱码)

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

// 调用核心业务类接收消息、处理消息

String respMessage = CoreService.processRequest(request);

// 响应消息

PrintWriter out = response.getWriter();

out.print(respMessage);

out.close();

}

}

代码说明:

1)第51行代码:微信服务器POST消息时用的是UTF-8编码,在接收时也要用同样的编码,否则中文会乱码;

2)第52行代码:在响应消息(回复消息给用户)时,也将编码方式设置为UTF-8,原理同上;

3)第54行代码:调用CoreService类的processRequest方法接收、处理消息,并得到处理结果;

4)第57~59行:调用response.getWriter().write()方法将消息的处理结果返回给用户

从doPost方法的实现可以看到,它是通过调用CoreService类的processRequest方法接收、处理消息的,这样做的目的是为了解耦,即业务相关的操作都不在Servlet里处理,而是完全交由业务核心类CoreService去做。下面来看CoreService类的代码实现:

package org.liufeng.course.service;

import java.util.Date;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.liufeng.course.message.resp.TextMessage;

import org.liufeng.course.util.MessageUtil;

/**

* 核心服务类

*

* @author liufeng

* @date 2013-05-20

*/

public class CoreService {

/**

* 处理微信发来的请求

*

* @param request

* @return

*/

public static String processRequest(HttpServletRequest request) {

String respMessage = null;

try {

// 默认返回的文本消息内容

String respContent = "请求处理异常,请稍候尝试!";

// xml请求解析

Map<String, String> requestMap = MessageUtil.parseXml(request);

// 发送方帐号(open_id)

String fromUserName = requestMap.get("FromUserName");

// 公众帐号

String toUserName = requestMap.get("ToUserName");

// 消息类型

String msgType = requestMap.get("MsgType");

// 回复文本消息

TextMessage textMessage = new TextMessage();

textMessage.setToUserName(fromUserName);

textMessage.setFromUserName(toUserName);

textMessage.setCreateTime(new Date().getTime());

textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);

textMessage.setFuncFlag(0);

// 文本消息

if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {

respContent = "您发送的是文本消息!";

}

// 图片消息

else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_IMAGE)) {

respContent = "您发送的是图片消息!";

}

// 地理位置消息

else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LOCATION)) {

respContent = "您发送的是地理位置消息!";

}

// 链接消息

else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LINK)) {

respContent = "您发送的是链接消息!";

}

// 音频消息

else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)) {

respContent = "您发送的是音频消息!";

}

// 事件推送

else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_EVENT)) {

// 事件类型

String eventType = requestMap.get("Event");

// 订阅

if (eventType.equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)) {

respContent = "谢谢您的关注!";

}

// 取消订阅

else if (eventType.equals(MessageUtil.EVENT_TYPE_UNSUBSCRIBE)) {

// TODO 取消订阅后用户再收不到公众号发送的消息,因此不需要回复消息

}

// 自定义菜单点击事件

else if (eventType.equals(MessageUtil.EVENT_TYPE_CLICK)) {

// TODO 自定义菜单权没有开放,暂不处理该类消息

}

}

textMessage.setContent(respContent);

respMessage = MessageUtil.textMessageToXml(textMessage);

} catch (Exception e) {

e.printStackTrace();

}

return respMessage;

}

}

代码说明:

1)第29行:调用消息工具类MessageUtil解析微信发来的xml格式的消息,解析的结果放在HashMap里;

2)32~36行:从HashMap中取出消息中的字段;

3)39-44、84行:组装要返回的文本消息对象;

4)47~82行:演示了如何接收微信发送的各类型的消息,根据MsgType判断属于哪种类型的消息;

5)85行:调用消息工具类MessageUtil将要返回的文本消息对象TextMessage转化成xml格式的字符串;

关于事件推送(关注、取消关注、菜单点击)

对于消息类型的判断,像文本消息、图片消息、地理位置消息、链接消息和语音消息都比较好理解,有很多刚接触的朋友搞不懂事件推送消息有什么用,或者不清楚该如何判断用户关注的消息。那我们就专门来看下事件推送,下图是官方消息接口文档中关于事件推送的说明:

关于微信php发送消息的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于微信php发送消息 php企业微信接收消息的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did163554
更新时间:2023-02-11   阅读:34次

上一篇: php擅长做什么工作 php学什么程度能找工作

下一篇:php显示中文乱码 php页面显示中文乱码

相关资讯

最新资料更新

  • 1.织梦DedeCMS文章标题自动增加长尾关键词的方法
  • 2.织梦dedecms默认作者和默认来源修改方法
  • 3.怎么解决DedecmsV5.7 SP1广告不能显示
  • 4.DEDECMS自动锚文本的设置方法与技巧详解
  • 5.织梦首页和列表页怎么调用自定义字段
  • 6.dedecms中tags页面显示错位的解决方法
  • 7.dede:likearticle文章标签和tag标签关联错误解决方法
  • 8.dedecms使用getall获取当前页面tag标签(超连接)的方法
  • 9.dedecms获取当前所在栏目ID的方法
  • 10.织梦DEDECMS结构化数据Meta申明标签
  • 11.Dedecms文章设置推荐后列表页标题自动加粗的解决方法
  • 12.dedecms网站搬家需要的备份的文件
  • 13.Dede实现文章列表隔行换背景色让显示内容有所区别
  • 14.织梦(dedecms)循环调用多级子栏目如二级栏目下三级栏目
  • 15.DEDE列表调用有缩图显示缩图,无缩图则不显示缩图的方法
  • 16.dedecms三级栏目调用方法
  • 17.详解织梦DedeCMS栏目页分页标题Title添加“第N页”的方法
  • 18.织梦dedecms系统后台安全提示去除方法
  • 19.dedecms图片相关问题—后台上传图片实现图片轮播
  • 20.织梦Dedecms获取缩略图片原图地址的方法

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]