资讯专栏INFORMATION COLUMN

node微信后台开发初探

mingzhong / 2727人阅读

摘要:今天看到了微信官方推出的一个浏览器插件,用来调试微信后台和页面的,挺好的。这个是根据别人的文章总结的,时间戳随机数生成签名将三者进行加密与签名进行对比之后每次都会进行身份校验。然而后面还有更深的坑。

原文
摸索中遇到的一些坑,虽然很简单,但新手还是会被坑到,就稍微记录一下吧,也当学习手册,最好去了解一下express,不是很难,这边只是简单的配置,更高级的接口还是去看文档,模块或者自己实现都是可以的

公众号配置

首先你得有一个公众号,最好是服务号,因为个人的订阅号很多功能不提供的,比如自定义菜单,当然没有也没关系,可以用腾讯提供的测试号测试号.

测试号提供完全的功能,基本够用了。

接下来就是服务器的配置了,这边要说一下,公众号服务器的端口必须是80端口,所以自己服务器最好用nginx代理,但是这样不好的是服务端编辑代码总是很不方便,提交也麻烦,所以自己测试的话还是用nat123或者花生壳映射本地端口吧。

但是nat123太慢了,建议使用花生壳,具体教程百度吧,很简单的。

ps:今天看到了微信官方推出的一个浏览器插件,用来调试微信后台和页面的,挺好的。不过只能在qq浏览器内使用微信调试工具


上图是服务器的接口配置

获取授权

因为是基于node-wechat开发的,所以底层的东西就不用管了,了解一下它的api就好,简单来说就是用三个参数生成签名与加密的字符串进行对比以获得授权。
我用的是wechat提供的api。只要处理好自己的业务就好。

安装:
npm i wechat --save-dev

与express混合使用

var wechat = require("wechat");
var config = {
  token: "token",
  appid: "appid",
  encodingAESKey: "encodinAESKey"//可有可无
};
app.use(express.query());
app.use("/wechat", wechat(config, function (req, res, next) {
  // 微信输入信息都在req.weixin上
  var message = req.weixin;
  if (message.FromUserName === "diaosi") {
    // 回复屌丝(普通回复)
    res.reply("hehe");
  } else if (message.FromUserName === "text") {
    //你也可以这样回复text类型的信息
    res.reply({
      content: "text object",
      type: "text"
    });
  } else if (message.FromUserName === "hehe") {
    // 回复一段音乐
    res.reply({
      type: "music",
      content: {
        title: "来段音乐吧",
        description: "一无所有",
        musicUrl: "http://mp3.com/xx.mp3",
        hqMusicUrl: "http://mp3.com/xx.mp3",
        thumbMediaId: "thisThumbMediaId"
      }
    });
  } else {
    // 回复高富帅(图文回复)
    res.reply([
      {
        title: "你来我家接我吧",
        description: "这是女神与高富帅之间的对话",
        picurl: "http://nodeapi.cloudfoundry.com/qrcode.jpg",
        url: "http://nodeapi.cloudfoundry.com/"
      }
    ]);
  }
}));

稍微解释一下。token就是填配置的时候天的token,appid也提供了。
wechat(config, function (req, res, next)下面就是授权成功进行操作,这边是根据关键字回复。具体api请看api.
不过,这点功能肯定是不够用的,接下来就是wechat-api了,基本提供了所有的官方api。

底层实现

其实我也是菜鸟。这个是根据别人的文章总结的,
token+时间戳timestamp+随机数nonce->生成签名signiture
将三者进行加密与签名进行对比

之后每次都会进行身份校验。

总结

简单的大概就是这些了,虽然感觉没啥,当时也是掉进各种坑。然而后面还有更深的坑。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78264.html

相关文章

  • 钉钉开发初探...

    问题 1. - 钉钉开发需要哪些资质,需要申请哪些账号、走哪些流程(像微信小程序的话,一大堆申请、一大堆企业认证)——这些需要提前准备了解清楚 怎么开发? 有哪些功能? 目前市场上有哪些别人的框架 收集学习材料 有哪些功能有,但是存在限制(例如小程序的打开 app 功能) 有哪些功能自身存在限制性(如小程序的地图) 开发边界是什么?有哪些需求是做不到的 有哪些功能是需要特殊资质的(如...

    lavor 评论0 收藏0
  • 小程序测试方案初探

    摘要:前言年月号微信小程序正式上线,小程序不需要安装就能使用,依托微信强大的生态环境,能做到很多所不能做的事情。当然更希望的是小程序官方能给出相应的单元测试方案吧。 前言 2017年1月9号微信小程序正式上线,小程序不需要安装就能使用,依托微信强大的生态环境,能做到很多H5所不能做的事情。从微信小程序发布这段时间,陆陆续续开发了不少小程序相关的项目,总结了一些通用性的组件,但是对于小程序如何...

    church 评论0 收藏0
  • 开发初探 —— 更简便的小程序开发模式

    摘要:年加入腾讯云云开发团队。基于,云服务商发展出这类更高级的开发服务。小程序云开发说了这么多无服务开发的概念优点,在小程序无服务开发这一块,腾讯云有什么样的作品呢。这就是今天要重点介绍的,小程序云开发,这就是腾讯云与微信联合研发后,交出的答卷。 李成熙,腾讯云高级工程师。2014年度毕业加入腾讯AlloyTeam,先后负责过QQ群、花样直播、腾讯文档等项目。2018年加入腾讯云云开发团队。...

    iKcamp 评论0 收藏0
  • 微信小程序初探

    摘要:在微信小程序中,要更新视图就只能修改,而视图层也只能通过事件向逻辑层传递交互信息。页面移植到微信小程序要修改的地方也还比较多,主要是标签和的交互及小程序提供的功能部分。 小程序是一种不需要下载安装即可使用的应用,它实现了应用「触手可及」的梦想,用户扫一扫或搜一下即可打开应用。也体现了「用完即走」的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。 —...

    teren 评论0 收藏0

发表评论

0条评论

mingzhong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<