C#开发微信门户及应用(三)之文本消息和图文消息应答

这篇文章主要为大家详细介绍了c#开发微信门户及应用第二篇,微信文本消息和图文消息的应答,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下、学习下微信的相关开发,也就成为计划的安排事情之一了。本系列文章希望从一个循序渐进的角度上,全面介绍微信的相关开发过程和相关经验总结,希望给大家了解一下相关的开发历程。

在前面两篇两篇随笔《C#开发微信门户及应用(1)–开始使用微信接口》和《C#开发微信门户及应用(2)–微信消息的处理和应答》里面,大致介绍了我微信应用的框架构建,本随笔继续介绍这一主题,介绍消息应答里面的文本应答和图文应答的过程。

我们知道,给手机用户发送响应消息,它可以分为好多种方式,如回复文本消息、回复图片消息、回复语音消息、回复视频消息、回复音乐消息、回复图文消息等,如下所示。

C#开发微信门户及应用(三)之文本消息和图文消息应答

而其中图片、视频、语音这三种方式,是需要开通微信认证才可以向用户发送存在微信服务器上的媒体信息,一般没有认证的公众号或者服务号,是不能发送这几种内容的。

1、实体信息关系及定义

在上一篇微信开发的随笔中,我展示了对接收消息和回复消息的应用实体类,这些实体类是我根据需要,根据开发需要,在应用层面对它们进行了封装,如回复的消息关系如下所示。

C#开发微信门户及应用(三)之文本消息和图文消息应答

消息基类BaseMessage的实体类定义如下所示,它对日期构造了一个整形数值,并具备了一些常规的属性,并且还有一个重要的ToXML方法,用来给方法传递这些XML数据的。

///   /// 基础消息内容  ///   [XmlRoot(ElementName = "xml")]  public class BaseMessage  {    ///     /// 初始化一些内容,如创建时间为整形,    ///     public BaseMessage()    {      this.CreateTime = DateTime.Now.DateTimeToInt();    }    ///     /// 开发者微信号    ///     public string ToUserName { get; set; }    ///     /// 发送方帐号(一个OpenID)    ///     public string FromUserName { get; set; }    ///     /// 消息创建时间 (整型)    ///     public int CreateTime { get; set; }    ///     /// 消息类型    ///     public string MsgType { get; set; }    public virtual string ToXml()    {      this.CreateTime = DateTime.Now.DateTimeToInt();//重新更新      return MyXmlHelper.ObjectToXml(this);    }  }

登录后复制

回复的文本消息实体类代码如下所示,我们可以看到,它继承了很多通用的实体属性,并且还具备了一个ToXml的通用方法,我们需要把它转换为响应的XML的时候,就使用这个方法就可以了。

  ///   /// 回复文本消息  ///   [System.Xml.Serialization.XmlRoot(ElementName = "xml")]  public class ResponseText : BaseMessage  {    public ResponseText()    {      this.MsgType = ResponseMsgType.Text.ToString().ToLower();    }    public ResponseText(BaseMessage info) : this()    {      this.FromUserName = info.ToUserName;      this.ToUserName = info.FromUserName;    }    ///     /// 内容    ///         public string Content { get; set; }  }

登录后复制

而图文消息对象类ResponseNews,它包含更多的信息定义

  ///   /// 回复图文消息  ///   [System.Xml.Serialization.XmlRoot(ElementName = "xml")]  public class ResponseNews : BaseMessage  {    public ResponseNews()    {      this.MsgType = ResponseMsgType.News.ToString().ToLower();      this.Articles = new List();    }    public ResponseNews(BaseMessage info) : this()    {      this.FromUserName = info.ToUserName;      this.ToUserName = info.FromUserName;    }    ///     /// 图文消息个数,限制为10条以内    ///     public int ArticleCount    {      get      {        return this.Articles.Count;      }      set      {        ;//增加这个步骤才出来XML内容      }    }    ///     /// 图文列表。    /// 多条图文消息信息,默认第一个item为大图,注意,如果图文数超过10,则将会无响应    ///     [System.Xml.Serialization.XmlArrayItem("item")]    public List Articles { get; set; }  }

登录后复制

而其中的图文列表集合中的对象,它也是一个实体类型,包含了一些图文的链接,标题等信息,不在赘述。

2、消息的回复处理

如对于文本消息,我们可以用以下的方式进行处理。

ResponseText response = new ResponseText(info);response.Content = "抱歉,此功能暂未开通。";result = response.ToXml();

登录后复制

对于图文消息,我们可能需要录入更多的消息才能返回更好的效果。

