如何實(shí)現(xiàn)C#開發(fā)微信門戶中的文本消息和圖文消息應(yīng)答

本篇文章為大家展示了如何實(shí)現(xiàn)C#開發(fā)微信門戶中的文本消息和圖文消息應(yīng)答,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)是專業(yè)的鹿泉網(wǎng)站建設(shè)公司,鹿泉接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鹿泉網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

微信應(yīng)用如火如荼,很多公司都希望搭上信息快車,這個(gè)是一個(gè)商機(jī),也是一個(gè)技術(shù)的方向,因此,有空研究下、學(xué)習(xí)下微信的相關(guān)開發(fā),也就成為計(jì)劃的安排事情之一了。

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

如何實(shí)現(xiàn)C#開發(fā)微信門戶中的文本消息和圖文消息應(yīng)答

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

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

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

如何實(shí)現(xiàn)C#開發(fā)微信門戶中的文本消息和圖文消息應(yīng)答

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

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

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

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

    /// <summary>
    /// 消息創(chuàng)建時(shí)間 (整型)
    /// </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);
    }

  }

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

  /// <summary>
  /// 回復(fù)文本消息
  /// </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; }
  }

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

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

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

  }

而其中的圖文列表集合中的對(duì)象,它也是一個(gè)實(shí)體類型,包含了一些圖文的鏈接,標(biāo)題等信息,不在贅述。

2、消息的回復(fù)處理

如對(duì)于文本消息,我們可以用以下的方式進(jìn)行處理。

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

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

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

 /// <summary>
    /// 訂閱或者顯示公司信息
    /// </summary>
    /// <param name="info"></param>
    /// <returns></returns>
    private string ShowCompanyInfo(BaseMessage info)
    {
      string result = "";
      //使用在微信平臺(tái)上的圖文信息(單圖文信息)
      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;
    }

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

如何實(shí)現(xiàn)C#開發(fā)微信門戶中的文本消息和圖文消息應(yīng)答

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

如何實(shí)現(xiàn)C#開發(fā)微信門戶中的文本消息和圖文消息應(yīng)答

上述內(nèi)容就是如何實(shí)現(xiàn)C#開發(fā)微信門戶中的文本消息和圖文消息應(yīng)答,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前題目:如何實(shí)現(xiàn)C#開發(fā)微信門戶中的文本消息和圖文消息應(yīng)答
URL標(biāo)題:http://muchs.cn/article24/ghssce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司小程序開發(fā)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站營(yíng)銷、虛擬主機(jī)標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)