Heim  >  Artikel  >  WeChat-Applet  >  Entwicklung eines öffentlichen WeChat-Kontos für .net

Entwicklung eines öffentlichen WeChat-Kontos für .net

迷茫
迷茫Original
2017-03-25 13:47:231936Durchsuche

Autor: Wang Xianrong
In diesem Artikel werden Vorlagennachrichten in öffentlichen WeChat-Konten vorgestellt, einschließlich der folgenden: (1) Einführung in die TemplateMessage-Klasse; (3) Erhalten die Vorlagen-ID; (4) Vorlagennachrichten senden; (5) Push-Vorlagennachrichten empfangen, die Ergebnisereignisse senden.

1 Einführung in die TemplateMessage-Klasse
Die statische TemplateMessage-Klasse kapselt Methoden im Zusammenhang mit Vorlagennachrichten, siehe Tabelle unten:

方法名 功能
SetIndustry 设置行业
GetId 获取模板id
Send 发送模板消息

2 Legen Sie die Branche fest

Die SetIndustry-Methode der TemplateMessage-Klasse wird verwendet, um die Branche festzulegen, zu der das offizielle Konto gehört:


        /// <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)

Unter ihnen ist Industry die Industrieklasse, und die statischen Mitglieder in der Klasse umfassen alle bekannten Branchen. Beispielsweise repräsentiert Industry.OnlineGame die dortige Online-Spielebranche Es gibt drei Branchenklassen Attribute : Code – Branchencode, Name – Branchenname, PrimaryIndustry – Hauptbranche.

Beispiel für die Brancheneinstellung:

/// <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());
        }
    }

设置所属行业示例

Beispiel für die Brancheneinstellung

3 Vorlage abrufen id

Die GetId-Methode der TemplateMessage-Klasse wird verwendet, um die Vorlagen-ID zu erhalten. Die Methode ist wie folgt definiert:

        /// <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)

Hinweis: ( 1) Wenn die Vorlage noch nicht hinzugefügt wurde, fügt diese Methode zuerst die Vorlage hinzu und gibt dann die Vorlagen-ID zurück. (2) Wenn die Vorlage hinzugefügt wurde, wird beim erneuten Aufrufen dieser Methode eine neue Vorlagen-ID zurückgegeben die zuletzt erhaltene Vorlagen-ID.

Beispiel für den Erhalt einer Vorlagen-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());
    }

Beispiel für den Erhalt einer Vorlagen-ID

4 Vorlagennachrichten senden
Die Send-Methode der TemplateMessage-Klasse wird zum Senden von Vorlagennachrichten verwendet. Die Methode ist wie folgt definiert:


        /// 631fb227578dfffda61e1fa4d04b7d25
        /// 发送模板消息        /// 039f3e95db2a684c7b74365531eb6044
        /// 20e42ef3279b479672c1207a13c1abab公众号8bb7487ae6a16a43571bc14c7fcf93c2
        /// b34a78e356dd5e42f9d330d79f145693接收消息的账号8bb7487ae6a16a43571bc14c7fcf93c2
        /// f0116b851bf4413f5bf75b2a2aeb1058模板id8bb7487ae6a16a43571bc14c7fcf93c2
        /// cbabe74617639c1c27560c98af959168详情地址8bb7487ae6a16a43571bc14c7fcf93c2
        /// 657cc48a9fcdf82a27a82fe3fa9f4e77顶端颜色8bb7487ae6a16a43571bc14c7fcf93c2
        /// c8a98340aded2d5f70b63a18be4bcac7数据8bb7487ae6a16a43571bc14c7fcf93c2
        /// 2e8f4f2a373a35ec512cab8bc7c1425a返回发送是否成功8bb7487ae6a16a43571bc14c7fcf93c2
        /// 2363942ed0d6cd3e85bae1dffa568116返回消息id;如果发送失败,返回-1。f7735d9f6a7af371769ab5c16d23b2f3
        public static long Send(string userName, string touser, string templateId, string detailUrl, Color topColor,
            Tuple72ca0ee74ca7edd147f17f5da5225be9[] data, out ErrorMessage errorMessage)

Darunter der Datenparameter Es ist ein Tupeltyp und enthält die von der Vorlage verwendeten Daten. data.Item1 ist der Datenschlüssel, data.Item2 ist der Datenwert und data.Item3 ist die Farbe der angezeigten Daten.

Beispiel für das Senden einer Vorlagennachricht:

/// <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)

Beispiel für das Senden einer Vorlagennachricht

5 Push-Vorlage erhalten Ereignis zum Senden der Nachricht
Nach dem Senden der Vorlagennachricht sendet der WeChat-Server das Ergebnis an die angegebene URL des offiziellen Kontos und der offizielle Kontoserver empfängt eine Anforderungsnachricht vom Typ RequestTemplateSendJobFinishMessage.
Die RequestTemplateSendJobFinishMessage-Klasse verfügt über die folgenden schreibgeschützten Eigenschaften:

/// <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;
            }
        }

Das obige ist der detaillierte Inhalt vonEntwicklung eines öffentlichen WeChat-Kontos für .net. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn