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