微信开发文档笔记整理(一)
2019独角兽企业重金招聘Python工程师标准>>>
1.微信的服务器配置说明:(用户发给公众号的消息以及开发者需要的事件推送,将被微信转发到该URL)验证算法如下:
微信服务器会对填写的服务器页面里的URL附带四个参数,服务器指定URL在获取到了三个参数后,若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。下面是示例验证成功代码:
function checkSignature()
{
$signature = $_GET ["signature"];
$timestamp = $_GET ["timestamp"];
$nonce = $_GET ["nonce"];
$tmpArr = array (
'weiphp',
$timestamp,
$nonce
);
sort ( $tmpArr, SORT_STRING );
$tmpStr = sha1 ( implode ( $tmpArr ) );
if ($tmpStr == $signature) {
echo $_GET ["echostr"];
}
}
PS:这是一种通讯加密机制,大部分接口都有一套自己的加密机制(这里是将token、timestamp、nonce三个参数进行字典序排序,然后 将三个参数字符串拼接成一个字符串进行sha1加密)验证成功后,接入生效
2.业务逻辑原理:
服务器被验证成功后:此后用户每次向公众号发送消息、或者产生自定义菜单点击事件时(用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID),开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件(这意味着当公众号很多的时候,用户的每次操作都是会对服务器产生一次压力的,会随着用户的增多对服务器造成巨大的压力)。
3.token的获取(将微信的appid和appsecret填入就可以获取到一个token,这个token本质是一种身份校验,每个公众平台在特定时间内唯一的身份识别标识码,一般在获取后,需要保存一份在服务器上,然后就可以一直进行调用,频繁刷新微信服务器会限制,同时可能造成冲突,token的有效时间是2个小时,所以需要封装一个专门的获取token的方法,检测到调用失败后,刷新token)
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
一般token的刷新思路:当请求出现token错误码40001的时候,自动去请求一份新的token进行储存,否则读取缓存里面的token(缓存可以用文件,也可以用Redis之类的nosql)
转载于:https://my.oschina.net/xiongyuanliang/blog/607882
微信开发文档笔记整理(一)相关推荐
- 企业微信开发文档接口API获取accesstoken和读取成员内部员工
企业微信开发文档接口API获取accesstoken和读取成员内部员工 <?php /*** 企业微信 API*/ namespace app\common;use think\Config; ...
- 【微信小程序】微信开发文档摘要
此篇文章用于微信小程序的开发文档摘要,主要记录概念性的,或者说理解性的东西,对于那些硬性代码,反而不做太多汇总. 一.微信小程序简介 小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取 ...
- 支付宝和微信开发文档
支付宝 https://openhome.alipay.com/developmentDocument.htm 微信 https://pay.weixin.qq.com/index.php/cor ...
- 树莓派开发文档笔记—基础配置
1.树莓派刷机 2.树莓派登陆 2.1 HDMI 视频线 连接到显示器 2.2 串口 2.2.1设备破解 默认情况,树莓派的串口和蓝牙连接. ...
- WXML---微信开发文档
WXML WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 用以下一些简单的例子来看看 WXML 具有什么能力: 数据绑 ...
- 知乎爆赞!4504页《微信小程序零基础入门开发文档》+《小程序实战笔记》,你学废了吗?
前言 微信小程序作为近几年"微服务"的杰出代表,应用十分广泛.小程序是一种新的开放能力,开发者可以快速地开发一个小程序.小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验 ...
- 软件开发文档整理(之)一张示意图 | 清晰明了
在整个软件开发周期,开发文档是必不可少的资料,它们贯穿于整个开发周期,用来评估计划.规划进度.项目管理.软件测试.软件发布,可以说至关重要. 开发文档必须归档,没有归档的文档作用大打折扣,时效 ...
- 微信小程序 开发文档
官方开发文档: 小程序公众平台 小程序开发者指南 小程序开发者文档 学习资源: 微信:官方入门教程 微信:WeUI 是一套同微信原生视觉体验一致的基础样式库 微信:微信小程序示例 视频: 学堂在线:学 ...
- 扒一扒坑人的“微信支付”SDK开发文档
在开发微信支付的的时候,想必大家也遇到了这个坑人的事件,大家不要抱怨,腾讯的文档是除了名的坑人开发文档,今天闲来扒一下"微信支付"的文档,后面我再给大家扒一下"现金红包& ...
最新文章
- golang中base64编码_Go语言教程:Base64编码
- ORA-01722: invalid number
- 算法--微软面试:指定数字在数组中出现的次数
- ocp 043 第十三章:管理资源
- for循环批量写文件 shell_shell脚本:for循环批量重命名带空格文件名的文件
- [网站seo优化] 史上最全增加外链的方法!
- 骨牌覆盖(51Nod-1031)
- asp 退出登录修改cookie能进入后台_Vue3.0 - Composition API 体验版开发后台管理系统...
- relative定位下要使用top、left,而不是margin-top、margin-left
- linux syn发包工具,发包工具 TRex stateless 使用笔记
- mysql 存微信表情_MySQL保存 emoji 表情(微信昵称表情)
- 计算机 程序安装管理,电脑安装软件时提示:系统管理员设置了系统策略,禁止进行此安装...
- kindle刷机安卓版_亚马逊 kindle 刷机 过程记录
- 意外把移动硬盘标记为活动分区怎么办?
- 移动硬盘内容变成快捷方式处理
- VMware安装macOS High Sierra 10.13苹果系统并设置共享文件夹详细教程(图文)
- 港星变身“单亲美妈” 陈松伶:中年女演员的舞台不应设限
- mysql异地双活架构,银行跨数据中心数据库双活架构设计:五大难点攻克
- layui 卡片式列表_当卡片式UI不再流行,列表式UI将是王牌
- python图像处理:PIL与Pillow区别
热门文章
- Spring Boot 打包不同环境配置与 Shell 脚本部署
- 基于OpenCV的图像分割处理!
- KDD Cup 2020 多模态检索赛道:数据分析
- 从零到熟练编写LaTex数学公式,这两篇就够了
- 中科院院士「修正」了麦克斯韦方程?研究发材料期刊,两度热搜,两极评价...
- 苹果让Transformer抛弃注意力机制,一切只为效率,项目已开源丨华人一作
- 10月1日之后,你新建的GitHub库默认分支不叫「master」了
- CVPR 2020 | 利用强化学习进行交互式3D医学图像分割
- Python 核心设计理念27个问题及解答
- 拒绝加班,办公电脑换新低至¥1999