我之前的文章 微信程序开发系列教程(一)开发环境搭建 介绍了微信开发环境的搭建,这篇文章我们就来一步步开发一些具体的功能。
功能需求:当有微信用户关注了您的公众号之后,您用JavaScript发送一个欢迎消息给这个粉丝。
具体实现
我们登陆微信公众号的控制台后,点开发-> 基本配置:
能看到我们配置的微信消息服务器的地址。在我第一篇教程里讲到,我们在本地用nodejs开发一个Web服务器,然后部署到您喜欢的云平台,比如腾讯云,阿里云,百度云等等(我选的是云平台Heroku),然后把部署后应用的url维护到微信公众号控制台的服务器配置,如下图所示。维护好之后,微信用户关注该公众号或者给该公众号发送的消息,就会通过微信平台投递到您的nodejs应用,我们在里面就可以编程实现一些需求了。下文将该nodejs应用称为“消息服务器”。
我们首先用nodejs的express module获得一个app对象:
var express = require('express');
var app = express();
当有微信用户关注您的公众号时,微信平台会发送一个HTTP post请求到您的消息服务器。您需要编程响应这个post请求。
app.route('/').post(function(req,res){
var content;
// 把微信平台发送的HTTP post的内容存储到变量content里
req.on("data",function(data){
content = data.toString("utf-8");
}
);
req.on("end",function(){
console.log("new http post: " + content );
// 打印HTTP post请求,做调试用
// 从微信平台发送的HTTP请求里解析出事件对象。如果是粉丝点关注,事件类型为subscribe。
var msgType = formattedValue(getXMLNodeValue('MsgType', content));
// 有粉丝点了关注按钮啦
if( event === "subscribe"){
// 回复一条欢迎消息给粉丝
var replyxml = replyMessage(content, "欢迎欢迎,终于等到您了!");
res.send(replyxml);
}
}
上述代码逻辑很清晰,看注释都易懂。关键就是如何把欢迎消息回复给点了关注按钮的粉丝。
核心逻辑在replyMessage函数里,这个函数的任务是将粉丝的openID从微信平台发给消息服务器的HTTP post内容中解析出来。代码如下:
输入参数1: 微信平台发给消息服务器的HTTP post全部内容
输入参数2:准备给粉丝推送的欢迎消息
输出参数:准备通过HTTP返回给粉丝的欢迎消息的微信报文,需符合微信定义的消息规范,具体规范如下代码所示。
module.exports = function(originalBody, contentToReply){
// 从原始报文里提取出消息的接收方
var ToUserName = getXMLNodeValue('ToUserName', originalBody);
// 从原始报文里提取出消息的发送方
var FromUserName = getXMLNodeValue('FromUserName',originalBody);
var CreateTime = getXMLNodeValue('CreateTime',originalBody);
// 告诉微信平台这条消息的类型是文本消息
var MsgType = "<![CDATA[text]]>";
// 准备将欢迎消息的文字内容加入消息报文
var Content = contentToReply;
// 开始拼装准备发送给微信粉丝的消息报文
var xml = '<xml><ToUserName>'+FromUserName+'</ToUserName><FromUserName>'+ToUserName+'</FromUserName><CreateTime>'+CreateTime+'</CreateTime><MsgType>'
+ MsgType + '</MsgType><Content>'+Content+'</Content></xml>';
console.log("xml to be sent: " + xml);
// 打印消息报文
return xml;
// 返回消息报文
}
;
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
相关推荐
微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码...
JavaScript基于微信小程序的音乐播放器源码JavaScript基于微信小程序的音乐播放器源码JavaScript基于微信小程序的音乐播放器源码JavaScript基于微信小程序的音乐播放器源码JavaScript基于微信小程序的音乐播放器源码...
JavaScript开发课程设计校园新闻微信小程序源代码,JavaScript开发课程设计校园新闻微信小程序源代码JavaScript开发课程设计校园新闻微信小程序源代码JavaScript开发课程设计校园新闻微信小程序源代码JavaScript开发...
《微信小程序开发图解案例教程》教学教案—01认识微信小程序.pdf《微信小程序开发图解案例教程》教学教案—01认识微信小程序.pdf《微信小程序开发图解案例教程》教学教案—01认识微信小程序.pdf《微信小程序开发图解...
JavaScript开发项目法律咨询微信小程序源代码,JavaScript开发项目法律咨询微信小程序源代码JavaScript开发项目法律咨询微信小程序源代码JavaScript开发项目法律咨询微信小程序源代码JavaScript开发项目法律咨询微信...
微信小程序开发项目教程(慕课版)_PPT.zip
微信小程序开发项目教程(慕课版)-源码.zip
微信小程序是不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开的应用,在微信小程序的使用过程中,用户只增不减,很多的公司都开始研发属于自己的小程序,那么小程序该...
微信小程序(wei xin xiao cheng xu),简称小程序,缩写XCX,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。 全面开放申请后,主体...
腾讯微信架构师撰写,小程序巧应用,实现创业大梦想。内容系统全面,包括流程、技巧、案例,可帮助你简单高效地搭建具有原生App体验的小程序
微信小程序开发教程.zip 1.获取AppID 2.绑定开发者 3.开发者工具(IDE) 4.创建项目 5.IDE 6.编程
微信小程序开发项目教程(慕课版)教案 (1)[19页].docx微信小程序开发项目教程(慕课版)教案 (1)[19页].docx微信小程序开发项目教程(慕课版)教案 (1)[19页].docx微信小程序开发项目教程(慕课版)教案 (1)[19页].docx微信...
微信小程序开发服务合同 微信小程序定制合作协议.docx微信小程序开发服务合同 微信小程序定制合作协议.docx微信小程序开发服务合同 微信小程序定制合作协议.docx微信小程序开发服务合同 微信小程序定制合作协议.docx...
。
基于微信小程序开发的仿微信demo(源代码+截图)基于微信小程序开发的仿微信demo(源代码+截图)基于微信小程序开发的仿微信demo(源代码+截图)基于微信小程序开发的仿微信demo(源代码+截图)基于微信小程序开发的仿微信...
微信小程序开发(PHP Laravel MySQL)教学大纲.pdf微信小程序开发(PHP Laravel MySQL)教学大纲.pdf微信小程序开发(PHP Laravel MySQL)教学大纲.pdf微信小程序开发(PHP Laravel MySQL)教学大纲.pdf微信小程序开发...
微信小程序投票系统微信小程序云开发实现的...瀑布流展示,排名,活动发布等功能排名,活动发布等功能活动发布等功能微信小程序投票系统微信小程序云开发实现的投票微信小程序系统。瀑布流展示,排名,活动发布等功能
微信小程序开发教程2.zip
基于JavaScript开发的短视频去水印微信小程序源码.zip基于JavaScript开发的短视频去水印微信小程序源码.zip基于JavaScript开发的短视频去水印微信小程序源码.zip基于JavaScript开发的短视频去水印微信小程序源码.zip...