接入消息通知指引地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/custommsg/callback_help.html

文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html#%E6%A8%A1%E7%89%88%E6%B6%88%E6%81%AF%E7%AE%A1%E7%90%86

看完这两个地址基本上你就明白是怎么实现消息通知的了,下面就是需要根据自己的业务需求写php代码了

php中业务分为以下几个步骤:

1、小程序后台消息模板设置获取模板ID

2、微信公众平台|小程序->设置->开发设置 获取AppID(小程序ID)、AppSecret(小程序密钥   注:重置后导致之前的失效)

3、通过AppID、AppSecret调用接口生成ACCESS_TOKEN

4、获取form_id

5、发送模板消息

下面是实现上面步骤的详细过程:

一、获取模板ID

二: 获取AppID(小程序ID)、AppSecret(小程序密钥   注:重置后导致之前的失效)

三、生成ACCESS_TOKEN

接口地址:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

代码实现:

public function getAccessToken(Request $r)
{$appId = Input::get('appId',NULL);$appSecret = Input::get('appSecret',NULL);$r = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appId&secret=$appSecret"); //返回的是字符串,需要用json_decode转换成数组$data = json_decode($r,true);return $data['access_token'];}四、获取form_id需要在小程序上做个form表单提交,可以前端生成传到后台,就可以获取到了注:
页面的 <form/> 组件,属性report-submit为true时,可以声明为需发模板消息,此时点击按钮提交表单可以获取formId,用于发送模板消息(多个地方生成form_id传给后端)。
form_id的长度:Android是13位时间戳、iOS是32位GUID
form_id其实就是前端负责获取,传给后端,后端将form_id存起来,在业务中用到消息通知的时候从表里面取出来form_id中需要注意的一点:一个form_id只能用一次,所以在建表的时候需要给个status区分已使用和未使用的状态(这个坑已经进去过,发送完模板不修改status值,会使得消息通知偶尔成功,偶尔失败)
五、发送模板消息上面需要的参数都准备好了,OK,这里自己封装了一个方法。然后在用到的地方调用的
封装的方法如下:
public function sendMessage()
{$token = $this->getToken();$post = [];$post['touser'] = '用户openId';$post['page'] = 'index';$post['emphasis_keyword'] = 'keyword1.DATA';$post['color'] = '#173177';$post['template_id'] = '模板id';$post['form_id'] = 'formId';$post['data'] = ['keyword1'=>['value'=>'xxxxxx','color'=>'#173177'],'keyword2'=>['value'=>'2018-03-06 14:22:34','color'=>'#173177'],'keyword3'=>['value'=>'xxxxxx','color'=>'#173177']];$url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$token;$re = $this->curl_url($url,$post);return $re;
}private function curl_url($url, $json)
{$body = json_encode($json);$headers = array("Content-type: application/json;charset=UTF-8", "Accept: application/json", "Cache-Control: no-cache", "Pragma: no-cache");$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $body);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, $headers);$result = curl_exec($ch);curl_close($ch);return $result;}调用:
public function send(Request $r)
{$wechat = new WeChatApi();$re = $wechat->sendMessage();return $re;}到这里就可以实现消息通知了

原文地址:https://www.cnblogs.com/a-record/p/8521138.html

