php实现微信小程序消息通知

接入消息通知指引地址: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

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/254442.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

crmeb 多商户小程序配置

一、小程序下载并提交审核 下载微信小程序代码 位置&#xff1a;平台后台>应用>小程序 1 首先需要填写这里的小程序信息 然后在这里就可以下载&#xff0c;如果未开启直播要选择&#xff0c;否则会无法使用 2、下载编译后的小程序代码 没有配置小程序的需要先配置小程序…

微信小程序中国标准时间注册错误

在运行微信小程序的时候出现下图错误&#xff1a; 解决办法&#xff0c;在控制台当中输入openVendor() 会打开文件。如下图&#xff1a;删除圈中的文件&#xff0c;重启工具即可&#xff1a;

微信公众号支付报错:当前页面的url未注册

问题描述 公众号支付报错&#xff1a;“当前页面的URL未注册” 原因分析 用户实际的支付目录必须和在微信支付商户平台设置的一致&#xff0c;否则会报错"当前页面的URL未注册" 支付授权目录: 商户最后请求拉起微信支付收银台的页面地址 解决方案&#xff1a; 登…

基于原生微信小程序的时间组件

作者的絮叨 在开发原生微信小程序的时候&#xff0c;发现很少有基于原生微信小程序开发的相关插件或组件&#xff0c;不知道是不是我的孤陋寡闻&#xff0c;还是真的很少&#xff0c;暂且不管~下面我介绍一下我当时开发的一个时间组件&#xff0c;比较简陋&#xff0c;希望可以…

java后端微信小程序登录与注册

java后端微信小程序登录与注册&微信登录授权 分析: 微信小程序用户表 的字段来源于微信服务器 , 必须想办法去获取到对应的用户信息 找到微信开放平台: 微信开放平台 以下是微信开放平台给出的登录流程图: 微信给出的字段值: {"nickName": "Band",&…

微信OAuth2.0授权登录

微信OAuth2.0授权登录 OAuth2.0简介OAuth2的应用微服务安全社交登录 网页微信登录前期准备授权流程 服务器端开发需求网页显示二维码返回微信登录参数添加配置添加配置类controller 前端显示登录二维码封装api请求 处理微信回调添加httpclient工具类添加回调接口获取access_tok…

springboot微信登陆

微信登录的优势 目前微信用户数量巨大&#xff0c;用户更希望通过更快更便捷的方式进行登录&#xff0c;而不是传统的账号密码登录。 springboot 接入微信登陆 准备工作 网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登…

微信小程序注册/登录接口开发

文章目录 后端有关说明前端有关说明接口设计小程序注册/登录接口APP 注册/登录接口PC Web 端的注册/登录接口 小程序注册/登录序列图校验 token 后端有关说明 登录和注册的逻辑要独立抽取写成2个接口&#xff1a;注册接口、登录接口 小程序、APP、PC端的登录接口和注册接口要分…

服务器 微信报警平台,Zabbix实现微信报警

zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数&#xff0c;保证服务器系统的安全运营&#xff1b;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 下文讲述了如何通过微信实现…

java微信二维码登录

1、注册 微信开放平台&#xff1a;https://open.weixin.qq.com 2、邮箱激活 3、完善开发者资料 4、开发者资质认证 准备营业执照&#xff0c;1-2个工作日审批、300元 5、创建网站应用 提交审核&#xff0c;7个工作日审批 6、内网穿透 ngrok的使用 2.2 授权流程 参考…

工作笔记——微信支付开发相关知识整理

在最近的工作中&#xff0c;引入了微信小程序支付&#xff0c;在开发过程中积累和整理了一些技术知识&#xff0c;现将其整理如下 目录 一、概念认识 &#xff08;一&#xff09;术语介绍 &#xff08;二&#xff09;名词解释 &#xff08;四&#xff09;对接微信支付接口规…

微信小程序——如何实现账号的注册、登录?

用到的数据库表&#xff1a; 用户表&#xff1a;chat-user&#xff0c;用于存放用户的基本信息&#xff0c;比如账号、密码、头像等等 用户的注册 1.先获取用户信息 使用wx.getUserProfile接口&#xff0c;获取用户的基本信息 功能描述获取用户信息。页面产生点击事件&…

java对接企业微信

java对接企业微信 一、注册企业微信 1.1 简介 企业微信与微信具有一样的体验&#xff0c;通过企业内部与外部客户的管理&#xff0c;构建出社群生态。企业微信提供丰富的api进行调用获取数据管理&#xff0c;也提供各种回调事件。 1.2 注册 登录官网&#xff0c;一键注册即可…

微信 JSAPI 支付流程

微信支付&#xff0c;开发文档地址&#xff1a; https://pay.weixin.qq.com/wiki/doc/api/index.html JSAPI支付文档地址&#xff1a; https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter9_2 微信支付分为5种&#xff1a; Jsapi支付&#xff0c;二维码支付&#xf…

android 仿微信demo————注册功能完善添加头像功能(移动端)

android 仿微信demo————微信启动界面实现 android 仿微信demo————注册功能实现&#xff08;移动端&#xff09; android 仿微信demo————注册功能实现&#xff08;服务端&#xff09; android 仿微信demo————登录功能实现&#xff08;移动端&#xff09; an…

微信支付APIv3

文章目录 微信支付之前我的密钥啥的都是放到配置文件里面以后可以再写一个文件基础支付APIv3介绍获取验签和HttpClientAPIv3证书与密钥使用说明 微信支付的SDK工具Native支付流程我们程序运行时的日志也可以使用log.debug在方法堆栈里面查看我们程序执行的方法调用顺序内网穿透…

在线支付系列【8】微信支付之注册商户号

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 文章目录 前言注册商户号1. 微信扫码登录2. 创建申请单2.1 基本信息2.2 主体身份2.3 法人信息及受益人信息2.4 经营与行业信息2.5 结算账户2.6 补充信息2.7 查看申请单 签约方式一&#xff1a;手机签约方…

Scala函数

1.基本语法 解析main方法 def main(args: Array[String]): Unit {函数体}*def 关键字&#xff0c;声明一个函数 * main 方法名 * args 参数名称 * Array[String] 参数的类型 * Unit 返回值类型&#xff0c;相当于Java中的void&#xff0c;没有返回值 * {} 函数体函数省略规则 …

微信公众号注册时提示该主体注册数量已超过上限怎么办?

很多用户在注册或认证微信公众号时&#xff0c;遇到“该主体注册数量已超过上限”的问题&#xff0c;这是怎么回事呢&#xff1f; 原因是2018年11月16日微信官方对公众号注册数量做了调整&#xff1a; 1.个人主体注册公众号数量上限由2个调整为1个&#xff1b; 2.企业类主体注…

开通微信公众号流程所需资料及时间

2019独角兽企业重金招聘Python工程师标准>>> 序号 阶段 所需资料 所需时间 一、&#xff08;企业&#xff09;注册公众平台 使用未注册过微信公众号的邮箱注册、验证激活 即时二、 选择帐号类型 详情查看服务号、订阅号、企业号区别后选择类型 即时三、信息登记 选择…