zoukankan      html  css  js  c++  java
  • 微信公众号开发过程--踏坑指南

    微信公众号,真TM的坑呀。。。

    1、先说一个最坑的--消息回复

    当一次用户请求时,微信服务器发送过来数据是一个XML格式的,这对于我们的开发十分的不友好,必须想一个办法把XML格式转化为JSON格式的数据,这样对于我们下一步的数据操作更加方便,这里我推荐的是使用xml2js模块

     1 var xml2js = require('xml2js')
     2 var Promise = require('bluebird')
     3 
     4 exports.parseXMLAsync = function (xml) {
     5     return new Promise(function (resolve, reject) {
     6         xml2js.parseString(xml, {
     7             trim: true,
     8             explicitArray : false,
     9             ignoreAttrs : true
    10         }, function (err, content) {
    11             if (err) reject(err)
    12             else resolve(content)
    13         })
    14     })
    15 }

    其中explicitArray : false这个属性非常nice,可以把我们收到的XML格式的数据中的【】去掉

    处理完数据返回给微信服务器时候,又得是一个XML数据格式的数据,我这里直接写在了body里

    1 that.body = `<xml> 
    2                     <ToUserName>< ![CDATA[${message.FromUserName}] ]></ToUserName> 
    3                     <FromUserName>< ![CDATA[${message.ToUserName}] ]></FromUserName> 
    4                     <CreateTime>${now}</CreateTime> 
    5                     <MsgType>< ![CDATA[text] ]></MsgType> 
    6                     <Content>< ![CDATA[${"傻子"}] ]></Content> 
    7                     </xml>`

    !!!!!XML格式中不能有空格,使用VSCode的小伙伴千万不能手贱一直格式化代码,格式化了,就是上面这个样子

    2、access_token这个东西是有过期时间的,你必须在服务器做个过期判断,并且重新生成

  • 相关阅读:
    第十七章:jQuery类库
    第十八章:客户端存储
    第十六章:脚本化HTTP
    第十四章 校本化CSS
    第十三章 脚本化文档
    第十二章:window对象
    第十一章:WEB浏览器中的javascript
    第十章:Javascript子集和扩展
    第九章:Javascript类和模块
    第八章:Javascript函数
  • 原文地址:https://www.cnblogs.com/quanquanchacha/p/9889372.html
Copyright © 2011-2022 走看看