企业号
是为企业或组织提供移动应用入口,帮助企业建立与员工、上下游供应链及企业应用间的连接。
服务号
企业和组织,提供更强大的业务服务与用户管理能力。比如支付,智能接口
订阅号
比较适合于个人,小团队,主要是用于信息传播,帮助管理用户以及和用户互动。比如撰写文章,咨询传播,消息定制等
订阅号和服务号区别
1.出现位置不同
2.单月发送消息数量不同,订阅号可以一天1篇,服务号一个月最多4篇
3.订阅号没有 9 大接口和支付功能
服务号 9 大接口:
1.语音识别:就是能识别你说的话,并翻译成文本内容
2.客服接口:就是公众号可以在你发送过消息的24小时内,向你回复消息
3.OAuth 2.0 网页授权:可以通过这个授权接口,请求用户授权,从而拿到更多的用户的信息
4.生成带参数二维码:公众号可以获得一系列携带不同参数的二维码,在用户扫描关注公众号后,公众号可以根据参数分析各二维码的效果,这些参数可以自己定制,从而可以实现更多分析结果,比如用户从哪来的
5.获取用户地理位置:公众号能够获得用户进入公众号会话时的地理位置。可以做微信导航
6.获取用户基本信息:公众号可以根据加密后的用户OpenID,通过一系列的参数交互,最终拿到用户基础信息,包括头像,名称,性别、地区。
7.获取关注者列表:通过这个接口,可以拿到所有关注者的OpenID,就知道有多少人关注你,是谁在关注你
8.用户分组接口:通过分组接口,可以在后台为用户移动,创建、修改分组,比如把你们班级你们图队分成,男生一组,女生一组
9.上传下载多媒体文件:通过这个接口,公众号可以在需要时在微信服务器上传下载多媒体文件
外网访问你的本机
1.ngrok
ngrok http 3000
2.npm i -g localtunnel
lt --port 3000
3.PageKite
4.花生壳
验证公众号
验证流程1.将tokoen、timestamp、nonce三个参数进行字典序排序
2.将三个参数字符串拼接成一个字符串进行 sha1 加密
3.将加密后的字符串与 signature 对比,如果相同,表示这个请求来源于微信,我们直接原样返回 echostr 参数内容,接入验证就成功了
var Koa = require('Koa')
var sha1 = require('sha1')
var config = {
wechat: {
appID: 'appid',
appSecret: 'appSecret',
token: 'token'
}
}
var app = new Koa()
app.use(function* next() {
var token = config.wechat.token
var signature = this.query.signature
var nonce = this.query.nonce
var timestamp = this.query.timestamp
var echostr = this.query.echostr
var str = [token, timestamp, nonce].sort().join('')
var sha = sha1(str)
if (sha === signature) {
this.body = echostr + ''
} else {
this.body = 'wrong'
}
})
app.listen(3000)
console.log('listen 3000')
注意事项
1.微信公众号接口只支持 80 端口
2.微信后台配置的 URL 是唯一能接收到消息,事件的入口,我们在公众号中的所有操作,都是基于这个 url 进行交互
3.调用所有微信接口时几乎全部使用 https 协议
4.用户向公众号发送消息时,回传过来 OpenID, 这个 OpenID 是用户微信号加密后的值,每个用户在每个公众号中 OpenID 是唯一的
5.在开发阶段,要留意报错信息,比如全局返回码,这个非常重要,开发出了问题最终依然是要靠自己动手解决,比如 40003 是开发中经常碰到的错误。
6.我们在和微信服务器交互的时候,需要满足各个接口的规范限制、调用频率限制,也要特别注意模板消息、用户数据等敏感信息的使用规范。比如微信认证分为资质认证和名称认证两部分,只需要资质认证通过,就可获得接口每一个接口的调用次数是有上限的
access_token
1.access_token 每2个小时自动失效,需要重新获取。
2.只要更新了 access_token,之前的那个就不能用了。
解决方案:
1.让我们的系统每隔 2 个小时启动去刷新一个票据,这样无论何时我们内部调用接口,这个票据都是最新的
2.为了方便频繁调用,我们需要把票据存储在一个地方,并且是唯一的一个地方
五个步骤:
1.处理 POST 类型的控制逻辑,接收这个 XML 数据包
2.解析这个数据包(获得数据包的消息类型或者事件类型)
3.拼装我们定义好的消息
4.包装成 XML 的格式
5.在5秒钟内返回回去
网友评论