微信小程序发送订阅消息的方法(php 为例)

 更新时间:2019年10月30日 09:07:16   作者:我是玖柒后  
小程序订阅消息公测已经有些日子,今天以世界上最好的语言(PHP)为例,说一下如何发送订阅消息。感兴趣的朋友跟随小编一起看看吧

1、订阅消息

其实如果用过模板消息的话,改用订阅消息挺简单的,看一下官方文档稍加摸索就能使用。

但是对于那些第一次用的萌新来说,可能会遇到各种各样的坑,所以我会具体的说一下实现的过程,有经验的可以直接翻到文章底部查看 Demo。

虽然如此,但是更详细的参数描述还是需要去看官方文档,传送门:

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

2、准备工作

首先是要获取template_id,也就是模板 ID。

这个在小程序后台的公共模板库找到适用的模板选用,之后到我的模板中复制系统分配的模板 ID即可。如果没找到合适的,就需要自己申请模板,3 - 7 天审核期。

然后就是小程序的 AppId 和 AppSecret,获取方式在小程序后台的开发功能中找到开发设置,保存 ID 和秘钥。

这里需要注意的是AppSecret只有在第一次生成的时候会显示,之后不再明文显示,这个需要开发者自己保存好,如果泄露或者忘记密匙重置即可。

至于 openid 的获取这里就不做具体说明了。

3、授权接收

发送前需要接受者授权接收该类订阅消息,否则订阅消息是无法下发,代码很简单,调用官方的订阅接口:

wx.requestSubscribeMessage({
 tmplIds: ['template_id'], // 此处可填写多个模板 ID,但低版本微信不兼容只能授权一个
 success (res) {
  console.log('已授权接收订阅消息')
 }
})

拉起的授权框是这样的,但是截止发文之前,开发者工具是无法调用接口,只能在真机上运行,无奈。

4、下发订阅消息

下发消息调用subscribeMessage.send ,分为云调用和 https 调用,云调用比较简单,免去了 access_token 的获取:

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
 try {
  const result = await cloud.openapi.subscribeMessage.send({
    touser: 'OPENID',
    page: 'index',
    data: {
     name3: {
      value: '我是玖柒后'
     },
     thing4: {
      value: 'Hello World!'
     },
     phrase1: {
      value: "发送成功!"
     },
     date5: {
      value: "发送成功!"
     },
     thing2: {
      value: "1024 身体健康!"
     }
    },
    templateId: 'TEMPLATE_ID'
   })
  console.log(result)
  return result
 } catch (err) {
  console.log(err)
  return err
 }
}

然后在服务器端发起请求,请求地址:

https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=token

在这之前先获取小程序全局唯一后台接口调用凭据(access_token),这就用到了之前保存的 AppId 和 AppSecret。

// 小程序 appID 和 appSecret 获取 token
function getAccessToken($appid, $appsecret)
{
 $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $appsecret;
 $html = file_get_contents($url);
 $output = json_decode($html, true);
 $access_token = $output['access_token'];
 return $access_token;
}

虽然看起来稍微有点复杂,但其实也只要向服务器发送一个请求就可以了,获取和调用都由服务器处理,收到的消息和模板消息差不多。

总结

以上所述是小编给大家介绍的微信小程序发送订阅消息的方法(php 为例),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • Yii框架常见缓存应用实例小结

    Yii框架常见缓存应用实例小结

    这篇文章主要介绍了Yii框架常见缓存应用,结合实例形式分析了Yii框架缓存相关的配置、获取、查询等操作技巧与注意事项,需要的朋友可以参考下
    2019-09-09
  • PHP file_get_contents函数读取远程数据超时的解决方法

    PHP file_get_contents函数读取远程数据超时的解决方法

    这篇文章主要介绍了PHP file_get_contents函数读取远程数据超时的解决方法,本文直接给出解决方法代码,需要的朋友可以参考下
    2015-05-05
  • php解决约瑟夫环示例

    php解决约瑟夫环示例

    这篇文章主要介绍了php解决约瑟夫环示例,需要的朋友可以参考下
    2014-04-04
  • PHP中类与对象功能、用法实例解读

    PHP中类与对象功能、用法实例解读

    这篇文章主要介绍了PHP中类与对象,结合实例形式详细分析了PHP面向对象程序设计中类与对象具体功能、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • PhpStorm2020.1 安装 debug - Postman 调用的详细教程

    PhpStorm2020.1 安装 debug - Postman 调用的详细教程

    这篇文章主要介绍了PhpStorm2020.1 安装 debug - Postman 调用的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 浅谈PHP值mysql操作类

    浅谈PHP值mysql操作类

    下面小编就为大家带来一篇浅谈PHP值mysql操作类。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • php发送get、post请求的6种方法简明总结

    php发送get、post请求的6种方法简明总结

    这篇文章主要介绍了php发送get、post请求的6种方法简明总结,分别为使用file_get_contents 、fopen、fsockopen、curl来发送GET和POST请求,需要的朋友可以参考下
    2014-07-07
  • 分享ThinkPHP3.2中关联查询解决思路

    分享ThinkPHP3.2中关联查询解决思路

    这篇文章主要介绍了ThinkPHP3.2中关联查询解决思路的相关资料,需要的朋友可以参考下
    2015-09-09
  • Django中通过定时任务触发页面静态化的处理方式

    Django中通过定时任务触发页面静态化的处理方式

    Django是一个开放源代码的Web应用框架,由Python写成。这篇文章主要介绍了Django中通过定时任务触发页面静态化的方式,需要的朋友可以参考下
    2018-08-08
  • Django 中 cookie的使用

    Django 中 cookie的使用

    Cookie是浏览器在客户端留下的一段记录,这段记录可以保留在内存或者硬盘上。Django里面,对cookie的读取和设置很简单。接下来通过本文给大家分享Django 中 cookie的使用,感兴趣的朋友一起看看吧
    2017-08-08

最新评论