微信小程序发送订阅消息的方法(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 相关文章推荐
dedecms中显示数字验证码的修改方法
Mar 21 PHP
ecshop 订单确认中显示省市地址信息的方法
Mar 15 PHP
PHP运行环境配置与开发环境的配置(图文教程)
Jun 04 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
PHP中$_FILES的使用方法及注意事项说明
Feb 14 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 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
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
php比较相似字符串的方法
2015/06/05 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
php中错误处理操作实例分析
2019/08/23 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
Python之PyUnit单元测试实例
2014/10/11 Python
python计算N天之后日期的方法
2015/03/31 Python
低版本中Python除法运算小技巧
2015/04/05 Python
wxpython实现图书管理系统
2018/03/12 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
wxPython色环电阻计算器
2019/11/18 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
Weblogic的布署方式
2013/08/23 面试题
同学会邀请书大全
2014/01/12 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
党校党性分析材料
2014/12/19 职场文书
地陪导游欢迎词
2015/01/26 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
PHP基本语法
2021/03/31 PHP