由于卤煮本人是做前端开发的,所以在做公众号过程中基本上没有遇到前端问题,在这方面花的时间是最少的。加上用了mui框架(纯css界面)和自己积累的代码,很快地开发出了界面来。接着是后台开发。卤煮选的是nodejs,作为中小型的项目开发,nodejs是前端开发人员的首选。然后是选了一些开发包,帮助快速上手。express,inspector,mysql等。卤煮不打算做nodejs教程,网上有很多。假设这些你都已经做好了,也就是说首先,你保证你已经有一份写好了的程序,并且通过本地浏览器测试。然后再开始搭建测试环境。

搭建本地服务器

很多同学在处于开发阶段的时候是不愿意搭建服务器环境的,一个是对linux系统不太熟悉,各种命令啦,方法啦,远程啦弄得人一头雾水,对于前端工程师来说尤其如此。况且,服务器需要花钱购买,虽然要不了几个钱,但终究是在产品未出来前持不愿意态度。这里,卤煮推荐一款非常有用的测试工具,它能够把内网公射到外网上去,并且给你一个能被访问到的域名。也就是说,域名是免费的,服务器则是你自己的电脑。它的操作步骤也非常简单,你花一分钟就可以搞定!

首先保证你的80端口被node监听。然后利用内网穿透工具把80端口映射出去。上一章讲过可以用ngrok工具穿透内网,使得你的本地ip作为外网使用。打开http://natapp.cn,下载window(根据你自己的系统)版本的工具,解压后打开cmd,切换到解压目录下输入以下命令:

ngrok -config ngrok.cfg -subdomain yourdomain 80

yourdomain是你自定义的域名,后面是端口,接着敲回车键,可以看到如下画面

这时候,工具就把你的80端口映射出去了,而且还为你生成了一个域名,这个域名是可以被外网访问的。这样你的机器目前就是一台小服务器了。由于是内网穿透,http会走好几层路由,导致访问的速度会比较慢,但对于我们这些一毛钱没花就搭建好了服务器的同学来说,应该能刚到满足了吧。有了这个域名和服务器,我们就可以轻轻松松得来布置微信的测试环境了。

申请微信测试号

卤煮之前说过,微信公众号认证是需要公司资质的,而且认证费用要三百大洋。也就是说完成一个公众号的认证你大概需要注册公司成本(800)+ 认证成本(300),一共一千一的费用。卤煮本着在正式项目出来之前是不花一毛钱的原则,网上找到了微信的测试公众号平台。实现了不花钱用微信的认证功能的目的。打开微信测试公众号开发平台(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login),点击登录,用自己的微信扫描后确认登录,系统为你自动建立一个测试账号。这个测试账号是临时的,最多拥有100位粉丝,但对于开发阶段来说完全足够,而且最有用的部分是该公众号的所有权限都为你开通。有了这个测试号,你就相当于已经拥有了一个认证过的准公众号:

如上图所示,数字的意义分别代表着:1:你的测试微信号, 2:appid, 3:appsecret, 4:与微信交互的后台接口 处理关注,发布,取消等事件, 5:Token 任意值,后台交互的凭证, 6:直接填写你的有效域名,引入js会以此域名为凭据。有一点值得注意,当你填写第四项的时候,点击提交微信会去验证你所填写的后台接口。为了方便第一次认证,你可以在此接口直接返回一段参数,已确认改服务器的所有权在你手上。后续我们会在这个接口里面逐步添加业务。代码如下:

//微信将很多事件推送到此接口上
app.post('/yourapi', function(req, res, next) {
//微信得到返回后会通过你的认证
var query = req.query;
var echostr = query.echostr;
res.send(echostr);
});

接下来我们可以看到测试平台已经全部开放了权限,只需要你调用。里面还有测试公众号的二维码,扫描就可以关注,旁边是关注的粉丝名称以及它们的openid。往下翻页可以看到有“网页账号”这项服务功能,此功能是在用户打开网页时获取授权信息的,点击修改弹出填写域名界面。

在文本框内填写你的域名,这样微信才会给这个域名下的网页授权。记住,不需要www开头,直接写域名,如:baidudu.com。以www开头的是无效的。在开发环境下可以填写外网ip,但是在正式的公众号里面只允许填写域名。那么至此你已经把微信部分测试环境搭建好了,很简单吧。下一篇将讲解微信交互的一些过程。

需要注意的地方

1.填写网页授权时不需要http或者www开头,只需要填写域名即可

2.微信授权域名只支持80端口,务必使node监听80端口

3.每次开机都需要重新搭建本地服务器环境,映射内网。

4.微信URL填写的是后端的接口,如:http://yourname.ngrok.natapp.cn/login/wechat 或者http://yourname.php,这个接口很重要,负责监听微信推送的各种事件。后面会详细讲解。

5.填写URL的时候微信会自动发送请求到该地址去,所以,必须先写好该接口,并且返回你填写的TOKEN,微信才会认为此服务器接口有效。res.send(req.query.echostr);

