• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

3、小程序消息推送

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、配置消息模板

 然后配置

 宝塔创建站点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 是内官网只允许内部页面,只能单独新建页面,然后内嵌别的页面了

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
夜光 带你走进微信小程序研发(五)发布时间:2022-07-18
下一篇:
微信小程序开发:学习笔记[2]——WXML模板发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap