- 因为需要回复不同类型的消,那么我们写一个不同类型的消息的回复的模板,以后我们只需要调用这个模板来进行消息的回复就可以了
- 消息的不同类型的模板 官网
- 我们专门在
wechat
文件夹下,建立templete.js
,用于管理回复消息的模板
module.exports = options => {
//回复用户消息
let replyMessage = `<xml>
<ToUserName><![CDATA[${options.toUserName}]]></ToUserName>
<FromUserName><![CDATA[${options.fromUserName}]]></FromUserName>
<CreateTime>${options.createTime}</CreateTime>
<MsgType><![CDATA[${options.msgType}]]></MsgType>`;
switch(options.msgType){
case "text":
replyMessage += `<Content><![CDATA[${options.content}]]></Content>`;
break;
case "image":
replyMessage += '<Image><MediaId><![CDATA[' + options.mediaId + ']]></MediaId></Image>';
case "voice":
replyMessage += '<Voice><MediaId><![CDATA[' + options.mediaId + ']]></MediaId></Voice>';
case "video":
replyMessage += `<Video>
<MediaId><![CDATA[${options.mediaId}]]></MediaId>
<Title><![CDATA[${options.title}]]></Title>
<Description><![CDATA[${options.description}]]></Description>
</Video>`;
case "music":
replyMessage += `<Music>
<Title><![CDATA[${options.title}]]></Title>
<Description><![CDATA[${options.description}]]></Description>
<MusicUrl><![CDATA[${options.musicUrl}]]></MusicUrl>
<HQMusicUrl><![CDATA[${options.hqMusicUrl}]]></HQMusicUrl>
<ThumbMediaId><![CDATA[${options.mediaId}]]></ThumbMediaId>
</Music>`;
case "news":
replyMessage += `<ArticleCount>${options.content.length}</ArticleCount><Articles>`;
options.content.forEach(item => {
replyMessage += `<item>
<Title><![CDATA[${item.title}]]></Title>
<Description><![CDATA[${item.description}]]></Description>
<PicUrl><![CDATA[${item.picUrl}]]></PicUrl>
<Url><![CDATA[${item.url}]]></Url>
</item>`
});
replyMessage += '</Articles>';
}
replyMessage += '</xml>';
return replyMessage
}
这里包装成了一个函数,以后我们回复消息的时候可以直接调用这个函数,并传递相应的参数即可