小程序之模板音讯

  1. 页面的 <form/> 组件,属性report-submittrue时,可以声明为需发模板音讯,此时点击按钮提交表单可以取得formId,用于发送模板音信。大概当用户完毕支付行为,可以收获prepay_id用于发送模板音信。

  2. 调用接口下发模板音讯(详见接口表明

 

ACCESS 1

运用模板新闻

接口表明

2. 发送模板音信

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

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

  HTTP请求情势: POST

ACCESS 2

 eg:

{
  "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" 
}



返回码说明:

在调用模板消息接口后,会返回JSON数据包。

正常时的返回JSON数据包示例:
{
  "errcode": 0,
  "errmsg": "ok",
}

  ACCESS 3

  1. 取得模板 id

登录https://mp.weixin.qq.com赢得模板,假设没有确切的沙盘,可以申请添加新模板,审核通过后可采取,详见模板审核表达

1. 获取 access_token

access_token 是大局唯一接口调用凭据,开发者调用各接口时都需使用
access_token,请妥善保存。access_token
的仓储至少要保存5拾一个字符空间。access_token
的有效期目前为一个小时,需定时刷新,重复获取将招致上次得到的
access_token 失效。

万众平台的 API 调用所需的 access_token 的运用及变化格局注脚:

  1. 为了保密 appsecrect,第一方需求三个 access_token
    获取和刷新的中控服务器。而其他工作逻辑服务器所运用的 access_token
    均出自于该中控服务器,不该分别去刷新,否则会导致 access_token
    覆盖而影响工作;
  2. 目前 access_token 的有效期通过再次来到的 expires_in
    来传达,近来是7200秒之内的值。中控服务器必要依据那么些有效时间提前去刷新新
    access_token。在刷新进程中,中控服务器对外输出的照样是老
    access_token,此时公众平台后台会确保在刷新短期内,新老
    access_token 都可用,那保障了第壹,方工作的坦荡过渡;
  3. access_token
    的管用时间或然会在未来有调整,所以中控服务器不仅要求中间定时主动刷新,还索要提供被动刷新
    access_token 的接口,这样便于工作服务器在 API 调用获知
    access_token 已超时的景观下,可以触发 access_token 的基础代谢流程。

开发者可以利用 AppID 和 AppSecret 调用本接口来得到 access_token。AppID
和 AppSecret
可记名微信公众平台官网-设置-开发设置中拿到(需要已经绑定成为开发者,且帐号没有丰盛动静)。AppSecret
生成后请自行保留,因为在Subaru平台每一次变更查看都会招致 AppSecret
被重置。注意调用全体微信接口时均需采用 https
协议。借使第2方不选拔中控服务器,而是精选各类业务逻辑点各自去刷新
access_token,那么就可能会爆发争持,导致服务不安宁。

接口地址:

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

ACCESS 4

 

健康意况下,微信会再次来到下述 JSON 数据包给开发者:再次回到参数表达:

{"access_token": "ACCESS_TOKEN", "expires_in": 7200}

ACCESS 5  

{“errcode”: 40013, “errmsg”: “invalid
appid”}错误时微信会重返错误码等音信,JSON
数据包示例如下(该示例为 AppID 无效错误):

行文条件讲明

  1. 支付

    当用户在小程序内到位过支付行为,可允许开发者向用户在7天内推送有限条数的沙盘音信(一次支付可发出1条,数十三回开支下发条数独立,相互不影响)

  2. 交给表单

    当用户在小程序内爆发过提交表单作为且该表单声明为要发模板音讯的,开发者须要向用户提供劳动时,可允许开发者向用户在7天内推送有限条数的沙盘消息(一回提交表单可发出1条,多次交到下发条数独立,相互不影响)

模板新闻填坑指南:

ACCESS,一初叶的时候发出模板消息是在微信吊起支付成功后触发,此时发觉模板新闻有时好用,偶尔不佳用,不佳用的要么报错是 41028,form_id不正确,可能逾期。问询了某个前辈才知道是存在网络延迟,导致不起功用,接纳定时器那种意识,循环调用模板音讯,在

调用成功后停下定时器。

给二个现实的例子:

 

var time = setInterval(function () {
        tem();//定时发起模板消息请求,校验

  }, 5000) 

function tem(){
  var  l = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN;
  var g = { 
  
     touser: openId, 
  
    template_id: '申请的模板id',
 
   page: '模板入口页面',
 
   form_id: 本次支付的prepay_id,  //只有在支付成功时 form_id 才有值 
     data: {

            "keyword1": {
              "value":key1,
              "color": "#4a4a4a"
            },
            "keyword2": {
              "value": key2,
              "color": "#9b9b9b"
            },
            "keyword3": {
              "value": key3,
              "color": "#9b9b9b"
            },
            "keyword4": {
              "value": key4,
              "color": "#9b9b9b"
            },
            "keyword5": {
              "value": key5, 
              "color": "#172177"
            },
          },
          emphasis_keyword: 'keyword1.DATA' //模板需要放大的关键词
}

wx.request({
          url: l,  //
          data: g, //模板数据
          method: 'POST',
          success: function (res) {

            if (res.data.errcode == 0) {
              console.log("sucess");
              clearInterval(time);
            }
            console.log(res);
            // wx.showToast({
            //   title: '订单支付成功',
            //   icon: 'success',
            //   duration: 1000
            // })
          },
          fail: function (err) {
            // fail  
            console.log("push err")
            console.log(err);
            // 测试
            wx.showToast({
              title: err.errmsg,//'系统繁忙'
              icon: 'success',
              duration: 1000
            })
          },
          complete: function (res) {
            console.log("tem-complete")
          }
        });
      };
}

  此外有三个难点是 在微信吊起支付,支付到位后点击完结才会发送模板消息那或多或少问了成百上千人 不知晓怎么消除 ,倘若有方案欢饮交流。

相关文章