PHPackages                             atan/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. [Utility &amp; Helpers](/categories/utility)
4. /
5. atan/wechat

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

atan/wechat
===========

Wechat SDK for Laravel 4

2514814[4 issues](https://github.com/tanshiqi/laravel-wechat/issues)PHP

Since May 7Pushed 11y ago5 watchersCompare

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

READMEChangelogDependenciesVersions (1)Used By (0)

本项目已停止开发

\#微信公众平台 Laravel SDK

\##使用帮助

\###0、说明

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

\###1、安装

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

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

```

更新包 `composer update` 。

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

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

```
'Atan\Wechat\WechatServiceProvider',

```

在`'aliases'` 下添加：

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

```

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

把微信公众号的 'token', 'encodingaeskey', 'appid', 'appsecret' 改为对应的。

\##2、使用

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

// 回复文本消息
Route::post('/', function(){
    $weObj = new Atan\Wechat\Wechat();
    $type = $weObj->getRev()->getRevType();
    $weObj->text("hello, it's wechat")->reply();
});
```

\##3、主要功能

- 接入验证 **（初级权限）**
- 自动回复（文本、图片、语音、视频、音乐、图文） **（初级权限）**
- 菜单操作（查询、创建、删除） **（菜单权限）**
- 客服消息（文本、图片、语音、视频、音乐、图文） **（认证权限）**
- 二维码（创建临时、永久二维码，获取二维码URL） **（服务号、认证权限）**
- 长链接转短链接接口 **（服务号、认证权限）**
- 分组操作（查询、创建、修改、移动用户到分组） **（认证权限）**
- 网页授权（基本授权，用户信息授权） **（服务号、认证权限）**
- 用户信息（查询用户基本信息、获取关注者列表） **（认证权限）**
- 多客服功能（客服管理、获取客服记录、客服会话管理） **（认证权限）**
- 媒体文件（上传、获取） **（认证权限）**
- 调用地址组件 **（支付权限）**
- 生成订单签名数据 **（支付权限）**
- 订单成功回调 **（支付权限）**
- 发货通知 **（支付权限）**
- 支付订单查询 **（支付权限）**
- 高级群发 **（认证权限）**
- 模板消息（设置所属行业、添加模板、发送模板消息） **（服务号、认证权限）**
- 卡券管理（创建、修改、删除、发放、门店管理等） **（认证权限）**
- 语义理解 **（服务号、认证权限）**
- 获取微信服务器IP列表 **（初级权限）**

\##4、被动接口方法

- valid() 验证连接，被动接口处于加密模式时必须调用
- getRev() 获取微信服务器发来信息(不返回结果)，被动接口必须调用
- getRevData() 返回微信服务器发来的信息（数组）
- getRevFrom() 返回消息发送者的userid
- getRevTo() 返回消息接收者的id（即公众号id）
- getRevType() 返回接收消息的类型
- getRevID() 返回消息id
- getRevCtime() 返回消息发送事件
- getRevContent() 返回消息内容正文或语音识别结果（文本型）
- getRevPic() 返回图片信息（图片型信息） 返回数组{'mediaid'=&gt;'','picurl'=&gt;''}
- getRevLink() 接收消息链接（链接型信息） 返回数组{'url'=&gt;'','title'=&gt;'','description'=&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;''}
- getRevTicket() 返回接收TICKET（扫描带参数二维码,关注或SCAN事件） 返回二维码的ticket值
- getRevSceneId() 返回二维码的场景值（扫描带参数二维码的关注事件） 返回二维码的参数值
- getRevTplMsgID() 返回主动推送的消息ID（群发或模板消息事件） 返回MsgID值
- getRevStatus() 返回模板消息发送状态（模板消息事件） 返回文本：success(成功)|failed:user block(用户拒绝接收)|failed: system failed(发送失败（非用户拒绝）)
- getRevResult() 返回群发或模板消息发送结果（群发或模板消息事件） 返回数组，内容依事件类型而不同，参考开发文档中群发、模板消息推送事件
- getRevKFCreate() 返回多客服-接入会话的客服账号（多客服-接入会话事件） 返回文本型
- getRevKFClose() 返回多客服-处理会话的客服账号（多客服-接入会话事件） 返回文本型
- getRevKFSwitch() 返回多客服-转接会话信息（多客服-转接会话事件） 返回数组 {'FromKfAccount' =&gt; '','ToKfAccount' =&gt; ''}
- getRevCardPass() 返回卡券-审核通过的卡券ID（卡券-卡券审核事件） 返回文本型
- getRevCardGet() 返回卡券-用户领取卡券的相关信息（卡券-领取卡券事件） 返回数组{'CardId' =&gt; '','IsGiveByFriend' =&gt; '','UserCardCode' =&gt; ''}
- getRevCardDel() 返回卡券-用户删除卡券的相关信息（卡券-删除卡券事件） 返回数组{'CardId' =&gt; '','UserCardCode' =&gt; ''}
-
- text($text) 设置文本型消息，参数：文本内容
- image($mediaid) 设置图片型消息，参数：图片的media\_id
- voice($mediaid) 设置语音型消息，参数：语音的media\_id
- video($mediaid='',$title,$description) 设置视频型消息，参数：视频的media\_id、标题、摘要
- music($title,$desc,$musicurl,$hgmusicurl='',$thumbmediaid='') 设置回复音乐，参数：音乐标题、音乐描述、音乐链接、高音质链接、缩略图的媒体id
- news($newsData) 设置图文型消息，参数：数组。数组结构见php文件内方法说明
- image($mediaid) 设置图片型消息，参数：图片的media\_id
- Message($msg = '',$append = false) 设置发送的消息（一般不需要调用这个方法）
- transfer\_customer\_service($customer\_account = '') 转接多客服，如不指定客服可不提供参数，参数：指定客服的账号
- reply() 将以上已经设置好的消息，回复给微信服务器

\##5、主动接口方法:

- checkAuth($appid,$appsecret,$token) 此处传入公众后台高级接口提供的appid和appsecret, 或者手动指定$token为access\_token。函数将返回access\_token操作令牌
- resetAuth($appid='') 删除验证数据
- resetJsTicket($appid='') 删除JSAPI授权TICKET
- getJsTicket($appid='',$jsapi\_ticket='') 获取JSAPI授权TICKET
- getJsSign($url, $timeStamp, $nonceStr, $appid='') 获取JsApi使用签名
- createMenu($data) 创建菜单 $data菜单结构详见 **[自定义菜单创建接口](http://mp.weixin.qq.com/wiki/index.php?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95%E5%88%9B%E5%BB%BA%E6%8E%A5%E5%8F%A3)**
- getServerIp() 获取微信服务器IP地址列表 返回数组array('127.0.0.1','127.0.0.1')
- getMenu() 获取菜单
- deleteMenu() 删除菜单
- uploadMedia($data, $type) 上传多媒体文件(注意上传大文件时可能需要先调用 set\_time\_limit(0) 避免超时)
- getMedia() 获取接收到的音频、视频媒体文件
- uploadMpVideo($data) 上传视频素材，当需要群发视频时，必须使用此方法得到的MediaID，否则无法显示
- uploadArticles($data) 上传图文消息素材
- sendMassMessage($data) 高级群发消息
- sendGroupMassMessage($data) 高级群发消息（全体或分组群发）
- deleteMassMessage($msg\_id) 删除群发图文消息
- previewMassMessage($data) 预览群发消息
- queryMassMessage($msg\_id) 查询群发消息发送状态
- getQRCode($scene\_id,$type=0,$expire=1800) 获取推广二维码ticket字串
- getQRUrl($ticket) 获取二维码图片地址
- getShortUrl($long\_url) 长链接转短链接接口
- getUserList($next\_openid) 批量获取关注用户列表
- getUserInfo($openid) 获取关注者详细信息
- updateUserRemark($openid,$remark) 设置用户备注名
- getGroup() 获取用户分组列表
- getUserGroup($openid) 获取用户所在分组
- createGroup($name) 新增自定分组
- updateGroup($groupid,$name) 更改分组名称
- updateGroupMembers($groupid,$openid) 移动用户分组
- sendCustomMessage($data) 发送客服消息
- getOauthRedirect($callback,$state,$scope) 获取网页授权oAuth跳转地址
- getOauthAccessToken() 通过回调的code获取网页授权access\_token
- getOauthRefreshToken($refresh\_token) 通过refresh\_token对access\_token续期
- getOauthUserinfo($access\_token,$openid) 通过网页授权的access\_token获取用户资料
- getOauthAuth($access\_token,$openid) 检验授权凭证access\_token是否有效
- getSignature($arrdata,'sha1') 生成签名字串
- generateNonceStr($length) 获取随机字串
- createPackage($out\_trade\_no,$body,$total\_fee,$notify\_url,$spbill\_create\_ip,$fee\_type=1,$bank\_type="WX",$input\_charset="UTF-8",$time\_start="",$time\_expire="",$transport\_fee="",$product\_fee="",$goods\_tag="",$attach="") 生成订单package字符串
- getPaySign($package, $timeStamp, $nonceStr) 支付签名(paySign)生成方法
- checkOrderSignature($orderxml='') 回调通知签名验证
- sendPayDeliverNotify($openid,$transid,$out\_trade\_no,$status=1,$msg='ok') 发货通知
- getPayOrder($out\_trade\_no) 查询订单信息
- getAddrSign($url, $timeStamp, $nonceStr, $user\_token='') 获取收货地址JS的签名
- setTMIndustry($id1,$id2='') 模板消息，设置所属行业
- addTemplateMessage($tpl\_id) 模板消息，添加消息模板
- sendTemplateMessage($data) 发送模板消息
- getCustomServiceMessage($data) 获取多客服会话记录
- transfer\_customer\_service($customer\_account) 转发多客服消息
- getCustomServiceKFlist() 获取多客服客服基本信息
- getCustomServiceOnlineKFlist() 获取多客服在线客服接待信息
- createKFSession($openid,$kf\_account,$text='') 创建指定多客服会话
- closeKFSession($openid,$kf\_account,$text='') 关闭指定多客服会话
- getKFSession($openid) 获取用户会话状态
- getKFSessionlist($kf\_account) 获取指定客服的会话列表
- getKFSessionWait() 获取未接入会话列表
- addKFAccount($account,$nickname,$password) 添加客服账号
- updateKFAccount($account,$nickname,$password) 修改客服账号信息
- deleteKFAccount($account) 删除客服账号
- setKFHeadImg($account,$imgfile) 上传客服头像
- querySemantic($uid,$query,$category,$latitude=0,$longitude=0,$city="",$region="") 语义理解接口 参数含义及返回的json内容请查看 **[微信语义理解接口](http://mp.weixin.qq.com/wiki/index.php?title=%E8%AF%AD%E4%B9%89%E7%90%86%E8%A7%A3)**
- createCard($data) 创建卡券
- updateCard($data) 修改卡券
- delCard($card\_id) 删除卡券
- getCardInfo($card\_id) 查询卡券详情
- getCardColors() 获取颜色列表
- getCardLocations() 拉取门店列表
- addCardLocations($data) 批量导入门店信息
- createCardQrcode($card\_id) 生成卡券二维码
- consumeCardCode($code) 消耗 code
- decryptCardCode($encrypt\_code) code 解码
- checkCardCode($code) 获取 code 的有效性
- getCardIdList($data) 批量查询卡列表
- updateCardCode($code,$code\_id,$new\_code) 更改 code
- unavailableCardCode($code) 设置卡券失效\*\*(不可逆)\*\*
- modifyCardStock($data) 库存修改
- activateMemberCard($data) 激活/绑定会员卡，参数结构请参看卡券开发文档(6.1.1 激活/绑定会员卡)章节
- updateMemberCard($data) 会员卡交易，参数结构请参看卡券开发文档(6.1.2 会员卡交易)章节
- updateLuckyMoney($code,$balance,$card\_id='') 更新红包金额
- setCardTestWhiteList($openid=array(),$user=array()) 设置卡券测试白名单

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

\##7、License This is free software distributed under the terms of the MIT license
感谢 [dodgepudding/wechat-php-sdk](https://github.com/dodgepudding/wechat-php-sdk) 和 [huanghua581/laravel-wechat-sdk](https://github.com/huanghua581/laravel-wechat-sdk)

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community13

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/ea7698386e2994d922e102c92d2f2779e984299663b31cf6b60d0bc94be151c3?d=identicon)[atan](/maintainers/atan)

---

Top Contributors

[![tanshiqi](https://avatars.githubusercontent.com/u/1159607?v=4)](https://github.com/tanshiqi "tanshiqi (8 commits)")

### Embed Badge

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

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

###  Alternatives

[tholu/php-packer

A PHP version of Packer, JavaScript obfuscation library originally created by Dean Edwards

137441.2k5](/packages/tholu-php-packer)[evoweb/extender

Extending extbase domain models like a pro with extender

11260.3k6](/packages/evoweb-extender)[daixianceng/yii2-smser

Yii2 SMS extension

862.9k1](/packages/daixianceng-yii2-smser)

PHPackages © 2026

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