微信小程序发送订阅消息的方法(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 相关文章推荐
一步一步学习PHP(2)――PHP类型
Feb 15 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
Jun 18 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
smarty模板引擎从php中获取数据的方法
Jan 22 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
Mar 06 PHP
PHP判断密码强度的方法详解
May 26 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
php基于Redis消息队列实现的消息推送的方法
Nov 28 PHP
PHP简单验证码功能机制实例详解
Mar 27 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 PHP
PHP实现简单的计算器
Aug 28 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
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
python 如何区分return和yield
2020/09/22 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
教师实习的自我鉴定
2013/10/26 职场文书
教师演讲稿范文
2014/01/08 职场文书
《燕子》教学反思
2014/02/18 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python