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

溫馨提示×

溫馨提示×

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

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

如何使用.net開發微信公眾號中的模板消息

發布時間:2021-09-13 14:15:53 來源:億速云 閱讀:161 作者:小新 欄目:移動開發

這篇文章將為大家詳細講解有關如何使用.net開發微信公眾號中的模板消息,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

微信公眾號中的模板消息

1 TemplateMessage類簡介
   TemplateMessage靜態類封裝了跟模板消息相關的方法,見下表:

方法名功能
SetIndustry設置行業
GetId獲取模板id
Send發送模板消息

2 設置所屬行業

TemplateMessage類的SetIndustry方法用于設置公眾號所屬的行業,該方法的定義如下:

        /// <summary>
        /// 設置行業        /// </summary>
        /// <param name="userName">公眾號</param>
        /// <param name="code1">行業代碼1</param>
        /// <param name="code2">行業代碼2</param>
        /// <returns>返回設置是否成功</returns>
        public static ErrorMessage SetIndustry(string userName, string code1, string code2)        //或者

        /// <summary>
        /// 設置行業        /// </summary>
        /// <param name="userName">公眾號</param>
        /// <param name="industry1">行業1</param>
        /// <param name="industry2">行業2</param>
        /// <returns>返回設置是否成功</returns>
        public static ErrorMessage SetIndustry(string userName, Industry industry1, Industry industry2)

   其中,Industry為行業類,類中的靜態成員包含了已知的所有行業,例如:Industry.OnlineGame代表了網絡游戲這一行業;Industry類有三個屬性,分別為:Code——行業代碼,Name——行業名稱,PrimaryIndustry——主行業。

設置所屬行業的示例:

/// <summary>
    /// 設置所屬行業
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSetIndustry_Click(object sender, EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        string industryCode1 = "", industryCode2 = "";
        int count = 0;
        foreach (ListItem item in cblIndustry.Items)
        {
            if (item.Selected)
            {
                count++;
                if (count == 1)
                    industryCode1 = item.Value;
                else if (count == 2)
                {
                    industryCode2 = item.Value;
                    break;
                }
            }
        }
        if (count != 2)
            ltrMessage.Text = "請選擇兩個行業。";
        else
        {
            ErrorMessage errorMessage = TemplateMessage.SetIndustry(userName, industryCode1, industryCode2);
            ltrMessage.Text = string.Format("設置所屬行業{0}。{1}",
                errorMessage.IsSuccess ? "成功" : "失敗",
                errorMessage.IsSuccess ? "" : errorMessage.ToString());
        }
    }

設置所屬行業示例

設置所屬行業示例

3 獲得模板id

TemplateMessage類的GetId方法用于獲取模板id,該方法定義如下:

        /// <summary>
        /// 獲取模板ID        /// </summary>
        /// <param name="userName">公眾號</param>
        /// <param name="shortTemplateId">模板庫中模板的編號,有“TM**”和“OPENTMTM**”等形式</param>
        /// <param name="errorMessage">返回獲取是否成功</param>
        /// <returns>返回模板ID;如果獲取失敗,返回空字符串。</returns>
        public static string GetId(string userName, string shortTemplateId, out ErrorMessage errorMessage)

   注意:(1)如果尚未添加模板,該方法會先添加模板,然后返回模板id;(2)如果已經添加了模板,再次調用該方法,會返回一個新的不同于上次獲取到的模板id。

獲得模板id的示例:

    /// <summary>
    /// 添加并模板id    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnGetTemplateId_Click(object sender, EventArgs e)
    {        string userName = lbPublicAccount.SelectedValue;
        ErrorMessage errorMessage;        string templateId = TemplateMessage.GetId(userName, txtTemplateIdShort.Text, out errorMessage);        if (errorMessage.IsSuccess)
            ltrMessage.Text = string.Format("添加并獲取模板id成功。模板id:{0}", templateId);        else
            ltrMessage.Text = string.Format("添加并獲取模板id失敗。{0}", errorMessage.ToString());
    }

獲得模板id示例

4 發送模板消息
   TemplateMessage類的Send方法用于發送模板消息,該方法定義如下:

        /// <summary>
        /// 發送模板消息        /// </summary>
        /// <param name="userName">公眾號</param>
        /// <param name="touser">接收消息的賬號</param>
        /// <param name="templateId">模板id</param>
        /// <param name="detailUrl">詳情地址</param>
        /// <param name="topColor">頂端顏色</param>
        /// <param name="data">數據</param>
        /// <param name="errorMessage">返回發送是否成功</param>
        /// <returns>返回消息id;如果發送失敗,返回-1。</returns>
        public static long Send(string userName, string touser, string templateId, string detailUrl, Color topColor,
            Tuple<string, string, Color>[] data, out ErrorMessage errorMessage)

   其中,data參數為Tuple類型,包含模板所用的數據,data.Item1為數據鍵,data.Item2為數據值,data.Item3為顯示數據的顏色。

發送模板消息的示例:

/// <summary>
        /// 發送模板消息
        /// </summary>
        /// <param name="userName">公眾號</param>
        /// <param name="touser">接收消息的賬號</param>
        /// <param name="templateId">模板id</param>
        /// <param name="detailUrl">詳情地址</param>
        /// <param name="topColor">頂端顏色</param>
        /// <param name="data">數據</param>
        /// <param name="errorMessage">返回發送是否成功</param>
        /// <returns>返回消息id;如果發送失敗,返回-1。</returns>
        public static long Send(string userName, string touser, string templateId, string detailUrl, Color topColor,
            Tuple<string, string, Color>[] data, out ErrorMessage errorMessage)

發送模板消息示例

5 接收推送模板消息發送結果事件
   在發送模板消息之后,微信服務器會推送結果到公眾號的指定URL上,公眾號服務器會接收到一條RequestTemplateSendJobFinishMessage類型的請求消息。
   RequestTemplateSendJobFinishMessage類有以下只讀屬性:

/// <summary>
        /// 獲取消息id
        /// </summary>
        public long MsgID { get; private set; }
        /// <summary>
        /// 獲取群發消息的結果
        /// </summary>
        public string Status { get; private set; }

        /// <summary>
        /// 獲取消息是否群發成功
        /// </summary>
        public TemplateMessageSendStatusEnum SendStatus
        {
            get
            {
                TemplateMessageSendStatusEnum status;
                if (Status == sendFailedUserBlock)
                    status = TemplateMessageSendStatusEnum.UserBlock;
                else if (Status == sendFailedSystemFailed)
                    status = TemplateMessageSendStatusEnum.SystemFailed;
                else
                    status = TemplateMessageSendStatusEnum.Success;
                return status;
            }
        }

關于“如何使用.net開發微信公眾號中的模板消息”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

平南县| 寻乌县| 穆棱市| 沾益县| 贵州省| 义马市| 通榆县| 长岛县| 壶关县| 萍乡市| 察雅县| 镶黄旗| 阳朔县| 若羌县| 德清县| 莲花县| 新郑市| 东兰县| 峨眉山市| 册亨县| 天镇县| 宝清县| 泰和县| 惠州市| 信阳市| 民权县| 福清市| 霞浦县| 方山县| 麦盖提县| 长顺县| 攀枝花市| 石狮市| 营口市| 久治县| 海盐县| 阳西县| 读书| 玉山县| 吉首市| 正定县|