node-weixin项目是一个开源的基于nodejs的微信SDK项目
体验网站
http://express.ngrok.t1bao.com
只需要输入你的appId就可以在上面玩起来了。
最新发布
node-weixin-api (v0.3.0-alpha)
- 不在传入 node-weixin-auth 对象,启动 node-weixin-settings ,通过app.id的值来获取对应的参数
- 不再支持3以下的版本的npm,但仍支持v0.10.x, v0.12.x, v4.x,v5.x等系列版本
- settings的get/set方法必须重载
- 接口进入稳定状态,未来接口将基本保持不变,基本上已经是production ready
- 将不对数据做任何的修改或者存储,更纯粹的做一个类库
node-weixin-express (v0.2.0-alpha)
新增如下几个模块
用来辅助node-weixin-express实现更好的模块化与结构化。 其中
- node-weixin-router主要是处理默认的各类微信接口的路由与请求
- node-weixin-session主要负责HTTP请求相关的session信息的保存
- node-weixin-settings主要负责与appId相关的数据保存
它旨在实现
一个代码精良的api库(node-weixin-api) 一个可以直接运行的服务器,方便后端人员了解api的组建流程,同时也方便前端人员快速开展微信的开发工具,不必了解后端的具体实现。( node-weixin-express) 目前两个项目都已经测试通过,可以在一些常规的项目正式开始使用了。 都是由很多子项目组合而成的。 他们可以分开使用,也可以合并使用。 所以使用者可以根据需要组合使用或者基于node-weixin-api之上使用。
项目源码地址:https://github.com/node-weixin
项目主页:http://www.node-weixin.com
@calidion 话说,微信oauth接口好用嘛?
跟我这个比,你的比我复杂还是简单:
/** * 页面认证用户信息 * 1.优先从本地存储中获取用户信息(以openId是否存在为依据) * 2.如果本地没有openId则优先以静默方式请求用户信息(用户自己清空本地缓存的情况) * 3.以上都没有,则要求用户进行微信网页授权流程,授权后返回当前页面 * * @param callback * 用户信息认证后的回调函数,为保证ajax请求同步, 请在回调函数内使用localStorage取用户信息, * 多数情况下没问题,但在用户第一次授权时如果不在回调内访问localStorage 可能存在取不到值的情况 */ function oauthWeiXinUser(callback) {//S.alert(‘微信权限认证’); var redirectUri = S.locationURL();
var openid = localStorage.getItem("user.openid");
if (openid == null || openid == undefined || openid == 'undefined') {
var code = S.getQueryString("code");//S.alert('本地无用户信息, Code: ' + code);
if (code == null || code == undefined) {//S.alert('向微信发起授权请求');
/*先靜默方式找用户信息,
*如果静默方式找不到则要求用户授权
*/
oauthUserBase(redirectUri);
} else {
var state = S.getQueryString('state');//通过state区分是base还是userinfo请求 S.alert("state: " + state);
if (state === 'base') { //S.alert('静默回调');
getUserInfoQuiet(function () {//S.alert('DB中有信息');
callback();
}, function () { //S.alert('DB无信息'); S.alert("发起授权请求" + redirectUri);
//向微信发起授权请求
//去除原先URL微自己带的参数
redirectUri = redirectUri.split('&code=')[0].split('code=')[0];//防止code在第一个参数位置
oauthUserInfo(redirectUri);
});
}
if (state == 'userinfo') { //S.alert('授权回调');
//用户网页授权后服务端获取用户信息
getUserInfoOauth(callback);
}
}
} else { //S.alert('获取到本地用户信息');
console.log('获取到本地用户信息');//S.alert('获取到本地用户信息');
callback();
}
}
node-weixin-api以下部分只做接口的api,一般不会接入到res, req这个层面。
node-weixin-express有接入res, req的方法,如果以后有需要,可能会将接入回调的部分接品抽象成一个库供不同的上层server或者router调用。
指对目前的情况,可以参与一下express的实现。
@calidion 1.ngrok 很蛋疼,被墙了,没发注册,有没有国内类似的东东替代?
2.weixin --port port --id id 或者其他的配置信息,这样就能配置到config里面去了,对吧? 然后我看分别可以作为oauth服务器的配置,支付服务器的配置,jssdk的配置, 貌似不能三者都部署在一块是把?因为配置信息各自不同导致的么?