NodeJs 开发微信公众号(二)测试环境部署的更多相关文章

  1. NodeJs 开发微信公众号(五)真实环境部署

    在测试环境下开发完成代表着你离正式上线的目标不远了.接下来本章就主要谈一谈把测试环境的公众号升级为正式的公众号. 服务器和域名 目前为止我们只是在自己的电脑上完成了测试环境.真实的线上环境当然需要自己 ...

  2. 用java开发微信公众号:测试公众号与本地测试环境搭建(一)

    本文为原创,原始地址为:http://www.cnblogs.com/fengzheng/p/5023678.html 俗话说,工欲善其事,必先利其器.要做微信公众号开发,两样东西不可少,那就是要有一 ...

  3. NodeJs 开发微信公众号(一)准备工作

    前言 大概是一个月前,自己用业余时间做了一个微信公众号.微信开发,尤其是对后台不熟悉的人来说显得尤其困难.首先要克服的是后台语言(nodejs)的一些不熟悉困难,其次,也是最大的一点困难是在跟微信交互 ...

  4. Nodejs开发微信公众号中控服务

    本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 本项目旨在为多个微信公众号 ...

  5. NodeJs 开发微信公众号(四)微信网页授权

    微信的网页授权指的是在微信公众号中访问第三方网页时获取用户地理.个人等信息的权限.对于开发了自己的网页app应用时,获取个人的信息非常重要.上篇博客讲到了注册时可以获取用户的信息,很多人会问为什么还需 ...

  6. NodeJs 开发微信公众号(三)微信事件交互

    微信公众号有个规则,一旦开启了开发者模式,其他的常规功能就都必须通过接口调用完成.比如说自定义菜单功能,必须通过发送post请求的方式生成.本章就通过关注到取消关注的整个过程来谈一谈nodejs是怎么 ...

  7. 使用 nodeJs 开发微信公众号(上传图片)

    在给用户发送消息中涉及到的素材(图片.视频.音频.文章等)需要事先传到微信服务器,然后获得媒体id(media_id),然后把 media_id 传递给用户 上传分上传临时素材(只保存三天)和上传永久 ...

  8. 使用 nodeJs 开发微信公众号(配置服务器)

    流程如下: 1. 申请微信公众号:企业号.服务号.订阅号(前两个要钱) 2. 配置微信公众号后台 选择基本配置,获得 AppId 和 AppSecret ,点击服务器配置 URL:你服务器地址,不能是 ...

  9. 使用 nodeJs 开发微信公众号(获取access_token)

    要使用微信提供的功能接口,就需要获取到access_token,这是开发公众号必不可少的一部 access_token有效期20分钟,建议保存起来,过期后在重新获取 获取流程如下: 我将微信相关的操作 ...

随机推荐

  1. 【Java EE 学习 75 下】【数据采集系统第七天】【二进制运算实现权限管理】【使用反射初始化权限表】【权限捕获拦截器动态添加权限】

    一.使用反射动态添加权限 在该系统中,我使用struts2的时候非常规范,访问的Action的形式都是"ActionClassName_MethodName.action?参数列表" ...

  2. Optimal Flexible Architecture(最优灵活架构)

    来自:Oracle® Database Installation Guide 12_c_ Release 1 (12.1) for Linux Oracle base目录命名规范: /pm/s/u 例 ...

  3. SQL Server架构 -- 数据库文件和文件组

    在SQL SERVER中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,也是在特定文件夹下创建不同的文件,然后经过文件存储系统去抓取数据信息.理解文件和文件组的概念可以帮 ...

  4. JSON对象格式美化

    JSON.stringify(obh, null, "\t"); 这段代码就可以对某个js对象美化输出

  5. Ueditor之前后端源码的学习和简单的研究

    这是我的项目目录 这里写图片描述 1.从访问路径http://localhost:8081/Test/_examples/simpleDemo.html,我们主要是要看看,富文本框被加载出来之前,会调 ...

  6. C# 取整函数

    向上取整math.ceiling(1) = 1math.ceiling(1.1) = 2math.ceiling(1.5) = 2向下取整math.float(1) = 1math.float(1.1 ...

  7. SOUI Editor使用教程

    感谢网友"指尖"为SOUI开发的UiEditor, 目前该UI编辑器已经基本可用, 源代码在soui svn demos\uieditor. 下面是"指尖"提供 ...

  8. 4.View绘制分析笔记之onDraw

    上一篇文章我们了解了View的onLayout,那么今天我们来学习Android View绘制三部曲的最后一步,onDraw,绘制. ViewRootImpl#performDraw private ...

  9. Python3的tkinter写一个简单的小程序

    一.这个学期开始学习python,但是看了python2和python3,最后还是选择了python3 本着熟悉python的原因,并且也想做一些小程序来增加自己对python的熟练度.所以写了一个简 ...

  10. 微服务中的netty

    一般使用netty主要是整个netty流程的理解,实际开发中服务端.客户端参数的配置,以及连接 handle的管理是关键,再有就是encode和decode编码.解码. 服务端流程图 客户端流程图包含 ...