最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#開發(fā)微信門戶及應(yīng)用(3) 文本消息和圖文消息應(yīng)答

 更新時間:2017年06月14日 11:04:36   作者:伍華聰  
這篇文章主要為大家詳細介紹了C#開發(fā)微信門戶及應(yīng)用第二篇,微信文本消息和圖文消息的應(yīng)答,具有一定的參考價值,感興趣的小伙伴們可以參考一下

微信應(yīng)用如火如荼,很多公司都希望搭上信息快車,這個是一個商機,也是一個技術(shù)的方向,因此,有空研究下、學習下微信的相關(guān)開發(fā),也就成為計劃的安排事情之一了。本系列文章希望從一個循序漸進的角度上,全面介紹微信的相關(guān)開發(fā)過程和相關(guān)經(jīng)驗總結(jié),希望給大家了解一下相關(guān)的開發(fā)歷程。

在前面兩篇兩篇隨筆《C#開發(fā)微信門戶及應(yīng)用(1)--開始使用微信接口》《C#開發(fā)微信門戶及應(yīng)用(2)--微信消息的處理和應(yīng)答》里面,大致介紹了我微信應(yīng)用的框架構(gòu)建,本隨筆繼續(xù)介紹這一主題,介紹消息應(yīng)答里面的文本應(yīng)答和圖文應(yīng)答的過程。

我們知道,給手機用戶發(fā)送響應(yīng)消息,它可以分為好多種方式,如回復文本消息、回復圖片消息、回復語音消息、回復視頻消息、回復音樂消息、回復圖文消息等,如下所示。

而其中圖片、視頻、語音這三種方式,是需要開通微信認證才可以向用戶發(fā)送存在微信服務(wù)器上的媒體信息,一般沒有認證的公眾號或者服務(wù)號,是不能發(fā)送這幾種內(nèi)容的。

1、實體信息關(guān)系及定義

在上一篇微信開發(fā)的隨筆中,我展示了對接收消息和回復消息的應(yīng)用實體類,這些實體類是我根據(jù)需要,根據(jù)開發(fā)需要,在應(yīng)用層面對它們進行了封裝,如回復的消息關(guān)系如下所示。

消息基類BaseMessage的實體類定義如下所示,它對日期構(gòu)造了一個整形數(shù)值,并具備了一些常規(guī)的屬性,并且還有一個重要的ToXML方法,用來給方法傳遞這些XML數(shù)據(jù)的。

/// <summary>
  /// 基礎(chǔ)消息內(nèi)容
  /// </summary>
  [XmlRoot(ElementName = "xml")]
  public class BaseMessage
  {
    /// <summary>
    /// 初始化一些內(nèi)容,如創(chuàng)建時間為整形,
    /// </summary>
    public BaseMessage()
    {
      this.CreateTime = DateTime.Now.DateTimeToInt();
    }

    /// <summary>
    /// 開發(fā)者微信號
    /// </summary>
    public string ToUserName { get; set; }

    /// <summary>
    /// 發(fā)送方帳號(一個OpenID)
    /// </summary>
    public string FromUserName { get; set; }

    /// <summary>
    /// 消息創(chuàng)建時間 (整型)
    /// </summary>
    public int CreateTime { get; set; }

    /// <summary>
    /// 消息類型
    /// </summary>
    public string MsgType { get; set; }

    public virtual string ToXml()
    {
      this.CreateTime = DateTime.Now.DateTimeToInt();//重新更新
      return MyXmlHelper.ObjectToXml(this);
    }

  }

回復的文本消息實體類代碼如下所示,我們可以看到,它繼承了很多通用的實體屬性,并且還具備了一個ToXml的通用方法,我們需要把它轉(zhuǎn)換為響應(yīng)的XML的時候,就使用這個方法就可以了。

  /// <summary>
  /// 回復文本消息
  /// </summary>
  [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;
    }

    /// <summary>
    /// 內(nèi)容
    /// </summary>    
    public string Content { get; set; }
  }

而圖文消息對象類ResponseNews,它包含更多的信息定義

  /// <summary>
  /// 回復圖文消息
  /// </summary>
  [System.Xml.Serialization.XmlRoot(ElementName = "xml")]
  public class ResponseNews : BaseMessage
  {
    public ResponseNews()
    {
      this.MsgType = ResponseMsgType.News.ToString().ToLower();

      this.Articles = new List<ArticleEntity>();
    }
    public ResponseNews(BaseMessage info) : this()
    {
      this.FromUserName = info.ToUserName;
      this.ToUserName = info.FromUserName;
    }

    /// <summary>
    /// 圖文消息個數(shù),限制為10條以內(nèi)
    /// </summary>
    public int ArticleCount
    {
      get
      {
        return this.Articles.Count;
      }
      set
      {
        ;//增加這個步驟才出來XML內(nèi)容
      }
    }

    /// <summary>
    /// 圖文列表。
    /// 多條圖文消息信息,默認第一個item為大圖,注意,如果圖文數(shù)超過10,則將會無響應(yīng)
    /// </summary>
    [System.Xml.Serialization.XmlArrayItem("item")]
    public List<ArticleEntity> Articles { get; set; }

  }

而其中的圖文列表集合中的對象,它也是一個實體類型,包含了一些圖文的鏈接,標題等信息,不在贅述。

