0

0

微信公众平台开发(十二) 发送客服消息_PHP教程

php中文网

php中文网

发布时间:2016-07-13 10:30:26

|

1641人浏览过

|

来源于php中文网

原创

当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。

官方文档中只提供了一个发送客服消息的接口,开发者只要POST一个特定的JSON数据包即可实现消息回复。在这里,我们打算做成一个简单的平台,可以记录用户消息,并且用网页表格的形式显示出来,然后可以对消息进行回复操作。

立即学习PHP免费学习笔记(深入)”;

首先,我们使用数据库记录用户主动发送过来的消息,然后再提取出来展示到页面,针对该消息,进行回复。这里我们只讨论文本消息,关于其他类型的消息,大家自行研究。

3.1 创建数据表

创建一张数据表tbl_customer 来记录用户消息。

<span><span><span>
<span create> <span table><span><span bigint>(<span>) unsigned <span not> <span null> AUTO_INCREMENT COMMENT <span><span><span><span><span char>(<span>) <span not> <span null> COMMENT <span><span><span><span><span varchar>(<span>) <span not> <span null> COMMENT <span><span><span><span><span datetime> <span not> <span null> COMMENT <span><span><span><span><span primary> <span key><span><span key><span engine><span>MyISAM  <span default> CHARSET<span>utf8 ;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

3.2 创建sql.func.php 文件

创建 _query($_sql) {} 函数,来执行INSERT 操作。

<span function> _query(<span><span><span if>(!<span> = <span mysql_query>(<span><span><span exit>('SQL执行失败'.<span mysql_error><span><span return> <span><span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

<span><span>
<span require_once> 'sql.func.php'<span><span function> _record_message(<span>,<span>,<span><span><span><span>
    _query("INSERT INTO tbl_customer(from_user,message,time_stamp) VALUES('<span>','<span>','<span>')"<span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

3.4 处理并记录文本消息

A. 引入回复文本的函数文件,引入记录消息的函数文件

<span><span>
<span require_once> 'responseText.func.inc.php'<span><span><span>
<span require_once> 'record_message.func.inc.php';</span></span></span></span></span></span></span>

B. 记录消息入数据库,并返回给用户刚才发送的消息,在这里,你可以修改成其他的文本,比如:“你好,消息已收到,我们会尽快回复您!” 等等。

    <span><span>
    <span public> <span function> handleText(<span><span><span><span>
        <span> = <span>-><span fromusername><span> = <span trim>(<span>-><span content><span> = <span date>('Y-m-d H:i:s'<span><span if>(!<span empty>( <span><span><span><span>
            _record_message(<span>,<span>,<span><span><span> = <span><span><span><span>
            <span> = _response_text(<span>,<span><span><span echo> <span><span><span else><span><span echo> "Input something..."<span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

我们的最终效果大概如下所示,主要的工作在“信息管理中心”这块,其他的页面布局等等,不在这里赘述了,只讲解消息展示这块。

4.1 具体实施

引入数据库操作文件,执行分页模块,执行数据库查询,将查询出来的结果赋给$_result 供下面使用。

<span><span>
<span require_once> 'includes/sql.func.php'<span><span><span>
<span global> <span>,<span><span _page>"SELECT id FROM tbl_customer",15);        <span><span>
<span> = _query("SELECT * FROM tbl_customer ORDER BY id DESC LIMIT <span>,<span>");</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

将$_result 遍历出来,依次插入表格中。

<span><span form><span>
    <span><span table><span cellspacing><span><span>
        <span><span tr><span><span th><span>消息ID<span><span th><span><span th><span>发送者<span><span th><span><span th><span>消息体<span><span th><span><span th><span>消息时间<span><span th><span><span th><span>操作<span><span th><span><span tr><span>
        <span><span php while _fetch_array_list array><span>
        <span><span tr><span><span td><span><span><span php echo><span><span><span td><span><span td><span><span><span php echo><span><span><span td><span><span td><span><span><span php echo><span><span><span td><span><span td><span><span><span php echo><span><span><span td><span><span td><span><span a><span href><span echo><span><span input><span type><span><span value><span> <span><span a><span><span td><span><span tr><span>
        <span><span php _free_result><span>
    <span><span table><span>
<span><span form><span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

说明:在每条消息后,都有一个“回复”操作,点击该按钮,向reply.php文件中传入fromusername和用户发送的消息,为回复用户消息做准备。

5.1 创建客服消息回复函数文件customer.php

微信发送客服消息的接口URL如下:

https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

需要POST的JSON数据包格式如下:

<span world></span>

所以,根据上面的提示,我们编写处理函数 _reply_customer($touser,$content),调用的时候,传入touser和需要回复的content,即可发送客服消息。

<span function> _reply_customer(<span>,<span><span><span><span>
    <span>="wxef78f22f877db4c2"<span><span>="3f3aa6ea961b6284057b8170d50e2048"<span><span>="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".<span>."&secret=".<span><span><span>=<span file_get_contents>(<span><span><span>=json_decode(<span><span><span>=<span>-><span access_token><span> = '<span>'.<span>.'<span>'.<span>.'<span>'<span><span> = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".<span><span><span> = https_post(<span>,<span><span><span> = json_decode(<span><span><span return> <span><span><span function> https_post(<span>,<span><span><span> =<span curl_init curl_setopt><span>, CURLOPT_URL, <span><span curl_setopt><span>, CURLOPT_SSL_VERIFYPEER, <span false><span curl_setopt><span>, CURLOPT_SSL_VERIFYHOST, <span false><span curl_setopt><span>, CURLOPT_POST, 1<span curl_setopt><span>, CURLOPT_POSTFIELDS, <span><span curl_setopt><span>, CURLOPT_RETURNTRANSFER, 1<span><span> = curl_exec(<span><span><span if> (curl_errno(<span><span><span return> 'Errno'.curl_error(<span><span curl_close><span><span><span return> <span><span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

下面,我们就将上面写好的函数引入到消息回复页面,实现发送客服消息的功能。

微信公众平台开发入门教程 中文WORD版
微信公众平台开发入门教程 中文WORD版

由于微信的大热,为了更好的方便使用微信的用户查询一些信息,这篇文章是入门级的微信公众平台开发教程,需要的朋友可以参考下 这篇入门教程将引导你完成如下任务: 创建百度云平台应用启用微信公众平台开发模式获取订阅、文字、图片、语音、视频消息回复文本、图文及音乐消息程序开发

下载

5.2 点击“回复”按钮,带上fromusername和message参数跳转到reply.php。

5.3 reply.php 页面显示

5.4 reply.php文件分析

<span><span>
<span require_once> '../customer.php';</span></span></span>

form表单提交到relpy.php本身,带有action=relpy.

<span><span form><span method><span><span action><span><span>
    <span><span dl><span>
        <span><span dd><span><span strong><span>收件人:<span><span strong><span><span input><span type><span><span name><span><span class><span><span value><span echo> <span><span dd><span>
        <span><span dd><span><span strong><span>原消息:<span><span strong><span><span input><span type><span><span name><span><span class><span><span value><span echo> <span><span dd><span>
        <span><span dd><span><span span><span><span strong><span>内 容:<span><span strong><span><span span><span><span textarea><span rows><span><span cols><span><span name><span><span><span textarea><span><span dd><span>
        <span><span dd><span><span input><span type><span><span class><span><span value><span> <span><span dd><span>
    <span><span dl><span>
<span><span form><span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

action=reply 动作处理。

<span if>(<span>['action'] == "reply"<span><span> = <span>['tousername'<span><span> = <span>['content'<span><span> = _reply_customer(<span>, <span><span><span if>(<span>->errcode == "0"<span _location>'消息回复成功!', 'index.php'<span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

说明:POST方式获取touser, content,然后调用_reply_customer($touser, $content)方法处理,处理成功,则弹出“消息回复成功!”,然后跳转到index.php页面,完成发送客服消息过程。

6.1 微信用户发送消息

6.2 平台消息管理

6.3 发送客服消息

再次发送客服消息

 

发送客服消息测试成功!

http://files.cnblogs.com/mchina/customer.rar

微信发送客服消息本身很简单,只需POST一个JSON数据包到指定接口URL即可。这里我们进行了扩展,写成一个简单的平台,方便企业的管理。还有很多需要补充和改进的地方,例如,记录客服发送的消息;将相同用户的消息记录成一个集合;实现其他格式的消息回复等,有待读者自行思考开发。

 


David Camp

  • 业务合作,请联系作者QQ:562866602
  • 我的微信号:mchina_tang
  • 给我写信:mchina_tang@qq.com

我们永远相信,分享是一种美德 | We Believe, Great People Share Knowledge...

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/765825.htmlTechArticle当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会...

相关文章

微信app下载
微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

616

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

194

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

91

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

54

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

598

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

56

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 路由精讲视频教程
React 路由精讲视频教程

共10课时 | 2.3万人学习

最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Rust 教程
Rust 教程

共28课时 | 6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号