3、小程序消息推送


一、配置消息模板

 然后配置

 寶塔創建站點index.php

<?php  
//1. 將timestamp , nonce , token 按照字典排序  
$timestamp = $_GET['timestamp'];  
$nonce = $_GET['nonce'];  
$token = "你自定義的Token值";  
$signature = $_GET['signature'];  
$array = array($timestamp,$nonce,$token);  
sort($array);  
  
//2.將排序后的三個參數拼接后用sha1加密  
$tmpstr = implode('',$array);  
$tmpstr = sha1($tmpstr);  
  
//3. 將加密后的字符串與 signature 進行對比, 判斷該請求是否來自微信  
if($tmpstr == $signature)  
{  
    echo $_GET['echostr'];  
    exit;  
}  

實踐

 返回設置首頁可看到

 官方要 取消消息模板,使用訂閱消息

 點擊詳情可以查看模板參數

 或者自定義模板

 二、模板實現

1、調起授權

  <button bindtap="btnClick">點擊調起訂閱消息</button>

js如下

  btnClick() {

    wx.requestSubscribeMessage({
      tmplIds: ["IJhwUdQzDAXCAdE5cE0VkZYf05G70--FsEqKSf-swS4"], // 此處可填寫多個模板 ID,但低版本微信不兼容只能授權一個
      success: (res) => { //成功回調
        console.log('已授權接收訂閱消息', res)
        if (res['IJhwUdQzDAXCAdE5cE0VkZYf05G70--FsEqKSf-swS4'] == 'accept') { //accept--用戶同意 
        }
      },
      fail(err) {
        console.log(err)
      }
    })

  },

實踐遇到幾點注意:

1、吊不起來 我加了 fail 去找原因

2、20001,No template data return, verify the template id exist", errCode: NaN}, 你開發的小程序appId和申請模版ID的appId是一樣的嗎?這個要確定下 必須一致,試了幾次模板是沒錯的

 2、發送消息

 代碼

  <button bindtap="btnClick2">點擊發送訂閱消息</button>

js如下

  btnClick2() {

    wx.request({
      url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx3a67e41d312efe09&secret=3deee1c88d2e3ae6bf584d64945ff367',
      data: {},
      success: function(res) {
        var openid = wx.getStorageSync("openid") //取前一步存起來的openid
        console.log("獲取openid",openid);
        // 調用下發接口
        wx.request({
          url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + res.data.access_token, //獲取的access_token
          method: "POST",
          header: {
            'content-type': 'application/json' // 默認值
          },
          data: JSON.stringify({
            touser: openid, //當前用戶的openid
            template_id: "IJhwUdQzDAXCAdE5cE0VkZYf05G70--FsEqKSf-swS4", //需要下發的模板ID,如模板不多可讓后台直接配置寫死,多的話就通過微信獲取模板列表接口查詢模板
            //page: "pages/garden/garden", //點擊小程序訂閱消息跳轉的頁面,可攜帶參數
            data: {
              "name1": { //這個key值就是上面提到的關鍵詞,在后台對應的模板詳情里可以看到,等后台-->點訂閱消息-->我的模板(沒有的話先去公共模板庫選一個)-->點擊詳情-->右邊詳細內容里就是對應的key了
                "value": '張三' //這個值是下發給用戶的信息
              },
              "date2": {
                "value": '2020-01-08'
              },
              "thing4": {
                "value": '感冒了'
              },
              "time3": {
                "value": '19:52'
              }
            }
          }),
          success: res => {
            console.log(res)
            wx.showToast({
              title: '下發成功',
            })
            // 這里可以寫自己的邏輯
          }
        })
      }
    })

  },

 這是一次性訂閱,每次調起授權一次,只能發一次,除非你授權多次,才可以

 

 所以都會處理把wx.requestSubscribeMessage res下放入發送方法下去執行

關於page 是內官網只允許內部頁面,只能單獨新建頁面,然后內嵌別的頁面了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM