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


Posted in PHP onOctober 30, 2019

1、订阅消息

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

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

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

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

2、准备工作

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

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

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

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

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

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

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

3、授权接收

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

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

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

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

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 为例)

总结

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

PHP 相关文章推荐
二十行语句实现从Excel到mysql的转化
Oct 09 PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
php入门教程 精简版
Dec 13 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
php格式化日期和时间格式化示例分享
Feb 24 PHP
怎样搭建PHP开发环境
Jul 28 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
laravel获取不到session的三种解决办法【推荐】
Sep 16 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 PHP
php上传后台无法收到数据解决方法
Oct 28 #PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 #PHP
PHP接入微信H5支付的方法示例
Oct 28 #PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 #PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 #PHP
layui数据表格自定义每页条数limit设置
Oct 26 #PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 #PHP
You might like
用PHP制作的意见反馈表源码
2007/03/11 PHP
php中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
Python的randrange()方法使用教程
2015/05/15 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
python函数的5种参数详解
2017/02/24 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
哈姆雷特读书笔记
2015/06/29 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
高一数学教学反思
2016/02/18 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
浅谈Python响应式类库RxPy
2021/06/14 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python
利用Python实现模拟登录知乎
2022/05/25 Python