服务端
企业微信第三方服务端推送和公众号一样,请参考:公众号:服务端
第三方平台推送事件处理
企业微信第三方数据推送的有以下事件:
- suite_ticket 推送
suite_ticket
- 授权成功
create_auth
- 授权变更
change_auth
- 授权取消
cancel_auth
- 通讯录变更(InfoType)
change_contact
- ChangeType
- 成员变更
- 新增成员
create_user
- 更新成员
update_user
- 删除成员
delete_user
- 新增成员
- 部门变更
- 新增部门
create_party
- 更新部门
update_party
- 删除部门
delete_party
- 新增部门
- 标签变更
- 成员标签变更
update_tag
- 成员标签变更
- 成员变更
- ChangeType
- 共享应用事件回调
share_agent_change
- 重置永久授权码通知
reset_permanent_code
- 应用管理员变更通知
change_app_admin
内置消息处理器
消息处理器详细说明见:公众号开发 - 服务端一节
授权成功事件
php
$server->handleAuthCreated(function($message, \Closure $next) {
// ...
return $next($message);
});
授权变更事件
php
$server->handleAuthChanged(function($message, \Closure $next) {
// ...
return $next($message);
});
授权取消事件
php
$server->handleAuthCancelled(function($message, \Closure $next) {
// ...
return $next($message);
});
通讯录变更事件
php
$server->handleContactChanged(function($message, \Closure $next) {
// ...
return $next($message);
});
成员变更事件
php
// 新增成员
$server->handleUserCreated(function($message, \Closure $next) {
// ...
return $next($message);
});
// 更新成员
$server->handleUserUpdated(function($message, \Closure $next) {
// ...
return $next($message);
});
// 删除成员
$server->handleUserDeleted(function($message, \Closure $next) {
// ...
return $next($message);
});
部门变更事件
php
// 新增部门
$server->handlePartyCreated(function($message, \Closure $next) {
// ...
return $next($message);
});
// 更新部门
$server->handlePartyUpdated(function($message, \Closure $next) {
// ...
return $next($message);
});
// 删除部门
$server->handlePartyDeleted(function($message, \Closure $next) {
// ...
return $next($message);
});
成员标签变更事件
php
$server->handleUserTagUpdated(function($message, \Closure $next) {
// ...
return $next($message);
});
共享应用事件
php
$server->handleShareAgentChanged(function($message, \Closure $next) {
// ...
return $next($message);
});
重置永久授权码通知
php
$server->handleResetPermanentCode(function($message, \Closure $next) {
// ...
return $next($message);
});
应用管理员变更通知
php
$server->handleChangeAppAdmin(function($message, \Closure $next) {
// ...
return $next($message);
});
suite_ticket 推送事件
此推送已经默认处理(使用缓存存储和刷新),可以直接忽略。
注意:如果你自行处理了 SuiteTicket 推送,你必须同时设置 ProviderAccessToken 类,因为 ProviderAccessToken 依赖它。
php
$server->handleSuiteTicketRefreshed(callable | string $handler);
其它事件处理
以上便捷方法都只处理了特定事件,其它状态,可以通过自定义事件处理中间件的形式处理:
php
$server->with(function($message, \Closure $next) {
// $message->event_type 事件类型
return $next($message);
});
自助处理推送消息
你可以通过下面的方式获取来自微信服务器的推送消息:
php
$message = $server->getRequestMessage(); // 原始消息
你也可以获取解密后的消息 6.5.0+
php
$message = $server->getDecryptedMessage();
$message
为一个 EasyWeChat\OpenWork\Message
实例。
你可以在处理完逻辑后自行创建一个响应,当然,在不同的框架里,响应写法也不一样,请自行实现。