那些年用node接入微信走过的坑之(一)---成为开发者

初衷

微信开发好像是现在各大项目必须接入的东西了,微信作为人们日常使用的软件成为现在最大的流量入口,微信的接入成为各大开发者非常头大的问题,那么这么久才想到要记录一些东西出来,也希望自己走过的坑分享给大家,可以帮助初接触微信接入的同学更快的进行开发。

或许这些没有太大的作用,不过也作为激励自己的一种方式吧,文笔不好,请大家见谅。


微信板块简介

做微信开发首先要分清公众平台,微信开发者平台,企业微信。

  1. 公众平台
    公众平台是大家最熟悉的,很多人都有自己的公众平台,利用公众平台我们可以接收到粉丝发来的消息,开微店,给粉丝发推送等等操作,那么开发者可以通过监听微信操作来完成我们自己想做的事。

  2. 微信开放平台
    开放平台是微信专门为开放者定制,开发者可以根据自己的需求来完成不同的操作,如下图。
    如图,微信
    移动应用:比如开发app的自动登录
    网站应用:webApp,web微信的授权登录(例如石墨文档)
    公众账号: 绑定我们的公众平台
    公众号第三方平台:可以成为微信的第三方,获取微信权限授权,帮助其他公众号设置(例如微盟)

  3. 企业微信
    企业微信号和微信开放平台非常像开发者可以定制自己的企业号,也可以成为第三方的提供商,得到其他的企业授权后可以操作其他的企业号。(使用代表:魔学院)

成为开发者

这是本文的重点内容,接入微信,我们首先要成为微信的开发者吧,者里先将如何通过验证成为开发者,代码有参考别人的,这里还是重要讲步骤。

  1. 微信设置
    ...
    这个url很重要,微信会通过请求你的服务器来进行验证。微信会通过get请求来进行。要记住是—–get
    那么先写一个get的路由了。
  2. 微信验证
    get路由执行以下的方法getCheckSignature
    微信加密的方式是sha1
function getCheckSignature(req, res) {
    var signature = req.query.signature;
    var timestamp = req.query.timestamp;
    var nonce = req.query.nonce;
    var echostr = req.query.echostr;

    var token = "这里是你在上一个步骤中设置的Token";

    var sha1 = crypto.createHash('sha1');
    var sha1Str = sha1.update([token, timestamp, nonce].sort().join('')).digest('hex');
    console.log(sha1Str)
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end((sha1Str === signature) ? echostr : '');
    return res;
}

// 随机字符串产生函数
function _createNonceStr() {
    return Math.random().toString(36).substr(2, 15);
};

// 时间戳产生函数
function _createTimeStamp() {
    return parseInt(new Date().getTime() / 1000) + '';
};


function _calcSignature(ticket, noncestr, ts, url) {
    var str = 'jsapi_ticket=' + ticket + '&noncestr=' + noncestr + '&timestamp=' + ts + '&url=' + url;
    var sha1 = crypto.createHash('sha1');
    var sha1Str = sha1.update(str).digest('hex');
    return sha1Str;
}

点击确认,如果微信得到验证通过,那么我们设置成功
3. 成为开发者后我们做什么
如果验证成功后,微信将通过该url方式对用户的操作进行转发,比如接受用户消息,接受用户的关注和取消关注事件,开发者可以利用这个url做一些操作。


结语:
这是成为微信开发的第一步,网上大家提供了很多资源,包括代码,我希望将这些系统的整合起来。

有兴趣的同学可以使用更简洁的方式。这里感谢cnode,大神们提供了node-wechat,node-wechat-api等更加便捷的工具。

ITDogFire–sky

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值