Node.js微信公众号开发

技术要点分析
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

微信号开发:

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

没钱买服务器的办法:

  • Ngrok内网转发->TUNNEL
  • PageKite花生壳
  • ntralhook
  • QQ浏览器,应用中心,开发者工具->微信
    Ngrok内网转发->TUNNEL
    1. 开个服务器
python -m SimpleHTTPServer 3100
php -S localhost:8000
http-server [path] [options]

2 . 运行TUNNEL

Win
ngrok http 3000
Mac
./ngrok -config ngrok.cfg -subdomain hanxiao-wechat(子域名,需要付费) 3100(端口过大,会转发失效)

nodejs的localtunnel服务

npm install -g localtunnel
lt --port 3100

验证过程

这里写图片描述
这里写图片描述

这里写图片描述

使用koa框架(不用express)的原因:代码精简,易懂,对多次的异步交互更适合

app.js
'use strict'

var Koa = require('koa');
var sha1 = require('sha1');
var config = {
  wechat:{
    appID:'wx8d16f44e1590e268',
    appSecret:'d53deca733621c0782ec9e570e643dec',
    token:'weixingongzhonghao'
  }
}

var app = new Koa()

app.use(function *(next){
  console.log(this.query)

  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('Listening:3000')
首先映射端口
node -V 需要11以上才能使用Koa
npm install koa sha1
node --harmony app.js
另一种方法
npm i -g localtunnel(不支持自定义域名,映射服务中断就失去该映射)
lt --port 3000

消息与回复

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543

注意事项

这里写图片描述

添加中间件(Genertor)
access_token

这里写图片描述
- 更新后,原来的access_token就会失效
- 每两个小时(7200s)失效,需重新获取

报错解决:http://www.imooc.com/article/17755

自动回复

这里写图片描述

这里写图片描述

微信交互流程

这里写图片描述

Promise使用

这里写图片描述

Generator生成器

Koa和Express中间件

需求

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值