微信公众号开发
2020-09-15 10:03:45 0 举报
AI智能生成
服务端开发
作者其他创作
大纲/内容
服务端微信公众号开发
开发环境搭建
注册微信订阅号
注册小程序测试号
复制Koa+Vue的种子项目
安装sunny-ngrok实现外网的映射
开发流程
申请账号
服务器配置
配置项
AppID
应用ID,也就是微信开发者编号的意思,在微信中主要用于创建微信菜单等
AppSecret
应用密匙,与AppID是相配合的,意思可理解为这是私密的应用编号
URL(服务器地址)
URL服务器地址是微信服务器像开发者服务器推送消息和事件的地址,可理解为你家的住址
Token(令牌)
Token令牌可理解为用来验证安全接头暗号,让微信服务器知道对方就是我要找的人
EncodingAESKey(消息加解密秘钥)
EncodingAESKey可理解为暗语加密交流,以免你与用户之间的交互信息被第三方获取到后泄露敏感数据
基本原理
微信服务器就相当于一个转发服务器,终端(手机、Pad等)发起请求至微信服务器,然后微信服务器将请求转发给自定义服务(也就是开发者服务器,url对应的服务器)
服务处理完毕,然后回发给微信服务器,微信服务器再将具体响应回复到终端
通信协议为:HTTP
数据格式为:XML
注意
一旦开启了服务器配置,微信平台自带的自动回复、自定义菜单等功能全部失效,所有的事件推送都会被转发到你所配置的服务器地址URL上
业务流程
请求接口层。处理HTTP请求,及响应
分发层。由接口层传入请求,然后具体分析请求类型,分发至不同的处理器
业务逻辑层。这里是我们的具体业务逻辑了,根据请求,实现具体的业务逻辑
数据层。我们在实现某个应用时可能需要访问数据,可以是数据库或者是文件。如果是简单应用,可能没有这一层。其实,具体的应用可以在这个结构上去扩展,可以扩展消息对象层、业务对象层、数据访问层、功能管理层等。这里只是提供一种思路,不局限于此
实现步骤
一、接收HTTP请求
二、分发请求
验证签名
如果是首次请求,需要验证签名。就相当于一次HTTP握手。之前在上一章中,设置的服务器URL以及token值,这个功能就是检验是否链接成功
将token、timestamp、nonce三个参数进行字典序排序
将三个参数字符串拼接成一个字符串进行SHA1加密
开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
三、消息处理器
当普通微信用户向公众账号发消息时,微信服务器将POST该消息到填写的URL上
消息类型
文本消息
图片消息
地理位置消息
链接消息
事件推送
四、消息回复
对于每一个POST请求,开发者在响应包中返回特定xml结构,对该消息进行响应(现支持回复文本、图文、语音、视频、音乐)
微信服务器在五秒内收不到响应会断掉连接
回复文本消息
回复图片消息
回复地理位置消息
。。。
0 条评论
回复 删除
下一页