博文由  水车  编写

欢迎各位指正,转载请把链接带上——http://www.cnblogs.com/xuange306/p/4971702.html

前期准备工作

  1:如果你没有服务器,那你需要一个内网映射工具:我用的是《花生壳》(PS:这不是广告),花生壳在实名认证是需要8RMB的认证费,之后就可以永久使用了,并且支持80端口映射,

    注:花生壳在免费申请时要申请内网,不要申请公网。

  2:nodeJS 最新版本,安装教程自行上网搜索

  3:一个注册号的微信公众号,自行申请,这里不做说明,网上教程已经比较成熟;

  

花生壳使用教程

  下载地址: http://hsk.oray.com/download/

  安装:没有需要注意的

  注册账号:

  

  进去点击个人注册,如果你是企业,那就点击企业注册;

  注册成功后登陆客户端

  登陆后具体怎么做我忘了,(省略实名认证过程)总之会让你支付8RMB,付款后就可以使用了

  这时你应该已经生成了自己的映射域名了;

  

  双击域名

    

  注意的地方如上图,点击确定;添加成功了,再补充一点:上图中有个80端口,那是你本地服务器的端口,和你自己的端口保持一致就行了,比如你设置的是3000端口,你就改为3000;

nodeJS配置及使用

  1:确认自己的nodeJS安装成功,在cmd中输入node -v

    可以看到自己node的安装版本

    

  2:安装express4.x

    这里需要说明的是express4.x在使用上和express3.x略有不同;

    1:安装全局的express包

    

    在cmd任意位置执行以下代码

npm install -g express-generator

    2:cmd进入到你需要创建项目的目录下;我以我的D:/test 文件夹为例

    创建express项目,porjectName是你的项目文件夹名字,我这里以weixin命名

express porjectName

  

    

    这里我们在文件夹里可以看到已经创建好了一个文件夹,名字就是weixin

    

    这时再执行

cd weixin && npm install

    

    安装成功7个npm包后,我们就开始测试下我们的服务器能否正常启动!这里需要注意的是,express4.x创建的服务器默认端口为3000;如果需要改端口,bin/www文件里改

    

    我这里用的是webstorm10.0.3开发。

    启动服务器有两种方法,如果你也用的是webstorm。

      方法一:在cmd里输入

      

npm start

      方法二:在webstorm里的www文件里的任意位置单击右键,选择run ‘fileName’;

      

   测试服务器是否正常启动,在浏览器里输入localhost:3000

    

    到这里,我们的本地服务器就算是搭建完成了。

3:测试花生壳是否映射成功

  启动花生壳映射:这里注意,花生壳里的本地端口要和node服务器的端口一致!

  

  在浏览器里打开上图中“外网访问地址”!我们看到和在localhost:3000下访问的页面完全一样,这样就映射成功

  

