位置: 编程技术 - 正文

node.js微信公众平台开发教程(微信公众号javascript)

编辑:rootadmin

推荐整理分享node.js微信公众平台开发教程(微信公众号javascript),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微信公众号javascript,nodejs wechat,微信公众号javascript,nodejs微信公众号开发,nodejs wechat,nodejs微信公众号开发,node.js微信小程序,nodejs 微信公众号,内容如对您有帮助,希望把文章链接给更多的朋友!

用nodejs怎样来实现对微信公众平台的开发呢?

  别的就不多说了,先来简单介绍微信公众平台的基本原理。

  微信服务器就相当于一个转发服务器,终端(手机、Pad等)发起请求至微信服务器,微信服务器,然后将请求转发给自定义服务(这里就是我们的具体实现)。服务处理完毕,然后转发给微信服务器,微信服务器再将具体响应回复到终端;通信协议为:HTTP;数据格式为:XML。   具体的流程如下图所示:

  其实,我们需要做的事情,就是对HTTP请求,做出响应。具体的请求内容,我们按照特定的XML格式去解析,处理完毕后,也要按照特定的XML格式返回。

平台注册

  要想完成对微信公众平台的开发,我们需要注册一个微信公众平台帐号。注册步骤如下:   打开微信公共平台的官网,  然后根据提示,填写基本信息,邮箱激活,选择类型,信息登记,公众号信息,完成注册。

  在注册完成以后,我们要对公众号进行一些基本的设置。登录公众号,找到【公众号设置】,然后设置头像以及其它信息。

nodejs环境搭建

  我们需要在公网上找一台服务器,以便可以启动我们的nodejs的环境,启动环境后通过设置访问地址,我们就可以接收微信服务器发送的消息了,并且我们也可以向微信服务器发送消息了。

  在公网的服务器中安装完成nodejs以后,我们还需要安装一些nodejs所用到的模块,如:express,node-xml,jssha等模块。可以通过npm命令进行安装。

  我们通过nodejs来实现向微信服务器消息的发送与接收,以及与微信服务器的签名认证。

  在我们右面的编辑环境中已经为同学们安装了nodejs环境。我们在接下来内容中就为同学们来实现微信服务器的签名认证。

创建express框架

  我们在前面的课程中已经安装了express模块,并且在我们右面的环境中已经创建了一个名为app.js的文件。现在我们就在这个文件中完成express框架。如下代码:

然后再添加一个名为test.html的文件。写入以下内容

  我们还要添加一个名为index.js的文件,来实现我们的路由。点击编辑环境中的添加文件按钮,添加文件,然后我们写入以下代码,其中GET请求用来验证配置的URL合法性,POST请求用来处理微信消息。

这样我们需要的express框架就完成了,当然我们还可以添加public公共文件夹以及我们要用到的中间件。保存文件,点击【提交运行】,然后点击【访问测试】,去试试吧。记下访问测试的地址,我们将在下一节中会用到该地址。

微信服务器配置

  我们登录微信公众平台,在开发者模式下面找到基本配置,然后修改服务器配置。如图所示:

node.js微信公众平台开发教程(微信公众号javascript)

  首先URL要填写公网上我们安装nodejs接收与发送数据的路径。我们可以填写上节中【访问测试】的地址,然后加上对应的路由就可以了。

  Token要与我们自定义服务器端的token一致。填写完成以后,就可以点击提交了,在提交以前,我们启动app.js(点击【提交运行】)。这样根据我们的路由匹配就可以验证签名是否有效了。

  当配置完成以后,一定要启用配置。

网址接入

  公众平台用户提交信息后,微信服务器将发送GET请求到填写的URL上,并且带上四个参数:

参数 描述 signature 微信加密签名 timestamp 时间戳 nonce 随机数 echostr 随机字符串

  开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。

  signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。

加密/校验流程:

