目录

  1. 最终实现功能及效果图
  2. 用户与公众号消息交互过程
  3. 公众号的接收普通消息能力
    3.1 用户在公众号中发送的一条消息
    3.2 开发者服务器最终收到的数据包
    3.3 数据包参数说明
    3.4 开发者填写的URL
    3.5 开发者服务器的文本消息处理程序
  4. 发送消息到用户的公众号
    4.1 接口请求说明
    4.2 发送文本消息的参数说明
    4.3 成功调用该接口就可向指定的微信用户发送消息(关注公众号的用户)

一、 最终实现功能及效果图

  1. 用户可直接在公众号内聊天!爽歪歪!
  2. 用户发送消息,店内人员立马收到消息推送提醒!
  3. 店内人员收到提醒,可在自己开发的聊天室内聊天!
    可参考聊天室(长连接)开发
  4. 店内人员发送的消息立马发送到用户的公众号首页。
    让用户直接在公众号首页聊天。消息的及时性简直perfect!

二、 用户与公众号消息交互过程

下面来看下用户与公众号之间的消息的交互:
用户发送的消息会先发送到腾讯服务器,若公众号是开发模式,腾讯服务器会将用户发送的消息转发到第三方服务器。第三方服务器拿到数据进行解析,后续会做出响应。第三方发送消息会先发消息到腾讯服务器,然后腾讯服务器将消息发送给公众号用户。

三、 公众号的接收普通消息能力

如果公众号处于开发的模式,当普通微信用户向公众号发送消息时,微信服务器会先收到消息,然后微信服务器会将POST消息的XML数据包发到开发者填写的URL上。

  1. 用户在公众号中发送的一条消息
  2. 开发者服务器最终收到的数据包
<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>1348831860</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[您好呀]]></Content><MsgId>23141583812978587</MsgId>
</xml>
  1. 数据包参数说明
参数名 参数说明
ToUserName 开发者微信号
FromUserName 发送方帐号(微信用户的OpenID)
CreateTime 消息创建时间 (整型)
MsgType 消息类型,文本为text
Content 文本消息内容
MsgId 消息id,64位整型
  1. 开发者填写的URL
    如图:是微信公众号官网上(mp.weixin.qq.com)启用了服务器配置。
    维护的URL:微信服务器收到消息后会将POST消息发送到开发者填写的URL上。

    上图中一般处理程序的名称为WeChat.ashx

  2. 开发者服务器的文本消息处理程序
    我们需要在WeChat.ashx中加入如下代码。​意思就是第三方服务器收到消息后可以做一些操作,比如用户发送数据存入数据库,推送给店内相关人员提醒下有客户咨询​。

#region 文本消息处理程序
/// <summary>
/// 文本消息处理程序
/// </summary>
private void TextHandler(BaseMsg baseMsg)
{TextMsg txtmsg = (TextMsg)baseMsg;string FromUserName = txtmsg.FromUserName;//用户的openidstring msg = txtmsg.Content;//用户输入的文本消息//1. 记录数据库 (已获取用户的openid和用户输入的文本消息) //2. 推送模板   (可以给相关人员推送消息提醒的模板) 让相关人员及时回复//3. 顾问的聊天 可参考之前的聊天室实现
}
#endregion

店内人员收到模板消息如下

四、 发送消息到用户的公众号

  1. 接口请求说明
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

发送文本消息的json数据包如下

{"touser":"OPENID","msgtype":"text","text":{"content":"Hello World"}
}
  1. 发送文本消息的参数说明
参数名 参数说明
touser 发动给指定微信用户的openid
msgtype 消息类型
content 发送消息内容
  1. 成功调用该接口就可向指定的微信用户发送消息(关注公众号的用户)

