1. 程式人生 > >微信公眾號開發過程--踏坑指南

微信公眾號開發過程--踏坑指南

微信公眾號,真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這個東西是有過期時間的,你必須在伺服器做個過期判斷,並且重新生成