2、消息的回復處理

如對于文本消息,我們可以用以下的方式進行處理。

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

對于圖文消息,我們可能需要錄入更多的消息才能返回更好的效果。

注意圖文的消息,圖片的尺寸最好按照官方的標準,否則在手機上看起來不好看,官方的標準好像是寬高是(360,200)像素

 /// <summary>
    /// 訂閱或者顯示公司信息
    /// </summary>
    /// <param name="info"></param>
    /// <returns></returns>
    private string ShowCompanyInfo(BaseMessage info)
    {
      string result = "";
      //使用在微信平臺上的圖文信息(單圖文信息)
      ResponseNews response = new ResponseNews(info);
      ArticleEntity entity = new ArticleEntity();
      entity.Title = "廣州愛奇迪軟件科技有限公司";
      entity.Description = "歡迎關(guān)注廣州愛奇迪軟件--專業(yè)的單位信息化軟件和軟件開發(fā)框架提供商,我們立志于為客戶提供最好的軟件及服務(wù)。\r\n";
      entity.Description += "我們是一家極富創(chuàng)新性的軟件科技公司,從事研究、開發(fā)并銷售最可靠的、安全易用的技術(shù)產(chǎn)品及優(yōu)質(zhì)專業(yè)的服務(wù),幫助全球客戶和合作伙伴取得成功。\r\n......(此處省略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;
    }

我們來看看我公司的微信門戶菜單,看起來是不是很酷呢。

對于這兩種(文本消息、圖文消息)用的地方是最多,很多微信門戶,都主要是使用這兩種方式進行響應(yīng)。當然,我們還可以根據(jù)客戶手機提交上來的各種消息進行不同的處理,請求消息的類型我在上一篇的隨筆有介紹,如下所示。

需要關(guān)注了解整體效果,可以使用微信直接掃描二維碼即可。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#使用CancellationTokenSource 取消 Task的方法

    C#使用CancellationTokenSource 取消 Task的方法

    因為涉及到了日常經(jīng)常會碰到的取消任務(wù)操作,本文主要介紹了C#使用CancellationTokenSource 取消 Task,文中通過代碼介紹的非常詳細,感興趣的可以了解一下
    2022-02-02
  • C#橋接模式完整實例

    C#橋接模式完整實例

    這篇文章主要介紹了C#橋接模式,以實例形式較為詳細的分析了C#橋接模式的實現(xiàn)原理與相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C#.net中的類型轉(zhuǎn)換詳細介紹

    C#.net中的類型轉(zhuǎn)換詳細介紹

    C#.net中的類型轉(zhuǎn)換詳細介紹,需要的朋友可以參考一下
    2013-04-04
  • WPF InkCanvas基本操作方法詳解

    WPF InkCanvas基本操作方法詳解

    這篇文章主要為大家詳細介紹了WPF InkCanvas基本的操作方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • C#動態(tài)創(chuàng)建Access數(shù)據(jù)庫及密碼的方法

    C#動態(tài)創(chuàng)建Access數(shù)據(jù)庫及密碼的方法

    同為微軟的產(chǎn)品,本文將討論的是C#如何創(chuàng)建Access數(shù)據(jù)庫,同時創(chuàng)建數(shù)據(jù)庫密碼與相關(guān)操作,希望對大家有所幫助。
    2015-09-09
  • C#選擇排序法實例分析

    C#選擇排序法實例分析

    這篇文章主要介紹了C#選擇排序法,實例分析了C#排序算法的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C#抓取網(wǎng)絡(luò)圖片保存到本地的實現(xiàn)方法

    C#抓取網(wǎng)絡(luò)圖片保存到本地的實現(xiàn)方法

    下面小編就為大家分享一篇C#抓取網(wǎng)絡(luò)圖片保存到本地的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • C# Csv實現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable

    C# Csv實現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable

    本文主要介紹了C# Csv實現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • C#利用LINQ實現(xiàn)一個文件拆分成多個文件的示例詳解

    C#利用LINQ實現(xiàn)一個文件拆分成多個文件的示例詳解

    在日常開發(fā)過程中,我們可能會遇到需要將一個大型文件拆分成多個小文件的需求,例如,為了便于傳輸、處理或備份,在C#中,我們可以利用LINQ技術(shù)來實現(xiàn)這一功能,下面我將詳細介紹如何使用LINQ拆分文件,需要的朋友可以參考下
    2024-08-08
  • c#實現(xiàn)爬蟲程序

    c#實現(xiàn)爬蟲程序

    這篇文章介紹了c#實現(xiàn)爬蟲程序的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04

最新評論

衡南县| 禄劝| 富民县| 金寨县| 广平县| 西华县| 镇赉县| 邯郸市| 崇信县| 武夷山市| 涡阳县| 民丰县| 呼伦贝尔市| 汉川市| 祁东县| 广东省| 梅河口市| 西乌珠穆沁旗| 英吉沙县| 米易县| 黄浦区| 镇原县| 兴隆县| 陇南市| 白山市| 永寿县| 蒲城县| 定安县| 阳信县| 三穗县| 庐江县| 江陵县| 扶沟县| 灵台县| 海安县| 泰兴市| 陆丰市| 南城县| 梨树县| 老河口市| 进贤县|