微信小程序 订阅消息功能

步骤一 获取模板id

微信公共平台 订阅消息

可以选择添加公共模板 (只能用一次)

图片偷来的
步骤二 获取下发权限

下发权限的获取十分简单,只需要在小程序端调用requestSubscribeMessage API即可

在这里插入图片描述
使用方法:

wx.requestSubscribeMessage({
  tmplIds: [''],
  success (res) { }
})

这个时候我们可以看到调用时,屏幕下部弹出一个消息框:
在这里插入图片描述
步骤三:调用接口下发订阅消息

(1)下发消息的核心在于发送POST请求:subscribeMessage.send,通过此条请求我们将获得下发能力:

  • subscribeMessage.send支持https调用和云调用
  • 请求地址:POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
  • 请求参数:

在这里插入图片描述

  • 请求示例:
{
  "touser": "OPENID",
  "template_id": "TEMPLATE_ID",
  "page": "index",
  "miniprogram_state":"developer",
  "lang":"zh_CN",
  "data": {
      "number01": {
          "value": "339208499"
      },
      "date01": {
          "value": "2015年01月05日"
      },
      "site01": {
          "value": "TIT创意园"
      } ,
      "site02": {
          "value": "广州市新港中路397号"
      }
  }
}

(2)请求并不复杂,重要的是参数的获取,发送请求我们至少需要这些参数:

在这里插入图片描述

例如,模板的内容为

姓名: {{name01.DATA}}
金额: {{amount01.DATA}}
行程: {{thing01.DATA}}
日期: {{date01.DATA}}

则对应的json为

{
  "touser": "OPENID",
  "template_id": "TEMPLATE_ID",
  "page": "index",
  "data": {
      "name01": {
          "value": "某某"
      },
      "amount01": {
          "value": "¥100"
      },
      "thing01": {
          "value": "广州至北京"
      } ,
      "date01": {
          "value": "2018-01-01"
      }
  }
}

  • 用这样的参数规则我们将前端的参数传入后台:
 //发送订阅消息
  message: function () {
    var that = this;
    //订阅消息模板id
    var template_id ="fqgotens_HRal3Ygiy7_WafYLsvDyMxvnNv9P8uJ_Ro";
    wx.requestSubscribeMessage({
      tmplIds: ['fqgotens_HRal3Ygiy7_WafYLsvDyMxvnNv9P8uJ_Ro'],
      success(res) {
      //发送access_token请求
        wx.request({
          url: 'https://littlede.applinzi.com/message.php',
          data:{
            access_token: that.data.accessToken,
            //数据包
            data:{
            //openid
              "touser": that.data.openid,
            //模板id
              "template_id": template_id,
              "page": "index",
              "miniprogram_state": "developer",
              "lang": "zh_CN",
              "data": {
                "date1": {
                  "value": "2020年02月18日"
                },
                "phrase2": {
                  "value": "岳阳市"
                },
                "phrase3": {
                  "value": "晴"
                },
                "character_string4": {
                  "value": "15℃"
                }
              }
            }
          },
          success: function(res) {
            console.log("订阅成功");
            console.log(res);
          },
          fail: function(res) {
            console.log("订阅失败");
          },
        })
      }
    })
  },

  • 服务器端代码:获取参数 发送post请求
<?php
	//获取参数
	$access_token=$_GET["access_token"];
	$data=$_GET["data"];
	//拼接subscribeMessage.send的URL
	$api="https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={$access_token}";
    //php post请求网络的方法
   function http_request($url,$data = null,$headers=array())
    {
        $curl = curl_init();
        if( count($headers) >= 1 ){
            curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        }
        curl_setopt($curl, CURLOPT_URL, $url);

        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }
	$str=http_request($api,$data);
	echo $str;
?>

最后我们调用函数,获取用户openid,获取access_token,获取模板id,发送subscribeMessage.send`post请求,可以看到用户成功接收到订阅消息:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值