微信小程序模板消息詳解

先放代碼html

wxml:api

<form name='pushMsgFm' report-submit bindsubmit='orderSign'>  
   <view> 單號: 0</view>
   <view> 商家名稱: 騰訊早餐店</view>
    <view>實付金額:66元</view>
    <view>物品名稱:包子</view>
    <view>付款金額:68元</view>
    <view>付款時間: 2018年1月1日 </view>
    <button form-type="submit">發送模板消息</button>  
</form>

js:微信

  Page({
  
    /**
     * 頁面的初始數據
     */
    data: {
      openid:"" 
      
         },
    orderSign: function (e) {
      wx.showLoading({ //期間爲了顯示效果能夠添加一個過分的彈出框提示「加載中」  
        title: '加載中',
        icon: 'loading',
      });
      var fId = e.detail.formId;
      var l = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + getApp().globalData.token;
      var d = {
        "keyword1": {
          "value": "00273",
          "color": "#4a4a4a"
        },
        "keyword2": {
          "value": "騰訊早餐店",
          "color": "#9b9b9b"
        },
        "keyword3": {
          "value": "66元",
          "color": "#9b9b9b"
        },
        "keyword4": {
          "value": "包子",
          "color": "#9b9b9b"
        },
        "keyword5": {
          "value": "68元",
          "color": "#9b9b9b"
        },
        "keyword6": {
          "value": "2015年01月05日 12:30", 
          "color": "#9b9b9b"
        }
      };
      console.log(d)
      wx.request({
        url: l,
     //注意不要用value代替data data: { touser:
this.data.openid, template_id: 'id',//申請的模板消息id, page: '/pages/mes/mes', form_id: fId, data:d, color: '#ccc', emphasis_keyword: 'keyword1.DATA' }, method: 'POST', success: function (res) { wx.hideLoading(); console.log("發送成功"); console.log(res); }, fail: function (err) { // fail console.log("push err") console.log(err); } }); }, /** * 生命週期函數--監聽頁面加載 */ onLoad: function (options) { var that = this; wx.login({ success:(res)=>{ if(res.code){ wx.request({ url: "https://api.weixin.qq.com/sns/jscode2session", data:{ appid: getApp().globalData.appId,//你的appid secret: getApp().globalData.secret,//你的secret js_code:res.code, grant_type:"authorization_code" }, success:(res)=>{ console.log(res); that.setData({ openid: res.data.openid //存儲openid }) } }) } } }) } })

再放圖session

最後放教程app

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

1.在公衆平臺申請一個模板,得到模板idide

2.獲取openid,正常應該是在app.js裏將openid和token獲取下來存爲公共變量調用函數

onLoad: function (options) {
      var that = this;
      wx.login({
        success:(res)=>{
          if(res.code){
            wx.request({
              url: "https://api.weixin.qq.com/sns/jscode2session",//換openid的接口地址
              data:{
                appid: getApp().globalData.appId,
                secret: getApp().globalData.secret,
                js_code:res.code,
                grant_type:"authorization_code"
              },
              success:(res)=>{
                console.log(res);
                that.setData({
                  openid: res.data.openid//將openid存起來
                })
              }
            })
          }
        }
      })
    }

3.獲取token,這裏我直接使用微信公衆平臺接口調試工具【http://mp.weixin.qq.com/debug/】上獲得token串,輸入你的appid和secret就能夠獲得token了,注意token是有過時時間的,應當在有效期內測試,access_token 的有效期目前爲2個小時,需定時刷新,重複獲取將致使上次獲取的 access_token 失效。假如多處請求須要token的話,最好設置一個公共變量存儲,這裏我提早把token存儲在app.js的globalData裏頭了。工具

 

4.發起模板消息請求測試

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

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

5.成功

相關文章
相關標籤/搜索