4:公众号的接入配置:(在这里,你应该阅读一下微信开发者文档里的接入指南;地址:http://mp.weixin.qq.com/wiki/16/1e87586a83e0e121cc3e808014375b74.html

  1:打开公众号平台:

       点击“接口配置”

     URL:就是我们映射好的外网地址;

     token:就是我们和微信后台约定好的令牌;

     秘钥:随机生成;

     加密方式:可以选择明文模式,也可以选择兼容模式;

      注意:此时我们还不能提交,因为我们还没有验证代码的编写;这是验证要求;

      

  首先:我们这里用到了另一个npm包;所以我们先需要安装这个npm包,打开之前的cmd,进去我的微信目录里输入:

    npm install crypto

    

    打开weixin/routes/index.js;

      

    将里面的代码改为:

    切记,代码里的token要改为你自己的token

var express = require('express');
var crypto = require('crypto');
var router = express.Router(); var token = "你自己规定的token"; //此处需要你自己修改! /* GET home page. */
router.get('/', function(req, res, next) { var signature = req.query.signature;
var timestamp = req.query.timestamp;
var nonce = req.query.nonce;
var echostr = req.query.echostr; /* 加密/校验流程如下: */
//1. 将token、timestamp、nonce三个参数进行字典序排序
var array = new Array(token,timestamp,nonce);
array.sort();
var str = array.toString().replace(/,/g,""); //2. 将三个参数字符串拼接成一个字符串进行sha1加密
var sha1Code = crypto.createHash("sha1");
var code = sha1Code.update(str,'utf-8').digest("hex"); //3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
if(code===signature){
res.send(echostr)
}else{
res.send("error");
}
});
module.exports = router;

     代码就改好了!现在开始接入:

    

  填好就可以提交了!如果提示url超时,就重新点击提交!

    此处可能出现的问题:

      1:如果多次提交还是超时,则将映射地址输入浏览器里直接打开,看能请求到不,如果看到页面显示一个error,则重新点击提交,如果一直加载,则是花生壳问题,关闭重新打开花生壳!

      2:如果提示token验证失败,则是代码问题,查看代码哪里有错误!修改错误后重新提交!

  

从此,我们就可以真正的做微信开发了,查看文档,完成自己想完成的任务去吧!

@转载请注明出处!

微信后台开发第一步:nodeJS+express接入微信后台详细教程的更多相关文章

  1. JAVA开发第一步 - JDK安装与配置

    JDK的安装与环境变量配置是JAVA开发之路的第一步,很多新人在这一步上就卡了很久,浪费了很多时间,甚至有些人就轻易地“从入门到放弃”了.今天我们就来一步步教你如何打倒这第一只拦路虎. 1.JDK下载 ...

  2. NodeJs+Express+SqlServer简易后台API服务搭建

    首先安装nodejs 第一步 创建node项目配置package.json如下 express 使用方法可参考http://www.runoob.com/nodejs/nodejs-express-f ...

  3. Andriod开发第一步-部署环境(搬运&&总结)

         第一步:安装JDK      第二步:配置Windows上JDK的变量环境      第三步:下载安装Eclipse      第四步:下载安装Android SDK 配置了JDK变量环境, ...

  4. JDK 安装与环境配置配置——Android开发第一步

    什么是JDK? JDK 即 Java Development Kit,Java开发工具包,用来编译 Java 程序.JRE 在接触JDK的过程中,同时了解到 JRE,JRE 即 Java Runtim ...

  5. ios开发第一步--虚拟机安装MAC OS X

    暂时还没买Macbook,先用虚拟机练练手. 先说说准备工作,我是在win8下安装的,这个不是关键的,只要Vmware版本和MAC OS X版本确定就行了,win7下同样可以. 1.虚拟机Vmware ...

  6. 微信接口开发之高级篇系列【微信JS-SDK】

    PHP微信公众平台开发高级篇—微信JS-SDK 第一步.绑定域名: 第二步.引入JS文件: 第三部.通过Config接口注入权限验证配置 第四部.通过Read接口处理成功验证 第五部.通过Error接 ...

  7. 面系那个对象开发原则.高内聚.低耦合+Python安装详细教程+print输出带颜色的方法

    面系那个对象开发原则.高内聚.低耦合 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计, ...

  8. 新浪微博API开放平台进行程序开发第一步(java)

    申请开发者权限步骤: 1.登录sina微博,点击“应用” 2.点击“微博开发平台 我也要做开发者” 3.点击“我的应用”,填写“开发者信息” 4.点击“创建应用”,就是你将要开发的微博应用程序,可以是 ...

  9. 【AI开发第一步】微软认知服务API应用

    目录 介绍 API分类 使用‘视觉’API完成的Demo 点击直接看干货 介绍 从3月份Google家的阿尔法狗打败韩国围棋冠军选手李世石,到之后微软Build2016大会宣布的“智能机器人”战略.种 ...

随机推荐

  1. 架构师养成记--15.Disruptor并发框架

    一.概述 disruptor对于处理并发任务很擅长,曾有人测过,一个线程里1s内可以处理六百万个订单,性能相当感人. 这个框架的结构大概是:数据生产端 --> 缓存 --> 消费端 缓存中 ...

  2. 分享一些平时测试用的sql payloads

    1:BOOL SQLINJECTION \'"%df'%df" and 1=1 and 1=2' and '1'='1' and '1'='2" and "1& ...

  3. RabbitMQ 集群

    集群 消息队列要想在项目里用的溜,还是要做集群.稳定可靠 但是如果只有一个服务器的话 崩溃的话还是会懵逼的.所以集群化让崩溃的损失降到最小. 在这里我要用三台机器来做集群,不同系统在一起集合才叫酸爽 ...

  4. 仿浏览器TAB效果

    仿浏览器的Tag标签 这里先上个非常非常简陋的demo,没加CSS,我先把jquery的源码给全部搞通,在专心把这个功能给讲一下 <!doctype html> <html lang ...

  5. 我们是怎么管理QQ群的

    文章背景:腾讯平台上的qq群数以千万百万计,但99%的在吹水扯蛋,从早上的问好开始,到晚上的晚安,无一不浪费青春之时间,看之痛心,无力改变,只好自己建了一个,希望能以此来改变群内交流的氛围或环境. 以 ...

  6. Eclipse MySQL Hibernate 中文乱码问题

    如果是Eclipse的问题,那就对以下各项进行设置,即可排除问题. 设置eclipse相关编码为UTF-8: 修改工作区默认编码,位置:windows--perferences--general--w ...

  7. Oracle函数组的使用

    --1.组函数--COUNT():用来统计记录的条数 如果没有记录,返回 0--COUNT函数可以根据一列或多列进行计算,没有排重功能--统计EMP表一共有多少条记录select count(empn ...

  8. AD域-让共享目录只显示用户有权限访问的文件夹

    问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...

  9. 【ZOJ 3929】Deque and Balls(普通dp)

    题意:给出一个序列,按照顺序一个一个放入双端队列(可以放在头部也可以放在尾部),一个队列的美丽指数就是数列中a[i]>a[i+1]的个数,求美丽指数的期望*2^n的值. 解题思路:方便起见,我们 ...

  10. java开发问题总结-4-Maven使用问题汇总

    Non-resolvable parent POM [INFO] Scanning for projects... [ERROR] The build could not read 1 project ...