PHPackages                             xxy/wechat - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. xxy/wechat

ActiveLibrary[API Development](/categories/api)

xxy/wechat
==========

CorporationWechat SDK for Laravel 4 微信企业号SDK

7266PHP

Since Feb 27Pushed 11y ago3 watchersCompare

[ Source](https://github.com/hotfermat/laravel-CorporationWechat-sdk)[ Packagist](https://packagist.org/packages/xxy/wechat)[ RSS](/packages/xxy-wechat/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

laravel-CorporationWechat-sdk
=============================

[](#laravel-corporationwechat-sdk)

CorporationWechat SDK for Laravel 4 微信企业号SDK

\#微信企业号公众平台 Laravel SDK

\##使用帮助

\###0、说明

用 Laravel Facade 封装了[binsee/wechat-php-sdk](http://git.oschina.net/binsee/wechat-php-sdk)，目前只添加了 wechat.class 官方API类库，尽量做到及时更新，还未做全部测试，欢迎提交issue。

\###1、安装

请先确认已经安装Composer. 编辑 `composer.json` 文件，然后加入 `xxy/wechat`.

```
"require": {
    "xxy/wechat": "dev-master"
}

```

更新包 `composer update` 。

需要添加以下服务到系统。

打开 `app/config/app.php` ， 在`'providers'` 下添加：

```
'xxy\Wechat\WechatServiceProvider',

```

在`'aliases'` 下添加：

```
'Wechat' => 'xxy\Wechat\Facades\Wechat',

```

执行 `php artisan config:publish xxy/wechat` ,然后修改 `app/config/packages/xxy/wechat` 中的配置文件 `wechat.php` 。

把微信企业号的 'token', 'encodingaeskey', 'appid', 'appsecret' ，'agentid'改为对应的。

\##2、使用示例

```
// 获取用户列表
Route::get('/users', function(){
    return Wechat::getUserList();
});

// 回复文本消息
Route::post('/', function(){
    $weObj = new xxy\Wechat\Wechat();
    $weObj->valid(); //注意, 企业号与普通公众号不同，必须打开验证，不要注释掉
    $type = $weObj->getRev()->getRevType();
    $weObj->text("hello, it's wechat")->reply();
});
```

企业号API类库
--------

[](#企业号api类库)

调用官方API，具有更灵活的消息分类响应方式，支持链式调用操作 ；

主要功能
----

[](#主要功能)

- 接入验证
- 自动回复（文本、图片、语音、视频、音乐、图文）
- 菜单操作（查询、创建、删除）
- 部门管理（创建、更新、删除、获取部门列表）
- 成员管理（创建、更新、删除、获取成员信息，获取部门成员列表）
- 标签管理（创建、更新、删除、获取成员、添加成员、删除成员,获取标签列表）
- 媒体文件管理（上传、获取）
- 二次验证
- OAuth2（生成授权url、获取成员信息）
- 获取企业微信服务器IP列表
- 微信JSAPI授权(获取ticket、获取签名)

被动接口方法:
-------

[](#被动接口方法)

- valid() 验证连接，被动接口必须调用
-
- getRev() 获取微信服务器发来信息(不返回结果)，被动接口必须调用
- getRevData() 返回微信服务器发来的信息（数组）
- getRevPostXml() 返回微信服务器发来的原始加密xml信息
- getRevFrom() 返回消息发送者的userid
- getRevTo() 返回消息接收者的id（即公众号id，一般与等同appid一致）
- getRevAgentID() 返回接收消息的应用id
- getRevType() 返回接收消息的类型
- getRevID() 返回消息id
- getRevCtime() 返回消息发送事件
- getRevContent() 返回消息内容正文（文本型消息）
- getRevPic() 返回图片信息（图片型信息） 返回数组{'mediaid'=&gt;'','picurl'=&gt;''}
- getRevGeo() 返回地理位置（位置型信息） 返回数组{'x'=&gt;'','y'=&gt;'','scale'=&gt;'','label'=&gt;''}
- getRevEventGeo() 返回事件地理位置（事件型信息） 返回数组{'x'=&gt;'','y'=&gt;'','precision'=&gt;''}
- getRevEvent() 返回事件类型（事件型信息） 返回数组{'event'=&gt;'','key'=&gt;''}
- getRevScanInfo() 获取自定义菜单的扫码推事件信息，事件类型为`scancode_push`或`scancode_waitmsg` 返回数组array ('ScanType'=&gt;'qrcode','ScanResult'=&gt;'123123')
- getRevSendPicsInfo() 获取自定义菜单的图片发送事件信息,事件类型为`pic_sysphoto`或`pic_photo_or_album`或`pic_weixin` 数组结构见php文件内方法说明
- getRevSendGeoInfo() 获取自定义菜单的地理位置选择器事件推送，事件类型为`location_select` 数组结构见php文件内方法说明
- getRevVoice() 返回语音信息（语音型信息） 返回数组{'mediaid'=&gt;'','format'=&gt;''}
- getRevVideo() 返回视频信息（视频型信息） 返回数组{'mediaid'=&gt;'','thumbmediaid'=&gt;''}
-
- text($text) 设置文本型消息，参数：文本内容
- image($mediaid) 设置图片型消息，参数：图片的media\_id
- voice($mediaid) 设置语音型消息，参数：语音的media\_id
- video($mediaid='',$title,$description) 设置视频型消息，参数：视频的media\_id、标题、摘要
- news($newsData) 设置图文型消息，参数：数组。数组结构见php文件内方法说明
- image($mediaid) 设置图片型消息，参数：图片的media\_id
- Message($msg = '',$append = false) 设置发送的消息（一般不需要调用这个方法）
- reply() 将已经设置好的消息，回复给微信服务器

### 预定义常量列表：

[](#预定义常量列表)

```
////消息类型，使用实例调用getRevType()方法取得
    const MSGTYPE_TEXT = 'text';
    const MSGTYPE_IMAGE = 'image';
    const MSGTYPE_LOCATION = 'location';
    const MSGTYPE_LINK = 'link';    //暂不支持
    const MSGTYPE_EVENT = 'event';
    const MSGTYPE_MUSIC = 'music';    //暂不支持
    const MSGTYPE_NEWS = 'news';
    const MSGTYPE_VOICE = 'voice';
    const MSGTYPE_VIDEO = 'video';
////事件类型，使用实例调用getRevEvent()方法取得
    const EVENT_SUBSCRIBE = 'subscribe';       //订阅
    const EVENT_UNSUBSCRIBE = 'unsubscribe';   //取消订阅
    const EVENT_LOCATION = 'LOCATION';         //上报地理位置
    const EVENT_ENTER_AGENT = 'enter_agent';   //用户进入应用
    const EVENT_MENU_VIEW = 'VIEW';                     //菜单 - 点击菜单跳转链接
    const EVENT_MENU_CLICK = 'CLICK';                   //菜单 - 点击菜单拉取消息
    const EVENT_MENU_SCAN_PUSH = 'scancode_push';       //菜单 - 扫码推事件(客户端跳URL)
    const EVENT_MENU_SCAN_WAITMSG = 'scancode_waitmsg'; //菜单 - 扫码推事件(客户端不跳URL)
    const EVENT_MENU_PIC_SYS = 'pic_sysphoto';          //菜单 - 弹出系统拍照发图
    const EVENT_MENU_PIC_PHOTO = 'pic_photo_or_album';  //菜单 - 弹出拍照或者相册发图
    const EVENT_MENU_PIC_WEIXIN = 'pic_weixin';         //菜单 - 弹出微信相册发图器
    const EVENT_MENU_LOCATION = 'location_select';      //菜单 - 弹出地理位置选择器
    const EVENT_SEND_MASS = 'MASSSENDJOBFINISH';        //发送结果 - 高级群发完成
    const EVENT_SEND_TEMPLATE = 'TEMPLATESENDJOBFINISH';//发送结果 - 模板消息发送结果
```

主动接口方法：
-------

[](#主动接口方法)

- checkAuth($appid='',$appsecret='',$token='') 通用auth验证方法,也用来换取ACCESS\_TOKEN 。仅在需要手动指定access\_token时才用`$token`
- resetAuth($appid='') 清除记录的ACCESS\_TOKEN
- resetJsTicket($appid='') 删除JSAPI授权TICKET
- getJsTicket($appid='',$jsapi\_ticket='') 获取JSAPI授权TICKET
- getJsSign($url, $timestamp=0, $noncestr='', $appid='') 获取JsApi使用签名信息数组，可只提供url地址
- getSignature($arrdata,'sha1') 生成签名字串
- generateNonceStr($length=16) 获取随机字串
- createMenu($data,$agentid='') 创建菜单,参数:菜单内容数组,要创建菜单应用id
- getMenu($agentid='') 获取菜单内容,参数:要获取菜单内容的应用id
- deleteMenu($agentid='') 删除菜单,参数:要删除菜单的应用id
- uploadMedia($data, $type) 上传媒体文件,参数请看php文件内方法说明(注意上传大文件时可能需要先调用 set\_time\_limit(0) 避免超时)
- getMedia($media\_id) 根据媒体文件ID获取媒体文件,参数:媒体id
- getServerIp() 获取企业微信服务器IP地址列表 返回数组array('127.0.0.1','127.0.0.1')
- createDepartment($data) 创建部门,参数: array("name"=&gt;"邮箱产品组","parentid"=&gt;"1","order" =&gt; "1")
- updateDepartment($data) 更新部门,参数: array("id"=&gt;"1"，"name"=&gt;"邮箱产品组","parentid"=&gt;"1","order" =&gt; "1")
- deleteDepartment($id) 删除部门,参数：要删除的部门id
- moveDepartment($data) 移动部门,参数：array("department\_id" =&gt; "5","to\_parentid" =&gt; "2","to\_position" =&gt; "1")
- getDepartment() 获取部门列表，返回部门数组。其中department部门列表数据。以部门的order字段从小到大排列
- createUser($data) 创建成员，参数请看php文件内方法说明
- updateUser($data) 更新成员，参数请看php文件内方法说明
- deleteUser($userid) 删除成员，参数：员工UserID
- deleteUsers($userids) 批量删除成员，参数：员工UserID数组
- getUserInfo($userid) 获取成员信息，参数：员工UserID
- getUserList($department\_id,$fetch\_child=0,$status=0) 获取部门成员，参数：部门id，是否递归获取子部门，获取类型。

> 0获取全部员工，1获取已关注成员列表，2获取禁用成员列表，4获取未关注成员列表。status可叠加

- getUserListInfo($department\_id,$fetch\_child=0,$status=0) 获取部门成员详情，参数同上
- getUserId($code,$agentid) 根据code获取员工UserID与手机设备号，参数：Oauth2.0或者二次验证返回的code值，跳转链接时所在的企业应用ID
- sendInvite($userid,$invite\_tips='') 邀请成员关注
- createTag($data) 创建标签，参数：array("tagname" =&gt; "UI")
- updateTag($data) 更新标签，参数：array("tagid" =&gt; "1","tagname" =&gt; "UI")
- deleteTag($tagid) 删除标签，参数：标签TagID
- getTag($tagid) 获取标签成员，参数：标签TagID
- addTagUser($data) 增加标签成员，参数请看php文件内方法说明
- delTagUser($data) 删除标签成员，参数请看php文件内方法说明
- getTagList() 获取标签列表，返回标签数组
- sendMessage($data) 主动发送信息接口，参数请看php文件内方法说明
- authSucc($userid) 二次验证，参数： 员工UserID
- getOauthRedirect($callback,$state='STATE',$scope='snsapi\_base') 组合授权跳转接口url

\##6、环境 PHP &gt;= 5.4 Laravel &gt;= 4.2

\##7、License This is free software distributed under the terms of the MIT license
感谢 [binsee/wechat-php-sdk](http://git.oschina.net/binsee/wechat-php-sdk) 和 [atan/wechat](https://github.com/tanshiqi/laravel-wechat)

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/e62939cdab8e33d8b473a1a571fcdb4b9441ea4dfca5d7231c5f50f8691b61c8?d=identicon)[hotfermat](/maintainers/hotfermat)

---

Top Contributors

[![hotfermat](https://avatars.githubusercontent.com/u/6321075?v=4)](https://github.com/hotfermat "hotfermat (12 commits)")

### Embed Badge

![Health badge](/badges/xxy-wechat/health.svg)

```
[![Health](https://phpackages.com/badges/xxy-wechat/health.svg)](https://phpackages.com/packages/xxy-wechat)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[facebook/php-business-sdk

PHP SDK for Facebook Business

90821.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

74513.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

265103.1M454](/packages/google-gax)[google/common-protos

Google API Common Protos for PHP

173103.7M50](/packages/google-common-protos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
