node-weixin开源微信API与服务器项目新版本发布
发布于 1 个月前 作者 calidion 1549 次浏览 最后一次编辑是 10 天前 来自 分享

node-weixin项目是一个开源的基于nodejs的微信SDK项目

体验网站

http://express.ngrok.t1bao.com

只需要输入你的appId就可以在上面玩起来了。

最新发布

node-weixin-api (v0.3.0-alpha)

  1. 不在传入 node-weixin-auth 对象,启动 node-weixin-settings ,通过app.id的值来获取对应的参数
  2. 不再支持3以下的版本的npm,但仍支持v0.10.x, v0.12.x, v4.x,v5.x等系列版本
  3. settings的get/set方法必须重载
  4. 接口进入稳定状态,未来接口将基本保持不变,基本上已经是production ready
  5. 将不对数据做任何的修改或者存储,更纯粹的做一个类库

node-weixin-express (v0.2.0-alpha)

新增如下几个模块

  1. node-weixin-router
  2. node-weixin-session
  3. node-weixin-settings

用来辅助node-weixin-express实现更好的模块化与结构化。 其中

它旨在实现

一个代码精良的api库(node-weixin-api) 一个可以直接运行的服务器,方便后端人员了解api的组建流程,同时也方便前端人员快速开展微信的开发工具,不必了解后端的具体实现。( node-weixin-express) 目前两个项目都已经测试通过,可以在一些常规的项目正式开始使用了。 都是由很多子项目组合而成的。 他们可以分开使用,也可以合并使用。 所以使用者可以根据需要组合使用或者基于node-weixin-api之上使用。

项目源码地址:https://github.com/node-weixin

项目主页:http://www.node-weixin.com

31 回复

不错,很全面啊。

@coolicer 谢谢。 欢迎在做微信开发的同学使用并反馈,一起完善。

我最近就用到了微信,发现,开发已经够复杂的了,居然微信和qq还必须配置 带域名的请求地址,github 就不需要有域名,吐槽下,不过微信支付那块 的步骤真心复杂

@qxl1231 可以试用下这个项目,支付,oauth,auth的处理都会很方便。

@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();
    }

}

var WechatAPI = require(‘wechat-api’); 我目前用的是这个

@qxl1231

node-weixin-api以下部分只做接口的api,一般不会接入到res, req这个层面。

node-weixin-express有接入res, req的方法,如果以后有需要,可能会将接入回调的部分接品抽象成一个库供不同的上层server或者router调用。

指对目前的情况,可以参与一下express的实现。

好的,我checkout到本地玩一下express的weixin

@qxl1231 你可以不用写一行代码,

npm install -g node-weixin-express

然后通过ngrok配置下下, 就可以运行上面的三个功能。

@calidion 貌似不行把,应该需要配置下项目里面的config,还要在微信配置域名地址,回调地址等等

@qxl1231 config可以通过命令指定, 域名,回调地址都是必须配置的,但可以不用写代码。

@calidion 1.ngrok 很蛋疼,被墙了,没发注册,有没有国内类似的东东替代?

2.weixin --port port --id id 或者其他的配置信息,这样就能配置到config里面去了,对吧? 然后我看分别可以作为oauth服务器的配置,支付服务器的配置,jssdk的配置, 貌似不能三者都部署在一块是把?因为配置信息各自不同导致的么?

发现一个很好玩的事情,就是node-weixin竟然没有people…

@qxl1231 可以同时启动的

@XGHeaven 目前还只是一个人的项目。

@calidion 其实我现在也很需要一个微信的node端程序,如果有兴趣的话,可以一起哦~

@XGHeaven 欢迎参与进来一起开发。

一直没有做过微信开发,目前一个朋友让我帮忙做这个。 我现在想知道的是能不能在微信企业号上使用socket.io? 我搜索了很久,一点有用的信息都没有,如果你知道烦请告知.多谢。

@nodejser socket.io与微信公开没有直接的关联性。 可以一起合用的。

@fengzhu1131 不错。配合ngrok可以更加方便的调试。

田大,被我逮到了~哈哈哈 自豪地采用 CNodeJS ionic

新版本发布,欢迎试用。

@lgyhitler 活捉野生田大一只

打开也太慢了

@jivi20029 是那个网站的速度慢?还是全部都很慢?

@lgyhitler
@yuu2lee4 都是正宗品牌,家养的 哈哈

回到顶部