微信小程序发送订阅消息(之前是模板消息)
2020/8/25 5:04:49
本文主要是介绍微信小程序发送订阅消息(之前是模板消息),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
之前的模板消息已经废弃,现在改为订阅消息,订阅消息发布前,需要用户确认后才能接收订阅消息。
小程序端
index.wxml
<button bindtap="send">发送订阅消息</button>
index.js
const app = getApp() Page({ data: { }, send:function(){ wx.requestSubscribeMessage({ tmplIds: ['WZiCliW1zVtHXqX7dGnFNmFvxhW-wd9S_W4WfrwNvss'], success:(res)=> { wx.request({ url: 'https://www.xxx.com/send.php', data: { openid:'要推送的openid', template_id:'要使用的template_id', }, header: { 'content-type': 'application/json' }, success (res) { if(res.data.errcode == '43101'){ console.log("拒绝订阅消息") }else if(res.data.errcode == '0'){ console.log("发送订阅消息") }else{ console.log("未知错误") } } }) } }) } )}
后端
<?php //设置 header header("Content-type:application/json"); //接收参数 $template_id = $_GET["template_id"]; $openid = $_GET["openid"]; //初始化 CURL $ch = curl_init(); // 获取access_token // include ''; require_once("access_token.php"); //目标服务器地址 curl_setopt($ch, CURLOPT_URL, 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token='.$access_token); //设置要POST的数据 curl_setopt($ch, CURLOPT_POST, true); $data = '{ "touser": $openid, "template_id": $template_id, "page": "pages/index/index",// 要跳转的页面 "miniprogram_state":"developer", "lang":"zh_CN", "data": { "thing4": { "value": "欢迎使用专插本最前线小程序" }, "thing5": { "value": "小程序由公众号:广东专插本最前线开发" } } }'; curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); // 对认证证书来源的检查 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 从证书中检查SSL加密算法是否存在 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); //获取的信息以文件流的形式返回,而不是直接输出 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //发起请求 $result = curl_exec($ch); echo $result; //关闭请求 curl_close($ch); ?>
access_token.php
<?php // 声明页面header header("Content-type:charset=utf-8"); // APPID、APPSECRET $appid = "你的小程序APPID"; $appsecret = "你的小程序APPSECRET"; // 获取access_token和jsapi_ticket function getToken(){ $file = file_get_contents("access_token.json",true);//读取access_token.json里面的数据 $result = json_decode($file,true); //判断access_token是否在有效期内,如果在有效期则获取缓存的access_token //如果过期了则请求接口生成新的access_token并且缓存access_token.json if (time() > $result['expires']){ $data = array(); $data['access_token'] = getNewToken(); $data['expires'] = time()+7000; $jsonStr = json_encode($data); $fp = fopen("access_token.json", "w"); fwrite($fp, $jsonStr); fclose($fp); return $data['access_token']; }else{ return $result['access_token']; } } //获取新的access_token function getNewToken($appid,$appsecret){ global $appid; global $appsecret; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret.""; $access_token_Arr = file_get_contents($url); $token_jsonarr = json_decode($access_token_Arr, true); return $token_jsonarr["access_token"]; } $access_token = getToken(); ?>
逻辑
1、通过button控件出发send函数
2、send函数调用wx.requestSubscribeMessage
API,微信允许接收订阅消息
3、 wx.request
向send.php后端请求
4、后端获取access_token后,调用订阅消息接口POST一段json数据即可发送订阅消息
官方文档
1、https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html
2、https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.addTemplate.html
Author:TANKING
Date:2020-08-24
Web:http://www.likeyun.cn/
WeChat:face6009
这篇关于微信小程序发送订阅消息(之前是模板消息)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-31苹果手机微信小程序底部有一条横线,页面如何兼容?-icode9专业技术文章分享
- 2024-12-31微信小程序如何获取页面高度?-icode9专业技术文章分享
- 2024-12-30uni-app微信小程序怎么修改默认导航栏的间距样式?-icode9专业技术文章分享
- 2024-12-30uni-app微信小程序全局配置自定义导航栏有哪些方法?-icode9专业技术文章分享
- 2024-12-30在Uni-app 微信小程序中怎么使用 Vant 组件库的导航栏组件?-icode9专业技术文章分享
- 2024-12-30微信小程序的 WXSS 中怎么实现单行文本超过部分显示省略号?-icode9专业技术文章分享
- 2024-12-24微信小程序资料入门指南
- 2024-12-20微信小程序开发入门指南
- 2024-12-20小程序 createCameraContext() 怎么实现识别条形码功能?-icode9专业技术文章分享
- 2024-11-22微信小程序的接口信息py可以抓到吗?-icode9专业技术文章分享