微信和公众号 #

类型 微信 公众号
社交圈 认识的人 包括陌生人
定位 聊天和娱乐 商业用途、个人品牌推广、企业品牌宣传
使用方式 手机端 PC端
关注方式 相互关注 只能被用户关注

公众号类型 #

类型 企业号 服务号 订阅号
面向人群 面向企业、政府、事业单位和非政府组织,实现生产管理、协作运营的移动化 面向企业、政府或组织,用以对用户进行服务 面向媒体和个人提供一种信息传播方式
消息显示方式 好友会话列表首层 好友会话列表首层 折叠在订阅号目录中
消息次数限制 最高每分钟可群发200条 没月主动发消息不超过4条 每天群发一条
验证关注身份 通讯录成员可关注 任何用户扫码即可关注 任何用户扫码即可关注
消息保密 消息可转发、分享。支持保密消息防转发 消息可转发、分享 消息可转发、分享
高级接口 支持 支持 不支持
定制应用 可以根据需要定制 不支持 不支持

申请公众号码 #

https://mp.weixin.qq.com

填写基本信息->邮箱激活->选择类型->信息登记->公众号消息

编辑模式介绍 #

开发模式 #

数据交互原理 #

  1. 用户把请求发送给微信服务器
  2. 微信服务器解析微信公众号的服务器,并把请求转发给公众号服务器
  3. 公众号服务器处理请求得到结果并返回给微信后台,微信后台再发给微信客户端

接入文档 #

https://mp.weixin.qq.com/wiki

测试账号申请 #

申请地址

如何接入 #

1、填写服务器配置 2、验证服务器地址的有效性 3、依据接口文档实现业务逻辑

开发环境准备 #

  1. 一个微信公众号(个人申请订阅号)
  2. 开发调试用的外网映射工具
  3. 与微信对接的URL地址要具备如下条件
    1. 能在公网上进行访问
    2. 端口只支持80

创建公众号服务器 #

let express = require('express');
let {appID,appsecret,Token} = require('./config');
let crypto = require('crypto');
let app = express();
app.get('/', function (req, res) {
  let {signature, timestamp, nonce, echostr} = req.query;
  let str = [Token,timestamp, nonce].sort().join('');
  str =  crypto.createHash('sha1').update(str).digest('hex');
  if(signature == str){
    res.send(echostr);
  }else{
    res.send('wrong');
  }
});
app.listen(8080)

代码

映射工具 #

ngrok可以将内网服务映射到公网上面,这样就可以在公网访问你的本地网络服务

  1. 下载下载地址
  2. 启动本地的HTTP服务
  3. 进行映射
    ngrok http 8080
    
  4. 接口配置信息

接口配置信息

使用JSSDK #

代码

使用微信开发者工具 #

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140&token=&lang=zh_CN