PHP实现发送模板消息到微信公众号
简述:在这里会具体讲述到如何实现:如何通过后台的代码来实现发送模板消息到已经关注了“心想”公众号的用户。
(本人新手,目前实习中,我的所有文档都是在自己开发过程中的记录,有些言语跟我的项目有关请大家可以忽略,主要是跟大家分享我的一些想法和经验!同时希望大家多多支持,你们的支持将会给我更大的动力!)
方法很简单,在官方的文档中已经给出了解决方案。后台写来也是比较简单的。唯一存在的难点就是我们需要获取到用户的fakeid,也就是用户在微信公众号内的openid(注意,这里的openid是指用户关注公众号之后产生的一个openid,这个跟小程序的openid是不同的)。怎么获取到用户的fakeid,请大家耐心等待我的下一篇文档(“如何实现不同应用之间openid的对应(主要是openid(fakeid),unionid等之类的信息匹配)”)。
接下来就开始实现如何发送消息。下面会讲到最简单的模板消息的发送。
- 首先获取到我们最最最基本的两个参数,一个是我们微信公众号的appid,另一个则是我们微信公众号的secret。(在这个文档就不写具体是什么参数了)
- 在第一步中拿取到我们的appid和secret之后,我们开始进行我们的access_token的参数请求。具体的请求如下:
$str = file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret);
注意在php中我们使用我们的值需要通过“.”来连接我们的数据
$token = json_decode($str,true); //这一步我们去把上面获取到的数据转化为数组形式,方便我们去获取数据
$access_token = $token['access_token']; //这里去获取我们的access_token(取出具体的值)
介绍一下access_token的作用,在微信的开发中,access_token可谓是很多功能实现一定要经过的步骤,因为这个是唯一我们可以对微信中一些功能实现的凭证,如果没有这个access_token,则我们是无法显示有些功能的。
- 在获取到我们的access_token之后(我们已经准备好了我们可以使用微信功能的凭证了。就相当于我们已经成功了一半了),接下来我们就我们模板信息准备了。(下面准备了一个最简单的信息发送,如果想要了解更多,请看微信公众号内的官方文档,里面写的很详细!)
$template=array(
'touser'=>'ocRJTuOuTv6e7Hw6j*********',
'template_id'=>'_t-BVDFVSl_HZ6xkMRNOOQIQOuShl9V21S-rAoA71b0',
'data'=>array(
'first'=>array('value'=>'点击跳转小程序',"color"=>'#173177'),
'keyword1'=>array('value'=>'test',"color"=>'#173177'),
'keyword2'=>array('value'=>'test',"color"=>'#173177'),
'remark'=>array('value'=>'test',"color"=>'#173177')
)
);
接下来一个一个参数进行解释:
$template=array();这个是我们模板的最外层函数,发送给用户的是一个数据,在客户端(手机端的微信公众号)应该会根据我们发送的数据进行发送(具体怎么实现这里不做研究)。
'touser':这个参数极为关键,这个参数是最关键的一个参数,因为也是最难获取到的一个参数,这里面需要填写的参数就是在上面写道的openid(在这里openid就是fakeid,也就是用户在公众号内唯一的openid,发送消息是通过openid来识别是哪个用户,从而来实现相对应的数据发送,具体怎么获取到需要根据不同的需求下来获取到用户的openid,在这里请期待我的下一篇文档(“如何实现不同应用之间openid的对应(主要是openid(fakeid),unionid等之类的信息匹配)”)这里实现了其中一种去获取到相对应的openid的方法,可以发送到具体的用户)
'template_id':这个参数的意思是我的模板id,在微信公众号中可以申请相对应的模板,每个模板都有相对应的模板id。但是这个模板id一定是要申请过的!如果要使用我上面的模板id,则一定要申请过我使用的模板。
'data':这个参数是要跟上面我们申请好的template(模板)的具体要求来的。在微信公众号中,我们申请好了我们的模板之后,我们可以在我们申请的模板中去查看我们模板中需要传入的具体参数,在这里的例子中,我们可以看下面的截图

