基于公众号二次开发的聊天实现

目录

  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;//用户的openid
    string 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. 成功调用该接口就可向指定的微信用户发送消息(关注公众号的用户)
    在这里插入图片描述
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星银色飞行船

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

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

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

打赏作者

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

抵扣说明:

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

余额充值