PHP laravel框架 EasyWeChat对接企业微信服务商(开放平台)

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白名单

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值