可能是目前最优雅的微信 SDK 了 overtrue/wechat

分享 overtrue ⋅ 于 2015-03-15 11:25:28 ⋅ 最后回复由 Destiny 2016-09-06 15:28:50 ⋅ 19854 阅读

请不要着急喷这个无耻的标题。

网上充斥着各种微信 SDK,但是找了一圈,发现没有一个想用,因为没有满足本项目存在后的各种优点:

  • 命名不那么乱七八糟;
  • 隐藏开发者不需要关注的细节;
  • 方法使用更优雅,不再那么恶心的使用恶心的命名譬如:getXML4Image...;
  • 统一的错误处理,让你更方便的掌控异常;
  • 自定义缓存方式;
  • 符合 PSR-4 标准,你可以各种方便的与你的框架集成;
  • 高度抽象的消息类,免去各种拼json与xml的痛苦。

这里大部分人都用Laravel吧,都觉得她的语法很赞吧?那么你肯定也会喜欢我的这个 SDK 了(偷笑)。

Laravel 5 版已经出来啦!

先举一个处理用户消息的例子吧:

<?php

use Overtrue\Wechat\Wechat;

$options = [
    'appId'          => 'Your app id',
    'secret'         => 'Your secret'
    'token'          => 'Your token',
    'encodingAESKey' => 'Your encoding AES Key' // optional
];

$wechat = Wechat::make($options);

$server = $wechat->on('message', function($message){
    error_log("收到来自'{$message['FromUserName']}'的消息:{$message['Content']}");
});

$result = $wechat->serve();

echo $result;

怎么样?是不是感觉不错?(没感觉的赶紧关掉浏览器的这个 tab 就当啥也没有发生过一样...)

期待各位大拿的支持!(记得star哦)

https://github.com/overtrue/wechat

点这里关注我的微博

本帖已被设为精华帖!
回复数量: 24
  • MrJing MOD
    2015-03-15 14:16:48

    :+1:

  • overtrue MOD https://github.com/overtrue
    2015-03-15 23:08:51

    @MrJing 谢谢!

  • 杨进春
    2015-03-16 00:11:36

    记得完善

  • overtrue MOD https://github.com/overtrue
    2015-03-16 13:24:43

    @杨进春 求贡献代码

  • ganto
    2015-03-18 12:38:27

    @overtrue 真棒,有没有基于这个的微信管理系统开源啊 :smile:

  • remenbo
    2015-03-18 14:28:54

    为什么不使用百度编辑器

  • huprince love life,love coding!
    2015-03-18 16:07:41

    @overtrue 在Laravel项目中具体如何使用自定义菜单,如何调用这种主动接口方法,能给个具体例子吗?谢谢了

  • star001007
    2015-03-19 10:07:16

    赞一个

  • overtrue MOD https://github.com/overtrue
    2015-03-19 10:27:23

    @huprince 自定义菜单,通常是你自己的网站后台,比如有一个管理微信号的功能的时候,在后台各种选择或者填写生成菜单以后,调用你的控制器比如叫:setWeichatMenu():

    <?php
    
    use Overtrue\Wechat\Wechat;
    
    class WechatController {
         //...
        public function setWechatMenu() {
                $wechat = Wechat::make(Config::get('wechat'));// 读取微信配置
    
                $menus = Input::get('menu'); // menu 是后台管理中心表单post过来的一个数组
    
                $target = []; // 
    
                // 构建你的菜单
                foreach ($menus as $menu) {
                   $target = $wechat->menu->make($menu['name'], $menu['type'], $menu['key']);
                }
    
                $wechat->menu->set($target);
    
                return Redirect::back()->withMessage('菜单设置成功!');
        }
         //...
    } 
  • overtrue MOD https://github.com/overtrue
    2015-03-19 10:27:49

    @ganto 你试着找一下吧,目前没见到一个好的

  • overtrue MOD https://github.com/overtrue
    2015-03-19 10:54:27

    @huprince 这里需要注意的是,$wechat->menu->set($target); 失败时会抛出异常,你可以try..catch 或者 参考: https://github.com/overtrue/wechat/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95

  • overtrue MOD https://github.com/overtrue
    2015-03-19 11:36:00

    @huprince 我更新了wiki: 自定义菜单 添加了Laravel 示例

  • huprince love life,love coding!
    2015-03-19 11:41:18

    @overtrue 谢谢了,我试一下

  • vicvinc
    2015-03-24 16:41:19

    赞!!!

  • jacobsun 不学习,心会老
    2015-03-30 15:55:30

    已Fork!!!

  • eclanp
    2015-08-08 13:19:19

    一直提示TOKEN验证失败不知道是怎么回事,有遇到的吗?

  • overtrue MOD https://github.com/overtrue
    2015-08-08 15:23:45

    @eclanp 看一下你的服务器日志

  • huprince love life,love coding!
    2015-09-28 16:25:05

    @overtrue 请问一下,想做企业号开发,这个能用吗?或者修改起来容易吗?

  • overtrue MOD https://github.com/overtrue
    2015-10-10 13:39:26

    @huprince 大概看过,其实用这个改改用的话成本还是相对较低的,花点时间看一下,就可以改改用了

  • huprince love life,love coding!
    2015-10-10 17:11:14

    @overtrue 已经修改在用了

  • gaofei1974
    2015-11-15 08:34:22

    @overtrue 我也遇到TOKEN验证失败的问题,我用的是ubuntu 14.04,服务器日志怎么看啊

  • phpdesigner
    2015-12-07 15:18:19

    @overtrue 请教下,access token 如何改为redis获取呢?

  • fanyoujian
    2016-05-13 15:52:33

    提点小意见,异常能不能已状态码的形式返回吗?我遇到过直接就抛出异常,程序报错。如果统一返回状态码会不会更好啊? 忘群主采纳。

  • Destiny 将来的你一定会感谢现在努力的自己!
    2016-09-06 15:28:50

    :+1: 已用 laravel-wechat

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter