common.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. 'use strict';
  2. const { parseString } = require('xml2js');
  3. class Common {
  4. parseStringXml(xml) {
  5. return new Promise((resolve, reject) => {
  6. parseString(xml, async (err, result) => {
  7. if (!err) {
  8. const xmlData = result.xml;
  9. const { MsgType, ToUserName, FromUserName, Event, Content } = xmlData;
  10. const createTime = Date.parse(new Date());
  11. const msgType = MsgType[0]; // 消息类型,event
  12. const toUserName = ToUserName[0]; // 开发人员微信号
  13. const toFromName = FromUserName[0]; // 发送方帐号(一个OpenID)
  14. const event = Event ? Event[0] : ''; // 事件类型,subscribe(订阅)、unsubscribe(取消订阅)
  15. const msgContent = Content ? Content[0] : ''; // 消息内容
  16. resolve({
  17. createTime,
  18. msgType,
  19. toUserName,
  20. toFromName,
  21. event,
  22. msgContent,
  23. });
  24. } else {
  25. console.log('err******', err);
  26. reject(new Error('解析失败'));
  27. }
  28. });
  29. });
  30. }
  31. }
  32. module.exports = new Common();