基于公众号二次开发的聊天实现相关推荐

  1. 适合新手学习的laravel接入微信接口,实现微信公众号二次开发

    2019独角兽企业重金招聘Python工程师标准>>> 最近使用laravel做微信公众号二次开发,发现网上能够参考的资料基本上很少,很多地方都讲的不够详细,致使许多新手采坑无数,所 ...

  2. 微信公众号二次开发实现自动回复文字,图片,图文功能

    微信公众号二次开发实现自动回复文字,图片,图文功能 自动回复文字或图片: 表单里需要有关键字和内容.但就这两个字段也需要在两个数据表里分别显示,因为要提前准备字段内容里有可能是图片,图文等等类型.所以 ...

  3. 微信二次开发接入php代码,适合新手学习的laravel接入微信接口,实现微信公众号二次开发...

    最近使用laravel做微信公众号二次开发,发现网上能够参考的资料基本上很少,很多地方都讲的不够详细,致使许多新手采坑无数,所以这篇文章讲一下如何使用laravel接入微信接口,实现微信公众号二次开发 ...

  4. 基于Java的微信公众号二次开发视频教程

    课程目录 微信二次开发基础部分.avi 01-18 Java微信二次开发微信验证.wmv 01-19 Java微信二次开发智能机器人.wmv 03-04-java微信二次开发公开课-微信公众号平台.w ...

  5. 微信公众号二次开发可以做哪些功能?

    微信公众平台现在很多商家企业都在使用,但如何通过微信公众平台展现自己企业的特色和优势,给客户提供更多便利功能,进而通过微信公众平台为企业带来更多的益处呢? 这是众多使用微信公众平台的商家企业需要深入思 ...

  6. 微信公众号二次开发可以做哪些功能

    微信公众平台现在很多商家企业都在使用,但如何通过微信公众平台展现自己企业的特色和优势,给客户提供更多便利功能,进而通过微信公众平台为企业带来更多的益处呢? 这是众多使用微信公众平台的商家企业需要深入思 ...

  7. 关于微信公众号二次开发(获取二维码)

    1.获取二维码的第一步就是先得获取到Ticket,然后再用ticket来换取二维码. 我们先把存放二维码信息的数据表(rh_qrcode)放进数据库中,然后在控制器中写添加二维码的方法(qcordea ...

  8. 微信公众号二次开发(2)

    入口文件代码<?php /*** wechat php test*///define your token //定义秘钥文件 define("TOKEN", "we ...

  9. 微信公众号二次开发关键字回复图文

    要实现这个功能首先要建2个表(mp__reply_rule,mp_reply_news)这两个表要互相连接,(如果主键是自动增长型 成功后返回值就是最新插入的值(返回的是主键值) .例如mp_repl ...

最新文章

  1. WEB攻击手段及防御第1篇-XSS
  2. Ubuntu系统如何安装nodejs及npm
  3. 多线程学习(三)----死锁问题
  4. 算法(11)-leetcode-explore-learn-数据结构-链表的经典问题
  5. windows拷贝内容到ubuntu中
  6. Apache服务安全加固及Apache优化
  7. repo init 是啥意思
  8. 计算机网络军训口号,霸气押韵的16字军训口号(精选50句)
  9. 数控直流电压源的设计与制作【keil5 AD20]
  10. python中获取中位数的两种方法
  11. 利用百度API进行淘宝评论关键词提取
  12. JS特效一:图片轮播图(JS必须掌握的特效)
  13. 至高心法 - SpringCloud Alibaba (二)Nacos 服务注册与配置中心
  14. 外贸里面 LC TT DP DA BG 是什么
  15. html实现下拉跳转
  16. linux下安装anaconda教程清华源
  17. WebAPI压力测试
  18. Nachos线程管理
  19. c语言10个选手10个评委,C语言歌星大奖赛为参赛的选手打分.doc
  20. Android-(6)自定义控件

热门文章

  1. MS5611大气压强传感器驱动代码(基于GD32F103)
  2. 傅老师课堂:Oracle高级查询之GROUP BY
  3. 8D报告要如何编写?
  4. kanzi安装和使用
  5. Altair HyperWorks Solvers 14.0.211 HotFix Win64 Linux64 2CD
  6. 如何优雅的抄袭代码?天下代码一大抄,这才是正确的姿势
  7. 项目范围说明书如何编写?
  8. django中常用的数据查询方法
  9. 阿里云ECS进阶训练营Day1 搭建VuePress
  10. goland防止sql注入的方法