1. 微信服务号开发笔记

    原理

    微信服务号的原理比较简单。从请求响应角度来看,逻辑是:

    用户微信客户端 <---> 微信服务器 <---> 微信服务号后台程序 <---> 数据库或Web Service

    也就是,用户的各种请求先经过微信的服务器,微信服务器将请求转发给微信服务号后台程序。

    既然是微信服务器把用户请求数据转发给我们开发的微信服务号后台程序,那么在启用服务号的开发模式时就需要提供一个URL。另外为了安全 考虑,还需要提供一个token,用来校验请求是否来自微信服务器。校验的方法见微信开发者文档。校验又分两种:

    在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。

    此后,每次开发者接收用户消息的时候,微信也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。

    微信服务器转发到微信服务号后台程序的消息以及服务号后台程序返回给微信服务器的响应,都是XML格式,消息中都会指明发送者和接收者。 请求消息中的发送者为微信用户的openid,接收者为服务号开发者微信号,响应消息则相反。

    消息中还有一个关键字段MsgType指明消息类型。微信将请求消息分为:普通消息 …

    Tagged as : 微信 PHP 笔记
  2. 学在腾讯:简而美的微信后台架构

    注:公司分享讲座的一点笔记,不保证准确性。

    问题

    极致的业务特性

    • 流畅的消息收发
    • 及时的通知
    • 省电
    • 省流量
    • 瘦客户端

    困难的后台-终端同步

    • 同步多样数据:账户信息、通讯录、消息、朋友圈等
    • 及时通知与同步
    • 移动网络下的可靠同步
    • 省流量与电量

    方案

    极简的同步协议

    • 后台与终端只需要沟通一个数字,后台即可知道终端缺失的所有数据。
    • 变更序列号/版本号:
      • 后台对用户数据的每项变更,都赋予一个单调递增的序列号,即用户的每项数据都有一个全局递增序列号。
      • 后台每次给终端发送数据都会带上所发送的所有数据的最大序列号。
      • 终端每次请求数据时都会带上已经接受到的最大序列号。

    高效的通知机制

    • ios Apple Push Network Service
    • Android等-长连接
    • GPRS/EDGE信令风暴优化
    • 自适应心跳间隔调节

    三层后台架构

    Arch of weixin backend

    统一的RPC框架

    • 根据ProtocolBuffer定义生成服务器框架和客户端
      • 服务器:开发人员填充接口实现
      • 客户端: 应用方本地调用客户端提供的接口函数
    • 屏蔽网络细节
      • 支持基于TCP/UDP的网络调用 …
    Tagged as : 腾讯 微信 架构

Page 1 / 1