zoukankan      html  css  js  c++  java
  • node.js 微信开发1-接入

    准备工作1 域名准备

      无论是个人开发还是做公司项目域名都是必不可少的

      前期我个人用过花生壳做个开发测试,挺好用的,就是现在要收费了,开通花生壳要收费,开通内网穿透要收费(为啥要内网穿透呢,因为微信接入的接口必须使用80端口,而如果 要想让自己pc的80端口对外映射就要做这个内网穿透)

      开发公司项目的需要提前准备好服务器和域名(为啥提前申请呢,域名备案也是个有点麻烦的事情,需要各种公司法人证件,顺利的话办理周期1-2周)

    准备工作2 公众号申请和配置

      公众号分三种:订阅号(每天发文章)、服务号(功能更丰富)、企业号(俺也没用过)

      公众号申请也是需要公司各种材料,并且申请完了需要认证才可以做自定义开发,然后认证费300大洋

      当然个人做测试的话,只需要去申请一个测试号就行了,基本的开发功能也都有,so easy

      然后是配置

      进入微信公众平台,选择 开发-基本配置

      开发者ID、开发者密码:系统给自动分配的,尤其是开发者密码需要自己保存(否则就要进行重置)

      IP白名单:没有加入IP白名单的IP地址是无法调用微信的接口获取access_token的,所以你的微信公众号接口部署在哪里,就要把那台电脑的ip地址加入到IP白名单

      服务器地址:就是你的域名+接口名:如 http://mydomain.com/wechat/index

      令牌(token):记住就行,第一步做公众号接入的时候就要用这个token

      消息加解密密匙:如果消息加解密方式为‘明文模式’可以不去记,‘加密方式’就需要在接入接口中配置

      稍后等接入接口写完并且部署到服务器上了,就是在这里验证接口是否是通的

    node.js 微信接入代码参考

    公众号接入接口(注意是get请求)

    'GET /wechat/index': async (ctx, next) => {
            wechatApp.auth(ctx.request, ctx.response);
        },
    

     公众号接入认证

    /**
     * 微信接入验证
     * @param {Request} req Request 对象
     * @param {Response} res Response 对象
     */
    WeChat.prototype.auth = function (req, res) {
    
        var that = this;
    
        //1.获取微信服务器Get请求的参数 signature、timestamp、nonce、echostr
        var signature = req.query.signature, //微信加密签名
            timestamp = req.query.timestamp, //时间戳
            nonce = req.query.nonce, //随机数
            echostr = req.query.echostr; //随机字符串
    
        //2.将token、timestamp、nonce三个参数进行字典序排序
        var array = [this.token, timestamp, nonce];
        array.sort();
    
        //3.将三个参数字符串拼接成一个字符串进行sha1加密
        var tempStr = array.join('');
        const hashCode = crypto.createHash('sha1'); //创建加密类型 
        var resultCode = hashCode.update(tempStr, 'utf8').digest('hex'); //对传入的字符串进行加密
    
        //4.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
        if (resultCode === signature) {
            res.body = echostr
            // res.send(echostr);
        } else {
            res.body = mismatch
            // res.send('mismatch');
        }
    }
    

     按照微信官方的说明就是:

    你在微信公众平台点击提交 公众号基本配置 后,公众号会向你配置的服务器地址(URL)发送一个get请求

    这个get请求就包含了四个参数:signature imestamp onceechostr

    然后你要做的就是

    1)将其中的timestamp、nonce两个参数和你自己设置的token(共三个参数)进行排序
    2)将三个参数字符串拼接成一个字符串进行sha1加密
    3)开发者获得加密后的字符串可与signature对比,如果对比一致,就将echostr参数返回(表示接入成功了),否则就返回其他信息(表示接入失败了)

    如果此时在微信公众平台提示验证通过,那也就通过微信开发的第一步了……

  • 相关阅读:
    搭建公共DNS服务器[转]
    zabbix3.4 yum快速安装
    centos7安装图形化界面并远程连接
    记一次排查黑客入侵
    centos6安装图形界面并远程连接
    树莓派做NAS
    document.documentElement.scrollTop||document.body.scrollTop;
    矩阵连乘
    母函数详解
    Catalan 数
  • 原文地址:https://www.cnblogs.com/eye-like/p/11782599.html
Copyright © 2011-2022 走看看