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 ...
随机推荐
- windows转mac-开发环境搭建(二):mac上java环境搭建
1.首先下载jdk,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.安 ...
- qt Multimedia 模块类如何使用?
qt 多媒体模块介绍 类名 英文描述 中文描述 QAudioBuffer Represents a collection of audio samples with a specific format ...
- php 变量原理讲解
php 变量原理讲解 一.变量概念 所谓变量,是指在程序中其值可以变化的量. 程序是管理和处理数据的.在程序运行过程中,我们需要存贮这些数据,变量和常量就是用于保存程序运行时的数据的. 变量通常由 ...
- Android View绘制回调方法流程
Android中View的性命周期,挪用 invalidate() 战 requestLayout() 会触收哪些方式,一张图就可以讲解的很详细. 该图确切一看便特别很是清楚.让人简略的懂得View的 ...
- dedecms 使用自由列表实现首页列表分页
- vector 遍历
vector向量容器,是数组的一个泛化推广.实现了类似于数据结构中顺序表的操作. vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象).vector对象可以在运行时高效地添加元素 ...
- 错误代码: 1052 Column 'stu_id' in field list is ambiguous
1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:select stu_id, (SELECT stu_name FROM t ...
- Caused by: java.sql.SQLException: Operand should contain 1 column(s)
1.错误描述 [ERROR:]2015-05-05 15:48:55,847 [异常拦截] org.hibernate.exception.DataException: error executing ...
- 如何利用JavaScript遍历JSON数组
1.设计源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- org.apache.jasper.JasperException: /pages/column.jsp (line: 8, column: 1) File "pathTags.jsp" not f
1.错误描述 21-Mar-2015 00:57:40.934 INFO [localhost-startStop-2] org.apache.catalina.core.ApplicationCon ...