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

微信开发文档笔记整理(一)相关推荐

  1. 企业微信开发文档接口API获取accesstoken和读取成员内部员工

    企业微信开发文档接口API获取accesstoken和读取成员内部员工 <?php /*** 企业微信 API*/ namespace app\common;use think\Config; ...

  2. 【微信小程序】微信开发文档摘要

    此篇文章用于微信小程序的开发文档摘要,主要记录概念性的,或者说理解性的东西,对于那些硬性代码,反而不做太多汇总. 一.微信小程序简介 小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取 ...

  3. 支付宝和微信开发文档

    支付宝  https://openhome.alipay.com/developmentDocument.htm 微信  https://pay.weixin.qq.com/index.php/cor ...

  4. 树莓派开发文档笔记—基础配置

    1.树莓派刷机 2.树莓派登陆 2.1 HDMI 视频线 连接到显示器 2.2 串口 2.2.1设备破解                         默认情况,树莓派的串口和蓝牙连接.       ...

  5. WXML---微信开发文档

    WXML WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 用以下一些简单的例子来看看 WXML 具有什么能力: 数据绑 ...

  6. 知乎爆赞!4504页《微信小程序零基础入门开发文档》+《小程序实战笔记》,你学废了吗?

    前言 微信小程序作为近几年"微服务"的杰出代表,应用十分广泛.小程序是一种新的开放能力,开发者可以快速地开发一个小程序.小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验 ...

  7. 软件开发文档整理(之)一张示意图 | 清晰明了

      在整个软件开发周期,开发文档是必不可少的资料,它们贯穿于整个开发周期,用来评估计划.规划进度.项目管理.软件测试.软件发布,可以说至关重要.   开发文档必须归档,没有归档的文档作用大打折扣,时效 ...

  8. 微信小程序 开发文档

    官方开发文档: 小程序公众平台 小程序开发者指南 小程序开发者文档 学习资源: 微信:官方入门教程 微信:WeUI 是一套同微信原生视觉体验一致的基础样式库 微信:微信小程序示例 视频: 学堂在线:学 ...

  9. 扒一扒坑人的“微信支付”SDK开发文档

    在开发微信支付的的时候,想必大家也遇到了这个坑人的事件,大家不要抱怨,腾讯的文档是除了名的坑人开发文档,今天闲来扒一下"微信支付"的文档,后面我再给大家扒一下"现金红包& ...

最新文章

  1. golang中base64编码_Go语言教程:Base64编码
  2. ORA-01722: invalid number
  3. 算法--微软面试:指定数字在数组中出现的次数
  4. ocp 043 第十三章:管理资源
  5. for循环批量写文件 shell_shell脚本:for循环批量重命名带空格文件名的文件
  6. [网站seo优化] 史上最全增加外链的方法!
  7. 骨牌覆盖(51Nod-1031)
  8. asp 退出登录修改cookie能进入后台_Vue3.0 - Composition API 体验版开发后台管理系统...
  9. relative定位下要使用top、left,而不是margin-top、margin-left
  10. linux syn发包工具,发包工具 TRex stateless 使用笔记
  11. mysql 存微信表情_MySQL保存 emoji 表情(微信昵称表情)
  12. 计算机 程序安装管理,电脑安装软件时提示:系统管理员设置了系统策略,禁止进行此安装...
  13. kindle刷机安卓版_亚马逊 kindle 刷机 过程记录
  14. 意外把移动硬盘标记为活动分区怎么办?
  15. 移动硬盘内容变成快捷方式处理
  16. VMware安装macOS High Sierra 10.13苹果系统并设置共享文件夹详细教程(图文)
  17. 港星变身“单亲美妈” 陈松伶:中年女演员的舞台不应设限
  18. mysql异地双活架构,银行跨数据中心数据库双活架构设计:五大难点攻克
  19. layui 卡片式列表_当卡片式UI不再流行,列表式UI将是王牌
  20. python图像处理:PIL与Pillow区别

热门文章

  1. Spring Boot 打包不同环境配置与 Shell 脚本部署
  2. 基于OpenCV的图像分割处理!
  3. KDD Cup 2020 多模态检索赛道:数据分析
  4. 从零到熟练编写LaTex数学公式,这两篇就够了
  5. 中科院院士「修正」了麦克斯韦方程?研究发材料期刊,两度热搜,两极评价...
  6. 苹果让Transformer抛弃注意力机制,一切只为效率,项目已开源丨华人一作
  7. 10月1日之后,你新建的GitHub库默认分支不叫「master」了
  8. CVPR 2020 | 利用强化学习进行交互式3D医学图像分割
  9. Python 核心设计理念27个问题及解答
  10. 拒绝加班,办公电脑换新低至¥1999