微信小程序-发送模板消息(C#)

步骤一:获取模板ID

有两个方法可以获取模版ID

  1. 通过模版消息管理接口获取模版ID
  2. 在微信公众平台手动配置获取模版ID

步骤二:页面的 <form/> 组件,属性report-submittrue时,可以声明为需发模板消息,此时点击按钮提交表单可以获取formId,用于发送模板消息。或者当用户完成支付行为,可以获取prepay_id用于发送模板消息。

步骤三:调用接口下发模板消息

今天重要的说第三步怎么实现,前面的步骤比较简单就略过。

----------------------------------------------------------------------------------------------------

1. 获取 access_token

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

后面会在发送模板消息的时候会用到access_token

2. 发送模板消息

接口地址:(ACCESS_TOKEN 需换成上文获取到的 access_token)

https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN

注意说明:由于微信现在不让开发者直接在前端使用 https://api.weixin.qq.com 接口获取数据,所以下面的操作都必须由服务器后台来完成。

官方的POST参数:

{
  "touser": "OPENID",
  "template_id": "TEMPLATE_ID",
  "page": "index",
  "form_id": "FORMID",
  "data": {
      "keyword1": {
          "value": "339208499",
          "color": "#173177"
      },
      "keyword2": {
          "value": "2015年01月05日 12:30",
          "color": "#173177"
      },
      "keyword3": {
          "value": "粤海喜来登酒店",
          "color": "#173177"
      } ,
      "keyword4": {
          "value": "广州市天河区天河路208号",
          "color": "#173177"
      }
  },
  "emphasis_keyword": "keyword1.DATA"
}
            var l = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=" + access_token;
            var tempData = new
            {
                touser = openid,
                template_id = "VErasH9Plzmyw9-PQjiggkBCa3hOU30qfvTaxD******",//这个是1、申请的模板消息id,
                page ="pages/index/index",
                form_id = formId,
                data = new
                {
                    keyword1 = new
                    {
                        value = title,
                        color = "#666666"
                    },
                    keyword2 = new
                    {
                        value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                        color = "#9b9b9b"
                    },
                    keyword3 = new
                    {
                        value = Remarks,
                        color = "#9b9b9b"
                    }
                },
                color = "#666666"
            };

            X.Component.Tools.WebClient wc = new X.Component.Tools.WebClient();

            var result = tempData.ToJson(); //Newtonsoft.Json.JsonConvert.SerializeObject(tempData);

            wc.Encoding = System.Text.Encoding.UTF8;
            var obj = wc.Post(l, result); //得到返回的结果

注意 page路径

最后返回的结果:

{
    "data": {
        "success": true
    },
    "statusCode": 200,
    "header": {
        "Server": "Microsoft-IIS/7.5",
        "Access-Control-Allow-Origin": "https://pubchem.ncbi.nlm.nih.gov",
        "Cache-Control": "private",
        "X-UA-Compatible": "chrome=1",
        "Date": "Thu, 28 Sep 2017 04:46:34 GMT",
        "X-AspNetMvc-Version": "4.0",
        "Content-Type": "application/json; charset=utf-8",
        "X-Powered-By": "ASP.NET",
        "X-AspNet-Version": "4.0.30319",
        "Content-Length": "16"
    },
    "errMsg": "request:ok"
}

效果截图:

时间: 2024-11-08 11:34:20

微信小程序-发送模板消息(C#)的相关文章

微信小程序发送模板消息(最通俗易懂)

公司需要用到微信小程序推送   经过一下午的资料查阅,得出以下经验. 首先得去微信公众平台小程序的模板消息  创建模板  也能通过接口去创建,但是我觉得挺麻烦的  还不如去后台创建 下面是我写的测试代码,只有具体数据都是测试的模拟数据,实际业务肯定需要拿到业务数据,大家后面可以自我发挥. 对了,还有一点,电脑的小程序的开发工具是拿不到formid 的  会提示 the formId is a mock one ,只能用手机测试才能拿到formid 下面看代码吧: 这个是前台页面 1 <butto

微信小程序开发模板消息的时候 出现 errcode: 41028, errmsg: &quot;invalid form id hint:

小程序开发模板消息的时候  出现 errcode: 41028, errmsg: "invalid form id hint: 我是使用的微信支付发送模板消息,提示的formid无效的 大家知道获取到的prepay id 还非常的诡异  他不是直接一个参数 而是还带了字符串 比如 prepay_id=wx2017xx 这样格式的 那传递到微信模板消息这里的formid上要怎么传值呢? 最后检验是需要去除掉prepay id 这个字符串的  然后传递过去就可以了 然后,还会有提示无效的,就是没有支

微信小程序之模板消息推送

最近在用sanic框架写微信小程序,其中写了一个微信消息推送,还挺有意思的,写了个小demo 具体见官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html 文档其实写的很详细清除了,包括返回数据的类型,报错信息 大致流程就是:调用微信小程序的接口,获取access_token,然后再调用发送模板信息的接口,发送消息 获取access_t

微信小程序统一服务消息下发接口 公众号和小程序消息都可以在一个接口推送了

昨天晚上,2018年9月11日,微信官方又更新了一大波的小程序功能.重点我们来谈谈这个功能,微信叫做统一服务消息下发接口. 这个是官方的文档  统一服务消息 · 小程序https://developers.weixin.qq.com/miniprogram/dev/api/notice-uniform.html 统一服务消息下发接口,名字很拗口,说点人话,就是这个接口可以发送公众号或者小程序的消息.之前大家都知道,我们用小程序发送消息,有小程序的api接口,如果是发送公众号的消息,就有公众号的模

微信小程序客服消息之解决方案

小程序自公开发布起就有消息推送功能,但由于张小龙对于微信小程序的定义为极简的生活方式,所以为了避免小程序发送过多的推送消息骚扰用户对于小程序消息推送制定了许多的规则和限制. 一.小程序客服消息的意义: 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. 二.小程序把推送消息定义为两大类:模板消息和客服消息 模板消息:后台可以制作消息模板,商户可以将模板消息发送给接受过服务的用户,用户接受过一次服务(以是否产生支付数据为准)

小程序 发送模版消息

小程序开发之发送模板消息 1,小程序wxml页面form表单添加 report-submit="true" <form bindsubmit="sub" report-submit="true"> <button formType="submit">确认发布</button> </form> 2,小程序js代码 (formId唯一且只有提交表单时产生,只能使用一次) Page({

微信小程序发送验证码短信SDK及文档

微信小程序验证码版SDK增加了对短信验证码的管理,开发者无需生成管理验证码,该SDK可直接生成.存储.发送.校验. 官网 SDK下载地址 demo ? 1.安装下载后的SDK只包含一个zhenzisms.js文件,可直接放在utils文件夹中,然后通过require引入,如下: var zhenzisms = require('../../utils/zhenzisms.js');2.配置域名在微信公众平台-小程序管理中配置域名https://smsdeveloper.zhenzikj.com,

微信小程序发送短信验证码完整实例

微信小程序注册完整实例,发送短信验证码,带60秒倒计时功能,无需服务器端.效果图: 代码: index.wxml <!--index.wxml--> <view class="container"> <view class='row'> <input placeholder='请输入姓名' bindinput='bindNameInput'/> </view> <view class='row'> <inpu

【微信开发】-- 发送模板消息

我们需要将一些行为的进展消息推送给用户.除了短信,发送微信模板消息也是不错的选择.模板消息免费.精准到达.而且可以引导用户回到网站上来.但它有两个前提条件.1个是必须开通了微信支付功能,你才能选择模板.2个是被推送的用户必须关注了你的公众号,而且你也拿到了他的openid. 先在模板库中找到自己的想要的模板,添加到“我的模板”中. 展开详情,我们可以看到示例.接下来用C#代码发送一次: 从官方文档的示例中我们可以看到除了推送人的openid,还可以设置每个字段的颜色及跳转地址.先可以定义以个Te