1、安装EasyWeChat
composer require overtrue/wechat:~4.0 -vvv
2、添加一个接口,并且在控制器中调用企业微信第三方回调协议方法,这里使用的Laravel框架,EasyWeChat文档地址 https://www.easywechat.com/docs/4.x/open-work/server
路由
Route::prefix('openWorkWeChat')->group(function () {
Route::match(['get', 'post'], 'callback', [OpenWorkWeChatController::class, 'callback']); // 指令回调
});
controller
<?php
namespace App\Http\Controllers\Common\V1;
use App\Services\OpenWorkWeChat\OpenWorkWeChatService;
use Illuminate\Http\Request;
class OpenWorkWeChatController extends BaseController
{
public function __construct(OpenWorkWeChatService $openWorkWeChatService)
{
$this->openWorkWeChatService = $openWorkWeChatService;
}
public function callback(Request $request)
{
$this->openWorkWeChatService->callback();
return 'success';
}
}
service,可以根据不同的InfoType来进行不同的业务处理,需要注意的是:企业微信对回调响应时间有限制,最好回调后的业务处理使用队列,否则会由于时间过长导致错误
<?php
namespace App\Services\OpenWorkWeChat;
use EasyWeChat\Factory;
use Illuminate\Support\Facades\Log;
class OpenWorkWeChatService
{
protected $config;
protected $app;
public function __construct()
{
$this->config = [
'corp_id' => '服务商的corpid',
'secret' => '服务商的secret,在服务商管理后台可见',
'suite_id' => '以ww或wx开头应用id',
'suite_secret' => '应用secret',
'token' => '应用的Token',
'aes_key' => '应用的EncodingAESKey',
'reg_template_id' => '注册定制化模板ID',
'redirect_uri_install' => '安装应用的回调url(可选)',
'redirect_uri_single' => '单点登录回调url (可选)',
'redirect_uri_oauth' => '网页授权第三方回调url (可选)',
];
$this->app = Factory::openWork($this->config);
}
public function callback()
{
$server = $this->app->server;
$server->push(function ($message) {
switch ($message['InfoType']) {
//推送suite_ticket
case 'suite_ticket':
break;
//授权成功通知
case 'create_auth':
break;
//变更授权通知
case 'cancel_auth':
break;
//通讯录事件通知
case 'change_contact':
switch ($message['ChangeType']) {
case 'create_user':
return '新增成员事件';
break;
case 'update_user':
return '更新成员事件';
break;
case 'delete_user':
return '删除成员事件';
break;
case 'create_party':
return '新增部门事件';
break;
case 'update_party':
return '更新部门事件';
break;
case 'delete_party':
return '删除部门事件';
break;
case 'update_tag':
return '标签成员变更事件';
break;
}
break;
default:
return 'fail';
break;
}
});
$response = $server->serve();
$response->send();
return true;
}
}
3、登录服务商后台->应用管理设置,选择应用填写对应的回调url,之后可以进行应用安装测试,打个日志记录一下回调信息,文档地址 https://open.work.weixin.qq.com/api/doc/90001/90142/90594
4、一般还需要进行获取授权企业等的业务处理,所以还需要配置ip白名单,在服务商信息->基本信息->IP白名单