1、将token、timestamp、nonce三个参数进行字典序排序;2、将三个参数字符串拼接成一个字符串进行sha1加密;3、开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。参数排序

  首先我们确认请求是来自微信服务器的get请求,那么就可以在index.js文件中进行添加代码了。然后在app.get(‘/interface',function(req,res){});的function中进行添加。

  先来获取各个参数的值,如下代码:

我们在这里对token进行设置,让其与微信服务器中设置的token一致。

然后对其中的token、timestamp、nonce进行排序,如下代码:

这样我们就完成了排序。

参数加密

  在上节中我们已经对参数进行了排序,然后我们在这一节中要将参数组成一个字符串,进行SH-1加密。在加密以前要用到jssha模块,在我们的文件中要引用该模块。

在上一节课中我们已经对参数排序完成,并存放在数组中,我们可以通过join方法来生成一个字符串,如下代码:

最后对该数据进行加密,如下代码:

好了这样就生成了我们需要的签名字符串scyptoString。

签名对比

  我们已经得到了我们想要的签名字符串scyptoString,然后我们就可以与来自微信服务器的签名进行对比了,对比通过,则我们就可以接收与发送消息了。

本文已被整理到了《JavaScript微信开发技巧汇总》,欢迎大家学习阅读。

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

标签: 微信公众号javascript

本文链接地址:https://www.jiuchutong.com/biancheng/370688.html 转载请保留说明!

上一篇:初步使用Node连接Mysql数据库(node connect)

下一篇:Node.js操作Firebird数据库教程(node.js操作文件)

  • 个人所得税中应纳税所得额高好还是低好
  • 企业产生的所得税计入
  • 纳税人识别号怎么看是不是一般纳税人
  • 个税手续费怎么交增值税
  • 销项税额和进项税额发票怎么区别
  • 交通补贴税前扣除标准
  • 流动负债占总负债比率较高说明什么
  • 一般纳税人工会经费返还政策
  • 计提社保个人部分需要计提吗
  • 无形资产进项税计入成本吗?
  • 签合同交什么照片比较好
  • 职工福利费发票不小心抵扣了汇算清缴
  • 学校应该缴纳的税
  • 学校方面的增值税的问题
  • 建材公司将自产产品卖出
  • 物业公司安装监控
  • 进口货物的关税税率
  • 公司帮员工缴纳个税,不从工资里扣,如何做账
  • 企业收到固定资产投资时应按什么入账
  • mac系统怎么更改输入法
  • 企业在进行会计核算时选择一种不多计资产
  • 出口货物收汇核销流程
  • 企业支付宝收到钱到哪里
  • 收到退回的保证金
  • 债务重组收益会计分录怎么做?
  • php是面向对象语言吗
  • 加拿大猞猁雪兔
  • 福利费需要缴税吗
  • EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
  • 中途建账期初数据哪里来的
  • javascript获取数组索引
  • 基于java的电子书店管理系统
  • ubuntu20.04安装opencv3.4
  • gcn时间序列
  • php读取文件内容
  • 网上学电脑的软件
  • python爬虫中数据接口的含义
  • 简易计税办法计算的应纳税额可以抵扣吗
  • phpcms二次开发教程
  • 有什么学电脑的网站
  • 物流进项发票应纳税额
  • 公司小规模纳税人转为一般纳税人,需要签补充协议吗
  • 往来对账的作用
  • 缴存的提存金是什么
  • 工程施工企业转账手续费计入什么会计科目
  • mysql同步复制搭建方法指南详细步骤
  • 专家劳务费可以在手机操作吗
  • 固定资产清理损益表怎么填
  • 水电费 会计
  • 怎么盘存货
  • 借款收回的会计科目
  • 机械租赁公司需要什么证件
  • 企业购入投资性房地产
  • 库存现金期末余额在哪方
  • 开票加的税点走什么费用
  • 会计写数字的技巧和方法
  • mysql获取日期年份
  • windows vista
  • mac自带的看图软件怎么使用
  • centos7.5切换图形界面
  • ubuntu 14.4
  • xp系统开机只有一个鼠标箭头
  • win10系统如何查看版本号
  • win7点开始一直跳闪
  • linux cpan
  • 使用jquery
  • npm安装插件失败
  • linux如何一次性删除多个文件
  • 枚举的内容怎么输出
  • jquery怎么获取
  • rsync include-from
  • javascript高级程序设计最新版
  • python中csv怎么用
  • python编写登录程序
  • js实现网页收藏的方法
  • 河南省低保信息查询
  • 国税局征收管理办法
  • 如何查找迪士尼电话号码
  • 增值税预缴税款退税申请怎么写
  • 浅谈企业所得税论文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设