微信小程序

微信小程序发送消息
====
前言:小程序发送订阅消息是微信基础库 2.4.4 开始支持,低版本需做兼容处理。(注意阅读官方文档的注意事项,很重要!!!)

官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html

基本就是按照官方的步骤走;其中有很多的细节需要注意下。

步骤一:获取模板 ID

在微信公众平台手动配置获取模板 ID:

登录https://mp.weixin.qq.com获取模板,如果没有合适的模板,可以申请添加新模板。

步骤二: 获取下发权限

这里回调用wx的官方接口:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html

  /**
   *  发送订阅消息
   */
  sendInfo(){
    wx.requestSubscribeMessage({
      // 这里是你的模板id 最多支持三个
      tmplIds: ['6wH7uJeq-ZrmwQJB8uoRAxeXhBe9sdIaZOSd9KCW7VI'],
      success (res) { 
        console.log("订阅消息",res);
      },
      // 官方文档中有状态码的解释 具体是什么错很详细
      fail(err){
        console.log("订阅失败",err);
      }
    })
  },
步骤三:调用接口下发订阅消息

官方接口文档: [下发接口](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html)

我这里用的是https调用方式

首先你先要获取小程序全局唯一后台接口调用凭据(access_token)

接口地址

```
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
三个参数
grant_type:client_credential(这个写死就行)
appid:(这里是你的小程序appid)
secret:(这里是你的小程序密钥)
上面两个都可以去你的小程序个人中心 开发=> 开发管理 =>  开发设置 中查看 注意保存 (后期会省事很多)
```
这里我是用postman测试拿的access_token,实际开发中可以将他们作为参数传给后端,让后端去拿access_token

接下来去调用后端推送消息的接口
[官方文档](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html)

 接口地址:POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN

这里注意token需要拼在url后面 
其他的参数需要放在body中,content-type设置为application/json,参数含义在文档中都有介绍。 需要注意的是: data的格式必须跟你申请的模板的模板详情格式严格保持一致 (这里需要多注意接口报错的信息,注意与文档对比纠正)
{
  "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号"
      }
  }
}
这样就可以给用户发送订阅消息了
在这里说下前端如何获取openId
需要先去调用登录接口,拿到返回值的code 作为下面请求的参数,至于在哪调用,就得看实际情况,建议做缓存
     wx.login({
                success(res) {
                  wx.request({
                    url: 'https://api.weixin.qq.com/sns/jscode2session?appid=你的小程序appid&secret=你的小程序secret&js_code=' + 调用微信登录获取的code + '&grant_type=authorization_code',
                    success(result) {
                      // 获取用户的openId
                      console.log(result);
                      //  "oy5o95A3MHGsdelAe4wIWkfe_XgM"
                    }
                  })
                }
              })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值