PHP实现微信公众平台开发—基础篇
PHP实现微信公众平台开发—基础篇 2
1课程介绍 2
2. 微信公众号账号介绍的申请流程详解 2
2.1微信三角色关系 2
2.2信息流的过程 2
2.4微信公众账号的认证 3
2.5订阅号的申请流程 3
3. 微信公众号的工作原理 3
3.1数据交互流程 3
3.2编辑模式和开发者模式的介绍 4
3.3编辑模式的简单演示 5
3.4接口介绍 5
4. 接入微信公众账号的API 5
1.验证配置介绍 5
2.验证参数介绍 5
3.填写验证配置 6
4.生成公网访问的脚本文件 6
5.验证代码的实现 6
6.提交验证接口 7
PHP实现微信公众平台开发—基础篇
1课程介绍
有个独立服务器 和 新浪SAE 课程安排
课程安排
基础篇 微信公众账号分类,数据交互原理,API接入
提升篇 常用普通接口 消息发送和接收,事件推送等
高级篇 常用高级接口: 网页授权,模板消息
实战篇 通过一个实战项目贯穿所有的知识点
2.微信公众号账号介绍的申请流程详解
2.1微信三角色关系
微信应用 微信APP
微信用户 普通用户
2.2信息流的过程
微信用户 通过 微信应用 获得 微信公众号
微信公众号 通过 微信应用 推送信息给 微信用户
2.3 服务号,订阅号,企业号
订阅号 个人和组织
服务号 政府机构 企业 组织和个人
企业号 企业
2.4微信公众账号的认证
对你的资质进行认证
2.5订阅号的申请流程
申请微信公众账号 mp.weixin.qq.com
公众平台验证 申请 公众号
订阅号的控制平台
3.微信公众号的工作原理
3.1数据交互流程
第一个数据交互场景
第二个数据交互场景 第三方服务器与微信服务器进行的交互
3.2编辑模式和开发者模式的介绍
编辑模式:微信提供给管理者可视话操作的界面,方便公众账号管理者进行简单的微信运行
3.3编辑模式的简单演示
例子 自动回复功能
开发者模式:通过调用微信的接口功能的实现
3.4接口介绍
1.基础接口内容介绍
事件推送-订阅公众账号
消息响应-发送普通消息,接收普通消息
基础接口—获取access _token (访问令牌),获取微信服务器地址
4.接入微信公众账号的API
1.验证配置介绍
填写服务器的url 和 token
Url 第三方服务器url 微信 只支持 80 端口 http 只能在 80端口打开
2.验证参数介绍
应用接入API接口步骤
验证服务器有效性,加密/效验流程如下
2.1将token,timestamp,nonce(令牌,时间戳,现时标志)三个参数进行字典序排序
2.2将三个参数字符串拼接成一个字符串进行shal加密
2.3开发者获得加密后的字符串可与sigunture 署名;签名;信号,标识该请求来源于微信
3.填写验证配置
URL 必须是公网可以访问的域名
4.生成公网访问的脚本文件
<?php
echo "zhoujianqi";
?>
5.验证代码的实现
2.1将tokne,timestamp,nonce(令牌,时间戳,现时标志)三个参数进行字典序排序
2.2将三个参数字符串拼接成一个字符串进行sha1加密
2.3开发者获得加密后的字符串可与sigunture 署名;签名;信号,标识该请求来源于微信
<?php
//获得参数 signature nonce token timestamp echostr
$nonce = $_GET['nonce'];
$token = 'imooc';
$timestamp = $_GET['timestamp'];
$echostr = $_GET['echostr'];
$signature = $_GET['signature'];
//形成数组,然后按字典序排序
$array = array();
$array = array($nonce, $timestamp, $token);
sort($array);
//拼接成字符串,sha1加密 ,然后与signature进行校验
$str = sha1( implode( $array ) );
if( $str == $signature && $echostr ){
//第一次接入weixin api接口的时候
echo $echostr;
exit;
}
6.提交验证接口
其中token 代码中没写对
PHP实现微信公众平台开发—基础篇的更多相关文章
- 微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发
本文主要讲解如何使用 weinxinFundation 进行二次开发. 步骤如下: 1.创建新的web项目. 在eclipse里新建一个dynamicly web project,比如本文叫weixi ...
- [转]抢先Mark!微信公众平台开发进阶篇资源集锦
FROM : http://www.csdn.net/article/2014-08-01/2820986 由CSDN和<程序员>杂志联合主办的 2014年微信开发者大会 将于8月23日在 ...
- PHP实现微信公众平台开发 全套视频资源下载
好久没有在博客园更新东西了,今天给大家分享一份比较不错的视频学习资源吧. 主要是关于PHP实现微信公众平台开发, 不知道大家对于微信平台的开发有多少了解,那么今天就从基础开始吧,资源目录如下(PS ...
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备
相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结.所以下面给大家分享一下我的经验: 微信公众号是什么? 官网的介绍:再小的个 ...
- 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容
第一部分:微信JS-SDK介绍 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...
- 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...
- 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...
随机推荐
- TCP和UDP数据包大小限制
1.概述 首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层. 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Da ...
- Oracle OCM提纲
ocm提纲 数据库创建详解 ◆ 通过手动方式创建数据库 环境变量的设置 密码文件的创建过程以及使用情景 Oracle数据库中参数文件的演进过程 参数文件的对比 参数的修改方式介绍 数据库启动过程时的内 ...
- mjpg-streamer移植
本文的copyright归yuweixian4230@163.com 所有,使用GPL发布,可以自由拷贝,转载.但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途. 作者:yuweix ...
- java 多线程系列---JUC原子类(二)之AtomicLong原子类
概要 AtomicInteger, AtomicLong和AtomicBoolean这3个基本类型的原子类的原理和用法相似.本章以AtomicLong对基本类型的原子类进行介绍. AtomicLong ...
- 杀死tomcat进程
由于tomcat运行时eclipse非法关闭,导致tomcat进程没有关闭,再次启动eclipse,启动tomcat会报tomcat不能启动,且指出端口被占用.笔者解决方案如下: 方案一:重启电脑,简 ...
- Tomcat 不能正常启动
启动过程提示: Stopping ProtocolHandler ["http-bio-8080"] the JRE_HOME environment variable is no ...
- easyui中 combogrid控件的loadData方法加载本地数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 根据/proc/meminfo对空闲内存进行占用
#include <stdio.h> #include <sys/sysinfo.h> #include <linux/kernel.h> /* 包含sysinfo ...
- transient关键字的理解
谈到这个transient这个关键字,我们应该会立马想到序列化这个过程:什么是序列化?什么又是反序列化呢?序列化就是将对象转化内成二进制,而反序列化就是就二进制文件转换成对象的过程.一旦变量使用了tr ...
- intellij idea 在执行maven的操作 install等会出现中文乱码?其他程序打印正常?
之前一直碰到过这个问题,也没在意,因为那个中文对我来说用处不大,今天看着务必难受,一定把他给解决了,查了一下,找到了解决方法,如下: 首先打开你的设置. Setting->maven->r ...