欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c# 微信开发(五)接收和回复用户发来的消息

程序员文章站 2024-03-13 12:36:15
...

写在前面:关注最下方公众号“Dotnet专栏”回复“微信开发”免费获取源码。
开发过程中有啥需要我帮助的,就加我微信交流哦。
链接: 微信官方文档.
步骤

  1. 第一步:接收解析用户发来的消息
  2. 第二步:对不同类型的用户消息回复不同消息

第一步:接收解析用户发来的消息

(一):后台写一个验证方法Valid用来接收用户消息,用户一旦发消息就跳到这个方法,这个函数不能随便写,是得和我们公众号 **接口配置信息 **填的方法名一样的,然后我们定义成post请求,这样用户在公众号后台发消息就自动带着用户的消息内容post到了这个方法
c# 微信开发(五)接收和回复用户发来的消息

/// <summary>
            /// 相应请求消息
            /// </summary>
            /// <returns></returns>
            [HttpPost]
            public ActionResult Valid()
            {
                System.IO.Stream s = System.Web.HttpContext.Current.Request.InputStream;
                byte[] b = new byte[s.Length];
                s.Read(b, 0, (int)s.Length);
                string postStr = Encoding.UTF8.GetString(b);
                var result = WeixinMsgHelper.ResponseMsg(postStr);
                return Content(result, "text/xml", Encoding.UTF8);
            }

(二)好了,成功接收到消息后我们就来对消息解析。用户发的消息微信都是封装成xml文件来post到Valid,所以我们得对xml文件解析,文本post过来的是这样的。那我们就解析用一个模型来接住这些信息就好,具体看代码就知道了哈。然后根据xml中的MsgType来判断这个消息是什么类型,现在举例的是文本text,然后图片是image,语音是voice,视频是vedio等等,这些都是微信封装固定的啦,我等只能照着写模型来接。
c# 微信开发(五)接收和回复用户发来的消息
c# 微信开发(五)接收和回复用户发来的消息
对不同类型的用户消息回复不同消息
上面我们就成功得到了用户发来的消息和解析成功了,这一步我们就对不同类型消息回复不同消息,我们写一个switch case
回复文本:
c# 微信开发(五)接收和回复用户发来的消息
c# 微信开发(五)接收和回复用户发来的消息
回复图片:

回复图片、视频、语音等比文本复杂的多,我们需要上传图片、语音或者视频的临时素材或者永久素材到微信服务器,其中临时的素材可以在服务器保留3天而永久的素材则是直接保存在公众号的素材管理中。这里提一下,上传临时素材最好是写个工具来上传,我这里就是为了比较全的展示所以就直接在程序中上传临时素材。好了,我们来实现后台回复图片消息。
c# 微信开发(五)接收和回复用户发来的消息
上面我们回复的字段,其中MediaId是我们上传素材到服务器后返回的这个素材ID,然后我们把这个ID带进去就可以了,现在来讲如何获取MediaId。上传图片素材需要的变量有
1、access_token
2、URL(图片路径,图片格式要严格参照微信官方,大小不超过2M,可以为png、jpg、jpeg格式)
3、type

官方接口为

url=https://api.weixin.qq.com/cgi-bin/media/upload?access_token={AccessTokendModel.access_token}&type=image

然后我们结合这个接口和图片路径URL进行一个Http请求,然后返回来的json我们用模型来接,好,返回的数据其中media_id这个就是我们需要的,然后把这个media_id带到回复xml中就可以了哦,具体如何请求看代码哈。
c# 微信开发(五)接收和回复用户发来的消息
回复图文:
图文回复就也比较简单,就按着这种格式然后写入两个URL就可以,一个PicUrl是图文的图片,Url则是这个图文点击后调至的路径
c# 微信开发(五)接收和回复用户发来的消息
好了,今天就写到这了,喜欢文章记得点在看哈。附上效果图
c# 微信开发(五)接收和回复用户发来的消息
关注我们,获取更多Dotnet开发资源c# 微信开发(五)接收和回复用户发来的消息
c# 微信开发(五)接收和回复用户发来的消息

相关标签: 微信公众号 c#