x-weixin
开发者文档
开发测试准备
- /callback: 第三方平台相关信息推送
- /$APPID$/callback: 公众号相关信息推送
- 服务器ip需要加入白名单
- 测试公众号需要加入白名单
开发环境
技术栈
typescript
express
+mongoDB
- http请求:
request
- 文件上传:
multer
- 跨域通讯:
jsonwebtoken
- 日志:
morgan
+winston
+winston-daily-rotate-file
- 安全:
helmet
本地调试 - 方便debug
NatApp 映射服务器地址到本地
数据获取&存储
能使用微信获取存储,使用微信。不能使用则本地数据库
- 底层Promise化,方便调用时使用async/await
- mongoose
<any>mongoosePromise = globalPromise;
- request
request-promise-native
- 自己封装
; { };
日志
- console: debug级别
- file: info & error级别
合并并日期输出
- http: morgan
- other: winston
使用插件 winston-daily-rotate-file
// 详情见 /server/util/logger.tsapp;
typescript 相关说明
lib.d.ts
分离lib.ts
的interface到lib.d.ts
,然后在lib.ts
头部使用
/// <reference path="./lib.d.ts" />
- 自动添加"use strict";
// tsconfig.json
cross-env
:解决不同系统设置环境变量
cross-env NODE_ENV=dev CONFIG_DIR=./server/config PORT=12345 node ./bin/www"
server
1. 微信推送第三方平台相关信息
/callback
- 公众号授权信息
- 公众号更新授权信息
- 公众号取消授权信息
component_verify_ticket
2. 微信推送粉丝发给公众号相关信息
/$APPID$/callback
代替公众号接受用户发送的信息
- 关注,取消关注
- 消息
- ...
3. 用户ID加密解密
- session
- jwt
4. access_token过期处理
过期时间: 26060 = 7200
component_verify_ticket
==> component_access_token
authorizer_refresh_token
==> authorizer_access_token
-
定时器刷新
-
- 存储时,记录过期时间。获取时,判断是否过期。
-
- 存储时,使用Mongo过期索引,过期自动删除。获取时,判断是否存在。
5. API
详情见/doc
文件夹
6. 日志处理
client
暂时废弃
demo
[TODO] 样板
admin/login
[TODO] 登录后,授权公众号信息管理与统一
1. 微信图片防盗链应对方案
相关名词
- Authorization 授权
- Authorizer 授权方
- Component 第三方平台
素材类型
- text
- image
- voice
- video: 视频消息(包含描述和标题)
- mpvideo: 视频消息(video转换后, 仅有media_id)
- shortvideo
- news: 图文消息(原始内容,无media_id)
- mpnews: 图文消息(已经在素材库中,含media_id)
- location: 不是事件的location
- link
事件类型
- subscribe
- unsubscribe
- SCAN
- LOCATION
- CLICK
- VIEW