首先讲两个注意事项

1、小程序和微信公众号的用户openid是不同的。

2、小程序需要用户手动授权订阅消息通知(一次性订阅是订阅一次发一次,长期订阅可以多发)。

关于小程序和公众号AppID和AppSecret的获取可以自行百度一下,挺简单的。

小程序订阅消息

1.1 在后台选中自己需要的模板和相应的字段,注意不同的字段字符长度和格式的问题。

参考文档:subscribeMessage.send | 微信开放文档

【订阅消息参数值内容限制说明】

1.2 小程序授权按钮

<button class="btn" bindtap="onSubscribe" hover-class="btn-hover">订阅挂号成功提醒
</button>
//开启消息通知
onSubscribe: function(e) {// 消息推送wx.requestSubscribeMessage({tmplIds: ['daPvT7nLnOY***************F_A9VCBI'],  //你的模板idsuccess(res) {        console.log('授权成功', res)},fail(res) {console.log('授权失败', res)}})
},

1.3 我这里用的HTTPS发送,代码是php

<?php/** 微信小程序消息订阅*/ public function actionSubmessage($openid = null){//配置appid$appid = "";//配置appscret$secret = "";$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;//获取access_token$access_token = $this->geturl($url)["access_token"];$urlz="https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=".$access_token;//模板id$template_id = "daPvT7nLnO*********************A9VCBI";$data = [] ;//接收者(用户)的 openid$data['touser'] = $openid;//所需下发的订阅模板id$data['template_id'] = $template_id ;//点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。$data['page'] = "pages/index/index" ;//模板内容 phrase  date thing 这些类型有字符长短要求,注意看文档$data['data'] = ["phrase2" => ['value' => '测试'],"phrase6" => ['value' => '就诊李主任'],"date14" => ['value' => '2022年06月11日'],"date8" => ['value'=>'8:30 ~ 17:00'],'thing18'=>['value'=> '呼吸内科']];//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版$data['miniprogram_state'] = 'developer';var_dump($this->posturl($urlz,$data));}/** curl get请求封装,返回json数据格式数据*/public function geturl($url){$headerArray =array("Content-type:application/json;","Accept:application/json");$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray);$output = curl_exec($ch);curl_close($ch);$output = json_decode($output,true);return $output;}/** curl post请求封装,返回json数据格式数据*/public function posturl($url,$data){$data  = json_encode($data);$headerArray =array("Content-type:application/json;charset='utf-8'","Accept:application/json");$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($curl);curl_close($curl);return json_decode($output,true);}
?>

公众号模板消息推送

2.1 微信公众号开启模板消息推送

2.2 这个前端没啥特别的,直接上后端代码,用的tp6框架,可以根据实际情况自己改

类文件 WxMessage.php

<?php
//WxMessage.php
namespace Think;
class WxMessage
{//服务号var $appid = ''; var $appsecret = '';//构造函数,获取Access_Tokenpublic function __construct($appid = NULL, $appsecret = NULL){if($appid && $appsecret){$this->appid = $appid;$this->appsecret = $appsecret;}//$this->lasttime = 1654756504;//$this->access_token = "57_cu07w68F9BPur3VvmkFPS6i_OLkN5dGJeCeJn8u8PKNRgxOmQ4PtCVesDNFwIj-6ExGmHhM2vzoparead5OnW7FZmuYWEyr2JwszreshbNdDQ8mtDaGncwnbgVVXjf8UKvaagCfqOct5hS97ZQHhAFALCT";//if(time() > ($this->lasttime + 7200)){$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->appsecret;$res = $this->http_request($url);$result = json_decode($res, true);//echo $result["access_token"];$this->access_token = $result["access_token"];$this->lasttime = time();//}}public function send_template_message($data){$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$this->access_token;$res = $this->http_request($url, $data);return json_decode($res, true);}//https请求(支持GET和POST)protected function http_request($url, $data = null){$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);if (!empty($data)){curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);}curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($curl);curl_close($curl);return $output;}
}
?>
<?php
namespace app\admin\controller;
use think\Controller;
use think\Validate;
use think\facade\Request;
use think\facade\Db;
use think\facade\Session;
use think\facade\View;
use think\WxMessage;  //引入类class Weixinqf extends Base
{     //发送提醒    public function sendMessage(){       //构造消息模板$openid = "";  //自己去获取$zname = "程序测试";$zsource = "公众号—就诊(李主任)";$zdate = "2022-06-08(上午)";$template = $this->orderSuccess($openid,'',$zname,$zsource,$zdate);  //实例化消息类$message = new WxMessage();//发送消息$message->send_template_message(urldecode(json_encode($template)));}//成功通知模板/** openid:微信唯一标识* zname:姓名* zsource:来源* zdate:时间*/public function orderSuccess($openid=null,$url=null,$zname=null,$zsource=null,$zdate=null){$template = array("touser" => "{$openid}","template_id" => "7zQSy****************KOlsc",//'url' => "{$url}",  //也可以配置这个,就可以进入自己配置的网址"miniprogram" => array(  //我这里引入的小程序"appid" => "*******", "pagepath"=>"pages/index/index"),   'data' => array('first'   => array('value' =>urlencode('挂号成功'),'color' => "#FF0000"),'keyword1' => array('value'=>urlencode($zname)),'keyword2' => array('value'=>urlencode($zsource)),'keyword3' => array('value'=>urlencode($zdate)),'keyword4' => array('value'=>urlencode('8:30 - 17:00')),'keyword5' => array('value'=>urlencode('呼吸内科')),'remark'   => array('value'=>urlencode('凭预约短信和就诊人身份证在门诊一楼导医台取号就诊,一对一问诊,医务人员全程陪同。详情请咨询:028-******!'),'color' => "#FF0000"),),);return $template;}
}?>

小程序发送订阅消息,微信公众号发送消息模板相关推荐

  1. 商城前端模板_如何理解微信小程序和微商城,微信公众号以及APP之间的关系?一张图看懂了!...

    老张的一位粉丝,花了几天时间把知乎里面分享的一些关于微信小程序,微信商城,微信公众号,以及APP的相关介绍全看完了. 然后用他自己的话描述了微信小程序和微商城,微信公众号以及APP之间的关系,如下图所 ...

  2. 2021最新外卖霸王餐小程序、H5、微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩源码下载

    2021年了,你还在用淘宝客吗?赶紧跟上互联网的大势吧,外卖cps就是cps人群趋势! 个人.个体.企业均可使用 外卖霸王餐小程序.H5.微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩 2 ...

  3. 微信小程序中获取用户微信公众号授权(openid)用来发送模板消息

    需求: 由于小程序不能直接向用户发送模板消息,所以需要用公众号向用户发送模板消息. 于是需要将小程序的openid和公众号的openid绑定在一起.提供两种思路: 方法一: 1.微信小程序和公众号都绑 ...

  4. 为何公众号推送会延迟发送_【微课堂】小程序引流神器—微信公众号营销

    微信公众号作为品牌及商家在微信域中最重要的场景之一,对品牌私域的拉新.维护与促活能够发挥极大的作用.今天小K给大家带来的就是能够有效将微信公众号流量引流至小程序场景,实现品牌私域拉新促活的工具--微信 ...

  5. APP跳转微信小程序,跳转微信公众号

    一.判断手机是否安装了微信的工具类: //判断手机是否安装了某些程序的工具类 public class IsInstallUtils {//判断是否安装了微信public static boolean ...

  6. 小程序 php wecahtpay,PHP 微信公众号,小程序获取支付参数。微信支付

    PHP 微信公众号,小程序获取支付参数.微信支付 发布时间:2018-09-26 11:19, 浏览次数:278 , 标签: PHP 首先下载微信官方demo放入项目中 地址:https://gith ...

  7. 微信小程序如何跳转微信公众号

    目录 一.微信公众号配置 二.微信小程序配置 三.添加代码 一.微信公众号配置 登录微信公众号,点击[小程序管理]: 点击[添加]: 点击[关联小程序]: 输入小程序进行关联: 二.微信小程序配置 登 ...

  8. 2021年外卖小程序、H5、微信公众号版外卖cps项目|外卖美团/饿了么带好友返利佣金系统项目代码

    外卖cps带分销返利源码 源代码地址 http://www.mybei.cn 搭建步骤 下载以上源代码到本地 http://www.mybei.cn 成品展示 截图 步骤 下载以上源代码到本地 htt ...

  9. 小程序里长按微信公众号二维码跳转到公众号关注页

    <image  show-menu-by-longpress="true" src="二维码图片地址"></image> 必须加show ...

  10. 微信公众号发送小程序卡片_微信公众号里怎么添加小程序-如何在微信[[公众号]]添加小程序卡片-微信关联小程序...

    参考官方Demo 1.进入公众号,选择「关联小程序」后,微信公众号运营者用手机扫码进行认证,并输入小程序的AppID即可. 2.腾讯地图+小程序appID:wx7643d5f831302ab0 3. ...

最新文章

  1. 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”...
  2. 无痕模式_无痕网络导航
  3. TensorFlow2.0:单层感知机梯度计算
  4. ubuntu14.04安装tensorflow-gpu
  5. swc反编译工具_Flash反编译工具下载_Flash反编译工具(JPEXS Free Flash Decompiler)v11.3中文版-这家软件站...
  6. 美萍足浴找不到服务器,美萍足疗按摩管理系统,足疗管理软件,足疗保健管理系统、足浴、沐足管理软件!...
  7. 模拟行走机器人-c语言
  8. Python 使用企业邮箱发邮件被识别为外部邮箱的问题及解决方案
  9. initialize php,THINKPHP的_initialize方法
  10. 对小波变换中DWT和CWT的理解
  11. 怎么简单把word转成PDF并生成书签
  12. 户外耳机品牌哪个好、最新的户外耳机品牌排行
  13. czl蒻蒟的OI之路6
  14. 组合导航原理剖析(四):惯性和GNSS器件选型与误差来源
  15. 方兴东:博客网倒掉是十亿美金的教训
  16. GDAL开发(一)cs2cs
  17. ESP32通过蓝牙接收回发数据(有示例代码和步骤)
  18. 上周丢钥匙事件的反思感悟
  19. 锐捷智能感知“安全卫士”守护广东2000个基层医疗机构信息安全
  20. 基于文本服务框架的拼音输入法研究与实现

热门文章

  1. 【转】腾讯 百度 网易游戏 华为Offer及笔经面经
  2. 已知两点获取单位向量 和 单位垂直向量
  3. adb 命令(系统基础类-获取手机系统属性)
  4. JAVA实现读取文件时,从文件的最后一行往上一行行读出来。
  5. Command-click是什么意思?
  6. 电网故障定位与隔离(配网自动化)
  7. Python中end=' '的用法
  8. (四)es6 正则的拓展
  9. Chrome的HTTPS安全站点标志将于今年9月停用
  10. 光追渲染器开发记录:BVH加速结构构建与射线求交