中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中如何實現文本消息和圖文消息應答

發布時間:2021-03-10 10:20:46 來源:億速云 閱讀:245 作者:小新 欄目:編程語言

小編給大家分享一下C#中如何實現文本消息和圖文消息應答,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

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

C#中如何實現文本消息和圖文消息應答

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

1、實體信息關系及定義

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

C#中如何實現文本消息和圖文消息應答

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

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

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

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

    /// <summary>
    /// 消息創建時間 (整型)
    /// </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的通用方法,我們需要把它轉換為響應的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>
    /// 內容
    /// </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>
    /// 圖文消息個數,限制為10條以內
    /// </summary>
    public int ArticleCount
    {
      get
      {
        return this.Articles.Count;
      }
      set
      {
        ;//增加這個步驟才出來XML內容
      }
    }

    /// <summary>
    /// 圖文列表。
    /// 多條圖文消息信息,默認第一個item為大圖,注意,如果圖文數超過10,則將會無響應
    /// </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 = "歡迎關注廣州愛奇迪軟件--專業的單位信息化軟件和軟件開發框架提供商,我們立志于為客戶提供最好的軟件及服務。\r\n";
      entity.Description += "我們是一家極富創新性的軟件科技公司,從事研究、開發并銷售最可靠的、安全易用的技術產品及優質專業的服務,幫助全球客戶和合作伙伴取得成功。\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;
    }

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

C#中如何實現文本消息和圖文消息應答

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

C#中如何實現文本消息和圖文消息應答

以上是“C#中如何實現文本消息和圖文消息應答”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麻阳| 夏津县| 潮安县| 轮台县| 日土县| 广东省| 遂昌县| 大名县| 桓台县| 徐闻县| 永平县| 山西省| 高淳县| 昌乐县| 西贡区| 龙南县| 股票| 怀来县| 赤壁市| 贡觉县| 临洮县| 黄冈市| 罗江县| 保靖县| 揭阳市| 中卫市| 轮台县| 上林县| 清丰县| 九台市| 绥德县| 桃源县| 建昌县| 岳阳县| 皮山县| 清远市| 巴林左旗| 尖扎县| 阳泉市| 天台县| 偃师市|