C#開發微信門戶及應用(三)之簡訊和圖文訊息應答

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了C#開發門戶及應用第二篇,簡訊和圖文訊息的應答,具有一定的參考價值,感興趣的小夥伴們可以參考一下

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

在前面兩篇兩篇隨筆《C#開發門戶及應用(1)--開始使用介面》和《C#開發門戶及應用(2)--訊息的處理和應答》裡面,大致介紹了我應用的架構構建,本隨筆繼續介紹這一主題,介紹訊息應答裡面的文本應答和圖文應答的過程。

我們知道,給手機使用者發送響應訊息,它可以分為好多種方式,如回複簡訊、回複圖片訊息、回複語音訊息、回複影像訊息、回複音樂訊息、回複圖文訊息等,如下所示。

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

1、實體資訊關係及定義

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

訊息基類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;    }

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

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

需要關注瞭解整體效果,可以使用直接掃描二維碼即可。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.