微信小程序订阅消息开发

446 阅读1分钟

大致的流程,用户在小程序里进行购物等操作,小程序同时弹出授权弹窗请求用户授权,授权成功后,Server就能通过微信的api发消息给用户了

image.png 官方文档

关键步骤

选取消息模板

进入小程序后台选择订阅消息模板,每个模板提供特定的样式

image.png

模板申请授权

wx.requestSubscribeMessage({
  tmplIds: ['Wi1RBTvrTxGgWm3tfbLj_hy8ItGF_YW72QohcGNSPyE', 'jhN393J2oMKUO_6vPjUJF9iSASrNBN42i1sTmHMRuvY', 'wgkRJwfhkBXZkAyO4P0xO-7rLMkN7t-bQMwfpfnhqA0'],
  success(res) {
    console.log(res);
  }
});

用户会看到如下效果: image.png

通过Server发送消息

Server接口文档:developers.weixin.qq.com/miniprogram…

获取token

可以通过微信开发平台的如下工具,获取到token

mp.weixin.qq.com/debug/cgi-b…

获取openid

developers.weixin.qq.com/miniprogram…

wx.login({
  success (res) {
    if (res.code) {
      //发起网络请求
      wx.request({
        url: `https://api.weixin.qq.com/sns/jscode2session?appid=xxx&secret=xxx&js_code=${res.code}&grant_type=authorization_code`,
        data: {
          code: res.code
        }
      }).then(res => {
        console.log(res);
      })
    } else {
      console.log('登录失败!' + res.errMsg)
    }
  }
})

发送示例

curl --location --request POST 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=39_6R8c2NgR8mvb6ju9nXXFLuzdpH3yZdlWdHG8geNPvxsvl7VBvucOct2K5--lQRd2BNObfzsi4wjIVj9Gd-vY8CaV9R3xdtR20np6yH_3hEd6LQSTOp-otcrwUnA44EV9kie0icgGk8k-vGcIDBWjADASQL' \
--header 'Content-Type: application/json' \
--data-raw '{
    "touser": "oS2PW5fRasqF0GW6qwuK3BsDORqQ",
    "template_id": "Wi1RBTvrTxGgWm3tfbLj_hy8ItGF_YW72QohcGNSPyE",
    "lang": "zh_CN",
    "data": {
        "time1": {
            "value": "2019-11-09 21:43"
        },
        "amount2": {
            "value": 9999999999
        },
        "phrase3": {
            "value": "提现成功"
        }
    }
}'

tips

单次模板和长期模板不可以同时申请授权

{errCode: 20002, errMsg: "requestSubscribeMessage:fail Templates type must be same"}