在第一块区域中,就是我们data需要传入的参数,在php中具体传入的写法在上面的代码中。其中first、keyword1、keyword2、remark是我们需要传入的参数,在这里可以设置我们的需要的文字和字的颜色。
- 好了上面就介绍完了所有的步骤,在这个例子中是最简单的一个例子,我们还可以实现点击跳转到小程序、跳转到网页等其他功能。具体怎么实现请看官方文档了。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PHP实现发送模板消息到微信公众号的更多相关文章
- PHP实现发送模板消息(微信公众号版)
以下为开发步骤: 1.微信公众号为服务号且开通微信认证(其他类型账号不能发送) 2.ip白名单设置你的服务器ip(用于获取access_token) 3.网页授权你的域名(用于获取用户的openid) ...
- python特定时间发送消息到微信公众号
#!/usr/bin/env python# -*- coding: utf-8 -*-# __author__ = 'James'# 导入模块from wxpy import *import tim ...
- 【C#版本】微信公众号模板消息对接(一)(图文详解)
特此说明:本篇文章为个人原创文章,创作不易,未经作者本人同意.许可等条件,不得以任何形式搬运.转载.抄袭(等包括但不限于此手段)本文章,否则保留追究有关侵权人责任的权利 一.认识微信公众号模板消息 什 ...
- 微信公众号发送客服消息提示errcode":45015,"errmsg":"response out of time limit or subscription is canceled hint:解决办法【已解决】
微信公众号发送客服消息提示errcode":45015,"errmsg":"response out of time limit or subscription ...
- tp6微信公众号开发者模式自定义菜单
1,参考上篇博客,获取access_token https://www.cnblogs.com/xiaoyantongxue/p/15803334.html 2:控制器写以下代码 /* * 获取普通a ...
- php之微信公众号发送模板消息参观模仿
上篇文章中鞋到了公众号发送末班消息,他是最后调用两个方法,本文章简化一下 将下面的php方法放到一个可以引入的公共类中即可 构建模板消息: 我把需要用到的模板消息 都写成一个个方法,放在公共类文件中了 ...
- php之微信公众号发送模板消息
讲一下开发项目中微信公众号发送模板消息的实现过程(我用的还是Thinkphp5.0). 先看一下效果,如图: 就是类似于这样的,下面讲一下实现过程: 第一步:微信公众号申请模板消息权限: 立即申请: ...
- JAVA微信公众号通过openid发送模板消息~
1,问题产生 在微信公众号开发过程中,我们有时候做不同权限的时候,比如在注册的时候,需要审核,然后我们要想办法让对方知道审核的结果.这时候我们可以通过模板消息来通知. 2,第一步,首先在微信公众号上获 ...
- 微信公众号发送消息模板(java)
这段时间接触公众号开发,写下向用户发送消息模板的接口调用 先上接口代码 public static JSONObject sendModelMessage(ServletContext context ...
随机推荐
- uva10976
数学题. 1. 因为 1/k = 1/x +1/y 所以 1/k > 1/y 那么 y > k 2 . 因为 x >= y 所以 1/k - 1/y <= 1/y 那么 y & ...
- Luogu P1747 好奇怪的游戏
题目背景 <爱与愁的故事第三弹·shopping>娱乐章. 调调口味来道水题. 题目描述 爱与愁大神坐在公交车上无聊,于是玩起了手机.一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被 ...
- 3_使用指针对象(Using Object Pointer)
类的成员函数有两种调用方式,一种是由对象调用,另一种是由对象指针调用.其中,对象调用的方式为objectName.memberFunctionName(parameters),而对象指针调用的方式为o ...
- Angularjs的真分页,服务端分页,后台分页的解决方案
背景:项目的框架使用的是Angularjs,在做数据展示的时候,使用的是ng-table.用过ng-table的人都知道,他是自带分页的,默认分页方式是假分页.也就是一口气把所有的数据从数据库里取出来 ...
- 重温.NET下Assembly的加载过程
最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后发现,并没能解决我的问题,有些点写的不是特别详 ...
- RTLinux编程总结
做过一个有关RTLinux的项目,时间一长,差不多忘光了,现在尽量把原来做过的东西总结一下,以备后用,同时正在做类似项目的一个借鉴平台主机:redhat 8.0目标机:PC104模块.ISA总线脉冲输 ...
- JAVA中线程同步方法
JAVA中线程同步方法 1 wait方法: 该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所 ...
- vxi总线
20世纪80年代后期,仪器制造商发现GPIB总线和VME总线产品无法再满足军用测控系统的需求了.在这种情况下,HP.Tekronix等五家国际著名的仪器公司成立了VXIbus联合体,并于1987年发布 ...
- Openstack_O版(otaka)部署_Nova部署
控制节点配置 1. 建库建用户 CREATE DATABASE nova_api; CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova_api.* T ...
- hdu2262 Where is the canteen
Where is the canteen Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...