Skip to content

Latest commit

 

History

History
226 lines (156 loc) · 3.64 KB

微信公众号开发.md

File metadata and controls

226 lines (156 loc) · 3.64 KB
marp paginate style
true
true
h1 { color: #0bb8e8; }
<style scoped> h1,h2 { color: #0bb8e8; text-align: center } h2 { text-align: right } </style>

Node.js 进阶

微信公众号开发

⭐ by calidion


微信开发分成几个主要的内容:

  1. 注册微信帐号
  2. 开发 ack 服务器
  3. 开发调用 API
  4. 开发网页授权服务器

微信 Node.js 开发包

node-weixin


搭建 ack 服务器(Client Authentication)


建设 Web 服务器

  1. 创建服务器脚本文件
touch ack.js
  1. 添加脚本内容
var server = require('express')();
var port = 2048;
server.listen(port, function () {
  console.log('Ack server running on ' + port);
  console.log(arguments);
});

  1. 安装
npm install --save express
  1. 运行服务器
node ack.js
  1. 成功!

这时会得到结果

Ack server running on 2048

添加 ack 功能

  1. 首先我们将基本的模块 node-weixin-auth 安装起来
npm install --save node-weixin-auth
  1. 添加配置信息
var app = {
  id: process.env.APP_ID || '你的APPID',
  secret: process.env.APP_SECRET || '你的APPSECRET',
  token: process.env.APP_TOKEN || '你的APP_TOKEN'
};

  1. 添加处理代码
server.get('/ack', function (req, res) {
  var data = auth.extract(req.query);
  auth.ack(app.token, data, function (error, echoStr) {
    if (!error) {
      res.send(echoStr);
      return;
    }
    switch (error) {
      case 1:
        res.send('Input Error!');
        break;
      case 2:
        res.send('Signature Not Match!');
        break;
      default:
        res.send('Unknown Error!');
        break;
    }
  });
});

安装内网穿透工具 localtunnel

  1. 全局安装 localtunnel,并获得 lt 命令
npm install -g localtunnel
  1. 指定 lt 使用的端口
lt --port 2048

这时会有提示:

your url is: https://[xxxx].localtunnel.me

这里[xxxx]是指某一串字符串比如:rjclymnfkf


  1. 得到微信的响应地址 假设我们当前得到的 url 是:
https://rjclymnfkf.localtunnel.me

那么微信的响应地址就是:

https://rjclymnfkf.localtunnel.me/ack
  1. 在微信的公众号平台启动开通 ack 连接

接通正式微信公众号的方法是

登录公众号平台 沿 ·开发· => ·基本配置· => ·服务器配置· => ·服务器地址· 找到配置位置 将 URL 填入输入框 点击[提交],通过即可


接通测试微信公众号的方法是

沿 ·开发· => ·开发者工具· => ·公众平台测试帐号· 找到[进入]按扭 扫描二维码进入·测试号管理· 点击 ·接口配置信息· 边上的修改 修改完点击[提交],直到成功即可。


微信三个主要的 API 类型

  1. 基于 OAuth 里的 Client Credentials 的 API
  2. 基于 OAuth 的 Authorization Code 的用户网页登录
  3. 基于 OAuth 的 Implicit Grant 模式的 jsapi_ticket 的获取,用于 JSSDK 的使用和支付等。

微信的 Client CredentialsAPI 调用

微信的 API 的调用是基于 OAuth2.0 的客户信任(Client Credentials)的。 只需要发送 token 就可以了。 可以有 refresh_token。


微信的 Authorization Code 模式调用-网页用户登录

微信的网页登录需要使用 OAuth2.0 里的授权代码(Authorization Code)


微信的 Implicit Grant 模式开发

  1. JSSDK
  2. 微信支付的 JS 开发
  3. 其它基于 JS 的授权机制

微信的 JSSDK 的开发需要在服务器获取 jsapi_ticket,同时要传递当前网页的 URL 地址到微信服务器,并获得配置信息。