美文网首页
微信公众号开发

微信公众号开发

作者: shadow123 | 来源:发表于2019-11-10 19:20 被阅读0次

    企业号
    是为企业或组织提供移动应用入口,帮助企业建立与员工、上下游供应链及企业应用间的连接。

    服务号
    企业和组织,提供更强大的业务服务与用户管理能力。比如支付,智能接口

    订阅号
    比较适合于个人,小团队,主要是用于信息传播,帮助管理用户以及和用户互动。比如撰写文章,咨询传播,消息定制等

    订阅号和服务号区别

    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秒钟内返回回去

    相关文章

      网友评论

          本文标题:微信公众号开发

          本文链接:https://www.haomeiwen.com/subject/uxiabctx.html