注意图文的消息,图片的尺寸最好按照官方的标准,否则在手机上看起来不好看,官方的标准好像是宽高是(360,200)像素

 ///     /// 订阅或者显示公司信息    ///     ///     ///     private string ShowCompanyInfo(BaseMessage info)    {      string result = "";      //使用在微信平台上的图文信息(单图文信息)      ResponseNews response = new ResponseNews(info);      ArticleEntity entity = new ArticleEntity();      entity.Title = "广州爱奇迪软件科技有限公司";      entity.Description = "欢迎关注广州爱奇迪软件--专业的单位信息化软件和软件开发框架提供商,我们立志于为客户提供最好的软件及服务。";      entity.Description += "我们是一家极富创新性的软件科技公司,从事研究、开发并销售最可靠的、安全易用的技术产品及优质专业的服务,帮助全球客户和合作伙伴取得成功。......(此处省略1000字,哈哈)";      entity.PicUrl = "http://www.iqidi.com/WeixinImage/company.png";      entity.Url = "http://www.iqidi.com";      response.Articles.Add(entity);      result = response.ToXml();      return result;    }

登录后复制

我们来看看我公司的微信门户菜单,看起来是不是很酷呢。

C#开发微信门户及应用(三)之文本消息和图文消息应答

对于这两种(文本消息、图文消息)用的地方是最多,很多微信门户,都主要是使用这两种方式进行响应。当然,我们还可以根据客户手机提交上来的各种消息进行不同的处理,请求消息的类型我在上一篇的随笔有介绍,如下所示。

C#开发微信门户及应用(三)之文本消息和图文消息应答

需要关注了解整体效果,可以使用微信直接扫描二维码即可。

C#开发微信门户及应用(三)之文本消息和图文消息应答

以上就是C#开发微信门户及应用(三)之文本消息和图文消息应答的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2439657.html

(0)
上一篇 2025年3月3日 12:09:19
下一篇 2025年2月27日 17:35:44

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • C#开发微信门户及应用(四)之关注用户列表及详细信息管理

    这篇文章主要为大家详细介绍了c#开发微信门户及应用第四篇,关注用户列表及详细信息管理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继…

    2025年3月3日
    200
  • 关于C#如何实现的UDP收发请求工具类的示例代码分析

    这篇文章主要介绍了c#实现的udp收发请求工具类,结合具体实例形式分析了c#针对udp请求的监听、接收、发送等相关操作技巧,需要的朋友可以参考下 本文实例讲述了C#实现的UDP收发请求工具类。分享给大家供大家参考,具体如下: 初始化: Li…

    编程技术 2025年3月3日
    200
  • C#中如何实现微信红包功能的示例代码分享

    这篇文章主要介绍了c#实现微信红包功能,使用正态分布计算红包金额,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了C#仿微信红包功能的具体代码,供大家参考,具体内容如下 Program.cs代码: class Prog…

    2025年3月3日
    200
  • C#中自定义控件如何实现TextBox禁止粘贴的示例代码

    这篇文章主要介绍了c#自定义控件实现textbox禁止粘贴的方法,结合具体实例形式分析了c#自定义控件的创建、使用方法及textbox禁止粘贴的实现技巧,需要的朋友可以参考下 本文实例讲述了C#自定义控件实现TextBox禁止粘贴的方法。分…

    编程技术 2025年3月3日
    200
  • C#中DateTime与时间戳转换的实例代码

    本篇文章主要介绍了c# datetime与时间戳转换实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳。 1. 什么是…

    编程技术 2025年3月3日
    200
  • C#连接Oracle的实例教程

    这篇文章主要介绍了c#连接oracle的方法,结合实例形式总结分析了几种常见的c#连接oracle数据库的操作技巧与相关注意事项,需要的朋友可以参考下 本文实例总结了C#连接Oracle的方法。分享给大家供大家参考,具体如下: 一、通过Sy…

    编程技术 2025年3月3日
    200
  • C#中如何使用SendMessage?

        在c#中,程序采用了的驱动采用了事件驱动而不是原来的消息驱动,虽然.net框架提供的事件已经十分丰富,但是在以前的系统中定义了丰富的消息对系统的编程提供了方便的实现方法,因此在c#中使用消息有时候还是大大提高编程的效率的。  1 定…

    编程技术 2025年3月3日
    200
  • Windows服务在C#下如何创建(图)?

    这篇文章主要介绍了使用c#创建windows服务的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 本文介绍了使用C#创建Windows服务的实例代码,分享给大家 一、开发环境 操作系统:Windows …

    2025年3月3日 编程技术
    200
  • C#实现身份证识别功能的图文代码详解

    这篇文章主要介绍了c#身份证识别相关技术详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近研究C#相关的OCR技术,图像识别一般C和C++这种底层语言做的比较多,C#主要是依托一些封装好的组件进行调用,这里介绍一种身份证识别的方法…

    2025年3月3日
    200
  • C#中关于TCP粘包出现的问题解决的示例

    这篇文章主要为大家详细介绍了c#中tcp粘包问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一、TCP粘包产生的原理 1.TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一…

    2025年3月3日 编程技术
    200

发表回复

登录后才能评论