Grâce à l'interface de message modèle, les comptes publics peuvent envoyer des modèles de messages prédéfinis aux utilisateurs qui suivent leurs comptes. Les messages modèles ne sont utilisés que par les comptes officiels pour envoyer des notifications de service importantes aux utilisateurs et ne peuvent être utilisés que dans des scénarios de service qui répondent à leurs exigences, tels que les notifications de balayage de carte de crédit, les notifications de réussite d'achat de produits, etc. Les messages marketing tels que les publicités et tous les autres messages susceptibles de harceler les utilisateurs ne sont pas pris en charge. Cet article présente principalement le développement et la mise en œuvre de fonctions de gestion de messages de modèles de comptes publics basées sur C#.
"Le lancement de la fonction de message modèle améliorera considérablement les capacités de notification de service des comptes de service." Aux yeux de certains opérateurs de comptes publics qui attendaient avec impatience l'ouverture de la fonction de message modèle de WeChat, le réseau social Les attributs de la communication individuelle de WeChat rendent le taux de diffusion des informations plus précis, ce qui donne également aux entreprises de nombreux avantages en termes de coût, d'efficacité des services et de performances. Cela enrichit non seulement les formulaires de services de l'entreprise, améliore l'interaction des utilisateurs et. adhérence, mais apporte également aux utilisateurs une expérience de service plus diversifiée, riche et opportune.
Les informations sur les modèles sont divisées selon les secteurs, et différents modèles sont conçus selon différents scénarios d'utilisation. Par exemple, dans l'industrie du logiciel, il existe. notifications d'inscription réussie, voir Modèles pouvant être utilisés dans divers scénarios tels que les rappels de chambre, les rappels de commande, les recharges des membres et les notifications de consommation des membres.
Si notre compte public doit utiliser des modèles, nous devons alors ajouter les modèles requis à partir de la bibliothèque de modèles (la limite actuelle est de 15). Une fois le modèle ajouté à mon modèle, chaque modèle génère une valeur aléatoire, qui est [ID du modèle]. Lorsque nous envoyons des informations, nous les envoyons en fonction de cet ID de modèle.
Chaque modèle contient des descriptions détaillées des paramètres et des exemples d'effets.
La personne concernée en charge de l'équipe WeChat a déclaré : L'ouverture de modèles de messages vise principalement à aider les comptes publics à compléter les services en boucle fermée. Les comptes publics existants ont une capacité limitée à le faire. envoyer des messages de manière proactive (quatre messages mensuels peuvent être envoyés en groupes), ce qui empêche de nombreuses entreprises de transmettre des notifications proactives des résultats de service et d'autres informations aux utilisateurs. Une fois le modèle de message ouvert, les entreprises peuvent utiliser la plate-forme WeChat pour utiliser des modèles de messages afin d'accéder plus rapidement aux informations pendant les services externes et les processus de gestion interne, et fournir aux utilisateurs des services plus réfléchis.
WeChat optimise continuellement l'expérience utilisateur. L'ouverture de modèles de messages a fourni aux entreprises des fonctionnalités plus basiques, telles que des interactions bidirectionnelles plus riches, des rappels d'informations plus précis, etc., qui ont amélioré la qualité des messages. entreprises. , la profondeur et l'étendue des services personnalisés, c'est pourquoi les institutions et les entreprises des domaines de la finance, de l'aviation civile, des affaires gouvernementales et d'autres domaines attendent avec impatience que WeChat ouvre la fonction de messagerie modèle. À l'avenir, avec l'amélioration continue de la fonction de message modèle, les détails du salaire des employés de l'entreprise, la consommation mensuelle d'électricité du ménage, les factures d'électricité et d'autres détails de consommation d'électricité, et même l'expiration du permis de conduire et la nécessité de le remplacer, etc., pourront être divulgués. au public via WeChat des entreprises et des départements. Le modèle de message du compte est instantanément transmis à l'utilisateur correspondant.
Les informations pertinentes sur les modèles et l'introduction de modèles individuels ont été introduites auparavant. Si nous devons intégrer l'envoi de messages modèles dans le programme en arrière-plan, nous le faisons. besoin de comprendre le modèle. Quelles sont les API de messagerie ? Comment utiliser l'API de message modèle pour envoyer des messages ?
Jetons d'abord un coup d'œil aux instructions d'utilisation des modèles de messages :
1、所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限; 2、需要选择公众账号服务所处的2个行业,每月可更改1次所选行业; 3、在所选择行业的模板库中选用已有的模板进行调用; 4、每个账号可以同时使用15个模板。 5、当前每个模板的日调用上限为10万次【2014年11月18日将接口调用频率从默认的日1万次提升为日10万次,可在MP登录后的开发者中心查看】。
Les fonctions de gestion des modèles de messages sont :
1 Définir l'industrie
2 Obtenez l'ID du modèle
3 Envoyer un message de modèle
4 Push d'événement
La configuration de l'industrie peut être effectuée en MP, et le L'industrie peut être modifiée une fois par mois, le compte ne peut utiliser que des modèles pertinents dans l'industrie à laquelle il appartient. Pour faciliter les développeurs tiers, nous proposons un moyen de modifier l'industrie à laquelle appartient le compte via les appels d'interface. :
Instructions de demande d'appel d'interface
http请求方式: POST https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=ACCESS_TOKEN
Description des données POST
L'exemple de données POST est le suivant :
{ "industry_id1":"1", "industry_id2":"4" }
Selon la description, nous pouvons définir une classe d'interface ITemplateMessageApi, puis La fonction d'interface qui définit et définit l'industrie est la suivante :
/// <summary> /// 设置所属行业 /// </summary> /// <param name="accessToken"></param> /// <param name="industry_id1">公众号模板消息所属行业编号(主营行业)</param> /// <param name="industry_id2">公众号模板消息所属行业编号(副营行业)</param> /// <returns></returns> CommonResult SetIndustry(string accessToken, IndustryCode industry_id1, IndustryCode industry_id2);
Pour plus de commodité, nous définissons IndustryCode comme un objet d'énumération, qui répertorie le système. Tous les codes industriels pris en charge sont répertoriés ci-dessous.
而实现代码和之前的函数处理类似,都是POST数据到一个连接即可,并解析返回的结果就可以了,具体实现代码如下所示。
/// <summary> /// 设置所属行业 /// </summary> /// <param name="accessToken">访问凭证</param> /// <param name="industry_id1">公众号模板消息所属行业编号(主营行业)</param> /// <param name="industry_id2">公众号模板消息所属行业编号(副营行业)</param> /// <returns></returns> public CommonResult SetIndustry(string accessToken, IndustryCode industry_id1, IndustryCode industry_id2) { var url = string.Format("https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token={0}", accessToken); var data = new { industry_id1 = (int)industry_id1, industry_id2 = (int)industry_id2 }; string postData = data.ToJson(); return Helper.GetExecuteResult(url, postData); }
获得模板ID,也就是从模板库里面添加对应的模板消息到我的模板里面。
从行业模板库选择模板到账号后台,获得模板ID的过程可在MP中完成。为方便第三方开发者,提供通过接口调用的方式来修改账号所属行业,具体如下:
接口调用请求说明
http请求方式: POST https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=ACCESS_TOKEN
POST数据说明
POST数据示例如下:
{ "template_id_short":"TM00015" }
C#函数实现代码如下所示:
/// <summary> /// 获得模板ID. /// 从行业模板库选择模板到账号后台,获得模板ID的过程可在MP中完成。 /// </summary> /// <param name="accessToken">访问凭证</param> /// <param name="template_id_short">模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式</param> /// <returns></returns> public AddTemplateResult AddTemplate(string accessToken, string template_id_short) { var url = string.Format("https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token={0}", accessToken); var data = new { template_id_short = template_id_short }; string postData = data.ToJson(); return JsonHelper<AddTemplateResult>.ConvertJson(url, postData); }
根据上面小节处理,添加到我的模板里面的操作得到的模板ID,我们就可以调用发送模板消息的API进行模板消息发送了。
接口调用请求说明
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
POST数据说明
POST数据示例如下:
{ "touser":"OPENID", "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", "url":"http://weixin.qq.com/download", "topcolor":"#FF0000", "data":{ "first": { "value":"恭喜你购买成功!", "color":"#173177" }, "keynote1":{ "value":"巧克力", "color":"#173177" }, "keynote2": { "value":"39.8元", "color":"#173177" }, "keynote3": { "value":"2014年9月16日", "color":"#173177" }, "remark":{ "value":"欢迎再次购买!", "color":"#173177" } } }
根据上面的JSON参数,我们可以看到,有部分是模板消息公共的部分,有部分则是模板消息的具体参数,这些参数需要根据不同的模板进行不同的赋值。
如这部分是共同的:
touser":"OPENID", "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", "url":"http://weixin.qq.com/download", "topcolor":"#FF0000",
根据这个特点,我们定义发送模板消息的接口如下所示:
/// <summary> /// 模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。 /// 不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。 /// </summary> /// <param name="accessToken">访问凭证</param> /// <param name="openId">账号的openID</param> /// <param name="templateId">在公众平台线上模板库中选用模板获得ID</param> /// <param name="data">模板的变化参数数据</param> /// <param name="url">,URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)。</param> /// <param name="topcolor">顶部颜色,默认为#173177</param> /// <returns></returns> SendMassMessageResult SendTemplateMessage(string accessToken, string openId, string templateId, object data, string url, string topcolor = "#173177");
我们用object data来定义模板的变化参数数据。
具体的实现还是和前面的方法提交数据处理差不多,代码如下所示。
/// <summary> /// 模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。 /// 不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="accessToken">访问凭证</param> /// <param name="openId"></param> /// <param name="templateId">在公众平台线上模板库中选用模板获得ID</param> /// <param name="data"></param> /// <param name="url">,URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)。</param> /// <param name="topcolor"></param> /// <returns></returns> public SendMassMessageResult SendTemplateMessage(string accessToken, string openId, string templateId, object data, string url, string topcolor = "#173177") { var postUrl = string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", accessToken); var msgData = new TemplateData() { touser = openId, template_id = templateId, topcolor = topcolor, url = url, data = data }; string postData = msgData.ToJson(); SendMassMessageResult result = JsonHelper<SendMassMessageResult>.ConvertJson(postUrl, postData); return result; }
发送模板的消息相对其他两个接口的使用复杂一些,例如我以一个会员通知的模板消息为例,模板的详细情况如下:
具体的测试代码如下所示。
#region 发送模板消息 var data = new { //使用TemplateDataItem简单创建数据。 first = new TemplateDataItem("您好,您已成为微信【广州爱奇迪】会员。"), type = new TemplateDataItem("18620292076"), address = new TemplateDataItem("广州市白云区广州大道北"), VIPName = new { //使用new 方式,构建数据,包括value, color两个固定属性。 value = "伍华聪", color = "#173177" }, VIPPhone = new TemplateDataItem("18620292076"), expDate = new TemplateDataItem("2016年4月18日"), remark = new TemplateDataItem("如有疑问,请咨询18620292076。", "#173177"), }; #endregion string url = "http://www.iqidi.com"; string topColor = "#173177"; string templateId = "-5LbClAa9KUlEmr5bCSS0rxU_I2iT16iYBDxCVU1iJg"; SendMassMessageResult sendResult = api.SendTemplateMessage(token, openId, templateId, data, url, topColor); if(sendResult != null) { Console.WriteLine(sendResult.msg_id); }
那么我们得到的提示效果如下所示。
微信模板消息,能够让我们与客户之间沟通不受每月几条数量的限制,同时也能够利用微信模板库丰富的内容,实现强大的应用场景。
更多C#开发微信门户及应用公众号模板消息管理 相关文章请关注PHP中文网!