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.生成公网访问的脚本文件

http://119.23.8.86/imooc.php

<?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实现微信公众平台开发—基础篇的更多相关文章

  1. 微信公众平台开发 - 动手篇。使用weinxinFundation开始一个微信公众平台的开发

    本文主要讲解如何使用 weinxinFundation 进行二次开发. 步骤如下: 1.创建新的web项目. 在eclipse里新建一个dynamicly web project,比如本文叫weixi ...

  2. [转]抢先Mark!微信公众平台开发进阶篇资源集锦

    FROM : http://www.csdn.net/article/2014-08-01/2820986 由CSDN和<程序员>杂志联合主办的 2014年微信开发者大会 将于8月23日在 ...

  3. PHP实现微信公众平台开发 全套视频资源下载

    好久没有在博客园更新东西了,今天给大家分享一份比较不错的视频学习资源吧. 主要是关于PHP实现微信公众平台开发,  不知道大家对于微信平台的开发有多少了解,那么今天就从基础开始吧,资源目录如下(PS ...

  4. 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备

    相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结.所以下面给大家分享一下我的经验: 微信公众号是什么? 官网的介绍:再小的个 ...

  5. 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容

    第一部分:微信JS-SDK介绍 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...

  6. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  7. 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...

  8. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

  9. 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token

    一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...

随机推荐

  1. Linux驱动 - 多线程之 完成量

    Linux 系统提供了一种比信号量更好的同步机制,即完成量(completion ,它用于一个执行单元等待另一个执行单元执行完某事. Linux 系统中与 completion 相关的操作主要有以下 ...

  2. java流类练习前篇

    总结: package com.aini; import java.io.*; public class gf { public static String main(String[] args) t ...

  3. pos机的热敏纸尺寸

    57x50或者是57x30,两个型号宽度都是一样的,只是厚度不一样,前者是厚一点,适合固定机用,后者适合移动POS机用 厚度不是指纸的厚度,而是纸的容量,移动机的纸槽较小只能用57X30的

  4. SignalR推送服务在Android的实现 SignalA

    SignalA是老外写的用于实现.net端推送消息至安卓端的实现,支持版本为android 2.3或以上,由于我的版本最低是2.2,所以只有把源码下下来自己改,如果你觉得太多了可自己编译成jar引用, ...

  5. Windows条件变量

    详细见MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686903%28v=vs.85%29.aspx 我们已经看到,当想 ...

  6. mysql索引最左匹配原则的理解

    CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `ci ...

  7. web.config中namespace的配置(针对页面中引用)

    1,在页面中使用强类型时: @model GZUAboutModel @using Nop.Admin.Models//命名空间(注意以下) 2,可以将命名空间提到web.config配置文件中去,此 ...

  8. elasticsearch 概念与架构(3)

    转自:https://devops.taobao.com/ Node(节点):单个的装有Elasticsearch服务并且提供故障转移和扩展的服务器. Cluster(集群):一个集群就是由一个或多个 ...

  9. mysql in 方法查询 按照 in队列里的顺序排序

    String sql ' GROUP BY comm " + "order by field(comm,?,?,?,?,?,?,?,?)"; stmt = conn.pr ...

  10. 自定义Android Studio方法注释模板

    前言 你们从Eclipse转到Android Studio的时候,是不是会怀念Eclipse的方法注释模版? 敲/**加回车,模板就出来了,而Android Studio却不能自定义(或者我没有找到) ...