由于卤煮本人是做前端开发的,所以在做公众号过程中基本上没有遇到前端问题,在这方面花的时间是最少的。加上用了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. Android中用TextView显示大量文字的方法

    最近学习Android中,试着实现一个简单的显示新闻Demo的时候,遇到了一个问题:一条新闻的内容文字很多,放在TextView上面超出屏幕了,怎么破? 查了一下资料,找到了两种方法实现: 1. 只用 ...

  2. SQL语句实现Split并合并查询结果

    需求是这样的,需要将数据库中的支付方式列(用";"分割的字符串)按支付方式拆分: 首先参考博客园split的文章,我采用方法2, IF EXISTS ( SELECT * FROM ...

  3. SSH ProxyCommand

    简单的说就是SSH层面的代理服务器,实现通过跳板机执行SSH相关命令到目标机器的代理服务.

  4. 学习微信小程序之css12设置盒子内容的宽高

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. echarts中显示效果option中必有的属性

    写一个最简单的效果让option中不可缺少的属性. var option = { xAxis:[ //x轴,数组对象,其下至少有一个对象 {.....} ], yAxis:[//y轴,数组对象,其下可 ...

  6. Tween Animation----Translate位置移动动画

    布局: 在res/下新建一个anim文件夹用来保存动画xml文件 新建一个translate文件 代码: <?xml version="1.0" encoding=" ...

  7. 16-1-26---图解HTTP(01)

    图解HTTP1.4.2确保可靠性的HTTP协议    按层次分,TCP位于传输层,提供可靠的字节流服务    所谓字节流服务,指为了方便传输,将大块数据分割成以报文为单位的数据包进行管理,而可靠的传输 ...

  8. pair的使用

    #include<iostream> #include<cmath> #include<cstdio> #include<algorithm> #inc ...

  9. tornado 学习笔记15 _ServerRequestAdapter分析

         继承于HTTPMessageDeletegate,是HTTPMessageDeletegate的一种实现,用于处理请求消息. 15.1 构造函数 def __init__(self, ser ...

  10. Salesforce学习资料

    官方文档下载网址:https://developer.salesforce.com/docs 关于Salesforce的所有官方文档都在以上的地址之中,可以进行在线预览和下载 推荐新手学习以下几本文档 ...