0.1.0 • Published 8 years ago

wechat-message-handlers v0.1.0

Weekly downloads
4
License
MIT
Repository
github
Last release
8 years ago

wechat-message-handlers

为处理微信消息提供一种简便统一的方式

Examples

Wechat Enterprise

以下是在微信企业号中使用的示例,来自wechat-enterprise-signup

import { Router } from 'express';
import wechat from 'wechat-enterprise';
import {handleEvent, handleText} from 'wechat-message-handlers';

const router = new Router();

let TextHandlers = {

  /*
处理用户输入的姓名
   */
  ready_for_name: (msg, req, res) => {
    req.wxsession.user_name = msg.Content;
    let str = `请输入您的手机号码:`;
    req.wxsession.mobile_signup = 'ready_for_mobile';
    res.reply(str);
  },
  ready_for_mobile: (msg, req, res) => {
    req.wxsession.user_mobile = msg.Content;
    let str = `${req.wxsession.user_name}, ${msg.Content}`;
    res.reply(str);
  },
  unhandled: (msg, req, res) => {
    res.reply('do nothing');
  }
}
let EventHandlers = {
  /*
    开始进入自主注册的程序
   */
  mobile_signup: (msg, req, res, next) => {
    let str = `欢迎注册,请输入您的姓名:`
    req.wxsession.mobile_signup = 'ready_for_name';
    res.reply(str);
  }
}

let getTextHandler = (msg, req) => {
  if(req.wxsession && req.wxsession.mobile_signup) {
    return TextHandlers[req.wxsession.mobile_signup];
  } else {
    return TextHandlers.unhandled;
  }
}
router.use('/', wechat(wxcfg, wechat.text(handleText(getTextHandler))
  .event(handleEvent(EventHandlers))));
export default router;

Notes

  1. 上述例子中的TextHandlers对象中,subscribeunsubscribe被保留,用作特定的订阅和取消订阅时间的处理函数。
0.1.0

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago