微信小程序发送订阅消息的方法(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变量引用的面试题
Aug 08 PHP
php数据库配置文件一般做法分享
Jul 07 PHP
如何使用Strace调试工具
Jun 03 PHP
php分页函数示例代码分享
Feb 24 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
php生成shtml类用法实例
Dec 09 PHP
PHP读取txt文本文件并分页显示的方法
Mar 11 PHP
使用php实现从身份证中提取生日
May 09 PHP
详解PHP用substr函数截取字符串中的某部分
Dec 03 PHP
PHP memcache在微信公众平台的应用方法示例
Sep 13 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 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
关于我转生变成史莱姆这档事:第二季PV上线,萌王2021年回归
2020/05/06 日漫
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
解析PHP中数组元素升序、降序以及重新排序的函数
2013/06/20 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
python中返回矩阵的行列方法
2018/04/04 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
python3通过selenium爬虫获取到dj商品的实例代码
2019/04/25 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
Python数据存储之 h5py详解
2019/12/26 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
CSS3 简写animation
2012/05/10 HTML / CSS
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
电子技术专业中专生的自我评价
2013/12/17 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
经营场所使用证明
2015/06/19 职场文书
昆虫记读书笔记
2015/06/26 职场文书
导游词之井冈山
2019/11/20 职场文书