php实现微信小程序消息通知相关推荐

  1. 微信小程序消息通知开发

    微信小程序消息通知开发及注意点 大致流程图: #mermaid-svg-kKvz8B789cmQ7zco {font-family:"trebuchet ms",verdana,a ...

  2. 微信小程序消息通知简单Demo

    前言   最近项目有需求需要用到微信小程序推送消息,在此记录一下实验过程. 前提准备 在开始前,你需要准备: 注册微信小程序 一个简单的springBoot 项目 微信开发者工具 正式 微信小程序发送 ...

  3. 微信小程序 消息订阅 长期订阅 一次授权 多次接收 微信服务通知

    微信小程序消息订阅 长期订阅 一次授权 多次接收 发送微信服务通知消息 这里讲长期订阅! 长期订阅! 长期订阅! 需求描述: – 根据用户不同标签(租户.业主.维修师傅.居委会成员)一键向人员统一发送 ...

  4. 微信小程序消息模板设计及实现

    本文以微信小程序内置的两个模板:购买成功和评论回复提醒为例来阐述第三方微信小程序平台的设计. 小程序端 微信用户支付成功后,微信服务通知中会收到支付成功服务提醒.见下图: 商家端 用户完成评价后,商家 ...

  5. php微信小程序物流进度推送,微信小程序 消息推送php服务器验证实例详解

    微信小程序 消息推送php服务器验证实例详解 设置页面("设置">>"开发设置"): 1.设置服务器域名 注意http和https协议的不同. 2. ...

  6. nodejs android 推送,利用Nodejs怎么实现一个微信小程序消息推送功能

    利用Nodejs怎么实现一个微信小程序消息推送功能 发布时间:2021-01-20 13:55:29 来源:亿速云 阅读:92 作者:Leah 今天就跟大家聊聊有关利用Nodejs怎么实现一个微信小程 ...

  7. TP6 微信小程序消息推送配置Token校验失败200302

    ThinkPHP6 微信小程序消息推送配置时报错: {"ret":200302,"err_msg":"verify token fail"} ...

  8. 微信小程序消息推送,实现未完成计划的在微信内的定时提醒功能

    微信小程序消息提醒(微信内提醒) 提示:此处仅是小程序消息提醒的一个小例子,希望能够为大家抛砖引玉 目录 微信小程序消息提醒(微信内提醒) 需求及效果展示 一.实现思路 二.实现步骤 1.获取模板ID ...

  9. 微信小程序消息订阅超详细流程步骤

    第一步:登录微信小程序管理后台 链接https://mp.weixin.qq.com 第二步:在左侧栏目找到订阅消息菜单栏  --我的模板   ,可以去公共模板库增加自己想要的模板 如果没有自己想要的 ...

  10. 微信小程序消息从公众号推送

    2020.06.05更新 新的一年认证续费只需要续费公众号. 小程序可以自动关联认证. 一定要记得!!!!!!! ------------------------------------------- ...

最新文章

  1. Datawhale组队学习 Task04:队列(2天)
  2. JQuery ajax请求一直返回Error(parsererror)
  3. 执行插件超过2分钟超时错误,如何办?
  4. 获取IP地址和MAC地址
  5. 华为云DevCloud重金悬赏,开发者大赛等你来战!
  6. 面试题56: 数组中数字出现的次数
  7. JAVA JDK环境渲染
  8. Asp.Net MVC4入门指南(7):给电影表和模型添加新字段
  9. 实验五 Flash在线编程实验
  10. 前端练习-CSS布局
  11. C#处理JSON格式数据
  12. 原生js模拟微信聊天记录
  13. Pr:旧版标题字幕设计器
  14. python程序turtle雪人_用turtle画一个雪人
  15. 大数据(7f)比较Python和Scala面向对象
  16. 【图解版】深入web请求过程
  17. 如何向开源社区贡献代码
  18. adas记录仪app_路影行车记录仪app
  19. 传统客服中心KPI指标汇总(非智能客服运营中心指标)
  20. 软件测试的定义和分类

热门文章

  1. 图灵奖得主亲授!深度学习视频课程精选
  2. matlab simulink节点,ROS与Matlab语言入门教程-从Simulink中创建单独的ROS节点
  3. springboot 整合 ftps
  4. 怎么做应力应变曲线_舌尖上的力学——浅谈应力应变曲线
  5. 用74ls90组成二十四进制计数器_六十进制应该怎么怎么设计呢?
  6. NanoMsg框架|C#中Nanomsg的PAIR和BUS使用
  7. Pyserial安装
  8. 使用Java解析Json
  9. .net core with 微服务 - 微服务架构图
  10. VMware虚拟机安装Win10教程