小程序推送消息(Template)

最近搞小程序模擬推送消息,才發現小程序推送消息接口準備下線。html

請注意,小程序模板消息接口將於2020年1月10日下線,開發者可以使用訂閱消息功能json

 我們如今有需求,因此無論下不下,完成再說。小程序

一:」獲取access_token的接口地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRETapi

二:發送模板消息 
先在微信公衆平臺選用怒須要的模板id,例如 
選用模板消息:微信

https://mp.weixin.qq.com/wxopen/tmplmsg?action=self_list&token=264012870&lang=zh_CN

登陸 https://mp.weixin.qq.com 獲取模板,若是沒有合適的模板,能夠申請添加新模板,審覈經過後可以使用
app

 

 

 

三:頁面的 form 組件,屬性 report-submit 爲 true 時,能夠聲明爲須要發送模板消息,此時點擊按鈕提交表單能夠獲取 formId,用於發送模板消息。或者當用戶完成 支付行爲,能夠獲取 prepay_id 用於發送模板消息。微信公衆平臺

我這裏使用表單能夠獲取 formId模擬操做推送消息this

 

四:調用接口下發模板消息url

HTTPS 調用

請求地址

(POST請求) https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN

請求參數

屬性 類型 默認值 必填 說明
access_token string   接口調用憑證
touser string   接收者(用戶)的 openid
template_id string   所需下發的模板消息的id
page string   點擊模板卡片後的跳轉頁面,僅限本小程序內的頁面。支持帶參數,(示例index?foo=bar)。該字段不填則模板無跳轉。
form_id string   表單提交場景下,爲 submit 事件帶上的 formId;支付場景下,爲本次支付的 prepay_id
data Object   模板內容,不填則下發空模板。具體格式請參考示例。
emphasis_keyword string   模板須要放大的關鍵詞,不填則默認無放大

 

具體操做代碼:spa

 

 <form bind:submit="testSubmit" report-submit="true">
      <button formType="submit">發送模板消息</button>
 </form>

 

onLoad: function (options) {
    var that = this;
    
        //獲取 access_token

    that.getAccessToken();

  },


  getAccessToken: function () {
    var that = this;
    var appdid = '填寫小程序的APPID';
    var appsecret = '填寫小程序的密鑰'
    var url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + appdid + '&secret=' + appsecret;
    wx.request({
      url: url,
      success: function (res) {
        console.log(res) // 控制檯輸出結果
        that.setData({
          access_token: res.data.access_token
        })
         console.log("*********獲取************" + res.data.access_token) // 控制檯輸出結果
      }
    })
  },
//點擊發送模板,獲取formid testSubmit:
function (e) { var self = this; console.log("*********** e.detail.formId**********" + e.detail.formId) var _access_token = self.data.access_token console.log("***********控制檯輸出結果**********" + _access_token) var opeid = "微信推送消息接收者的openid" let url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + _access_token; let jsonData = { access_token: _access_token, touser: opeid, template_id: '所需下發的模板消息的ID', form_id: e.detail.formId, page: "pages/index/index", data: { "keyword1": { "value": "互聯網大會科學技術", "color": "#173177" }, "keyword2": { "value": "2019年1月4日 09:00", "color": "#173177" }, "keyword3": { "value": "上海國際展中心", "color": "#173177" }, "keyword4": { "value": "務必準時參加", "color": "#173177" }, } } console.log("**********jsonData*******************" + JSON.stringify(jsonData)) wx.request({ url: url, data:jsonData, method: 'POST', success: function (res) { console.log("***" + JSON.stringify(res)) }, fail: function (err) { console.log('request fail ', err); }, }) },

記得拿起手機,真機調試模板推送

結果:

 

 

成功示例

{ "errcode": 0, "errmsg": "ok" }

errcode 的合法值

 

 

說明 最低版本
40037 template_id不正確  
41028 form_id不正確,或者過時  
41029 form_id已被使用  
41030 page不正確  
45009 接口調用超過限額(目前默認每一個賬號日調用限額爲100萬)
相關文章
相關標籤/搜索