PHP实现微信公众平台开发---基础篇
一、准备工作
i. 有一定的PHP+mysql基础(前提)
ii. 要有独立的服务器或者空间(必须)
二、微信公众账号介绍和申请流程
i. 微信公众帐号---自媒体角色
ii. 微信应用 ---平台
iii. 微信用户--普通用户
iv. 关系
1. 微信应用给 微信公众帐号 微信用户提供信息交互 获取资讯的平台
2. 微信用户通过 微信应用这个平台 订阅自己感兴趣的公众账号获取相关资讯
3. 公众号通过 应用平台推送信息给微信用户
v. 认证与否的区别:api功能的调用
三、接入API
i. 启用开发者模式
ii. 基本配置
URL:自己的服务器 接受微信服务器发过来的请求
Token:微信服务器与自己的服务器交互的口令 验证第三方服务器身份的合法性
微信只支持80端口
iii. 验证服务器地址的有效性 加密/校验流程
1. 参考开发者工具->开发者文档->开始开发->接入指南
<?php /* 微信公众平台 基本配置需要自己的服务器验证消息是否来自于微信服务器 微信服务器将发送GET请求到填写的服务器地址URL上, GET请求携带参数如下表所示:
参数 描述 signature 微信加密签名, signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 timestamp 时间戳 nonce 随机数 echostr 随机字符串
开发者通过检验signature对请求进行校验(下面有校验方式)。 若确认此次GET请求来自微信服务器,请原样返回echostr参数内容, 则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:
1)将token、timestamp、nonce三个参数进行字典序排序 2)将三个参数字符串拼接成一个字符串进行sha1加密 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 */ $signature = $_GET['signature'] ; $timestamp = $_GET['timestamp'] ; $nonce = $_GET['nonce'] ; $echostr = $_GET['echostr'] ;
//基本配置里面填写的token $token = 'dongling13' ; //排序 $arr = array($token,$timestamp,$nonce) ; sort($arr) ; //拼串 sha1加密 返回串 $str = implode($arr); $str = sha1($str) ; //与signature比较 相同则返回echostr if($str == $signature) { echo $echostr ; }
|
iv. 提交即可 若是报错token验证失败 确保服务器代码没问题 可多提交几次