xxy / wechat
CorporationWechat SDK for Laravel 4 微信企业号SDK
Requires
- php: >=5.4.0
- illuminate/support: 4.2.*
This package is not auto-updated.
Last update: 2024-11-13 09:08:59 UTC
README
CorporationWechat SDK for Laravel 4 微信企业号SDK
#微信企业号公众平台 Laravel SDK
##使用帮助
###0、说明
用 Laravel Facade 封装了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,具有更灵活的消息分类响应方式,支持链式调用操作 ;
主要功能
- 接入验证
- 自动回复(文本、图片、语音、视频、音乐、图文)
- 菜单操作(查询、创建、删除)
- 部门管理(创建、更新、删除、获取部门列表)
- 成员管理(创建、更新、删除、获取成员信息,获取部门成员列表)
- 标签管理(创建、更新、删除、获取成员、添加成员、删除成员,获取标签列表)
- 媒体文件管理(上传、获取)
- 二次验证
- 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'=>'','picurl'=>''}
- getRevGeo() 返回地理位置(位置型信息) 返回数组{'x'=>'','y'=>'','scale'=>'','label'=>''}
- getRevEventGeo() 返回事件地理位置(事件型信息) 返回数组{'x'=>'','y'=>'','precision'=>''}
- getRevEvent() 返回事件类型(事件型信息) 返回数组{'event'=>'','key'=>''}
- getRevScanInfo() 获取自定义菜单的扫码推事件信息,事件类型为
scancode_push
或scancode_waitmsg
返回数组array ('ScanType'=>'qrcode','ScanResult'=>'123123') - getRevSendPicsInfo() 获取自定义菜单的图片发送事件信息,事件类型为
pic_sysphoto
或pic_photo_or_album
或pic_weixin
数组结构见php文件内方法说明 - getRevSendGeoInfo() 获取自定义菜单的地理位置选择器事件推送,事件类型为
location_select
数组结构见php文件内方法说明 - getRevVoice() 返回语音信息(语音型信息) 返回数组{'mediaid'=>'','format'=>''}
- getRevVideo() 返回视频信息(视频型信息) 返回数组{'mediaid'=>'','thumbmediaid'=>''}
- 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"=>"邮箱产品组","parentid"=>"1","order" => "1")
- updateDepartment($data) 更新部门,参数: array("id"=>"1","name"=>"邮箱产品组","parentid"=>"1","order" => "1")
- deleteDepartment($id) 删除部门,参数:要删除的部门id
- moveDepartment($data) 移动部门,参数:array("department_id" => "5","to_parentid" => "2","to_position" => "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" => "UI")
- updateTag($data) 更新标签,参数:array("tagid" => "1","tagname" => "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 >= 5.4 Laravel >= 4.2
##7、License
This is free software distributed under the terms of the MIT license
感谢 binsee/wechat-php-sdk 和 atan/wechat