轻墨随笔

企业微信代开发应用的基本流程及实现

一、企业微信代开发应用的基本流程

企业微信中除了系统提供的应用以及上架应用商店的第三方应用外,也可以使用自己开发的应用,不过多数企业都不具备开发能力,只能采用代开发的形式进行定制。就给大家分享一下企业微信代开发应用的基本流程,为大家定制应用提供参考。

1.1什么是代开发应用

如我方是科技服务公司A,有一家公司B,B提出想在自己的企业微信工作台上,上线一个xxx功能,但是B公司没有自己的研发人员去实现完成,且也没有服务器去支撑。所以找到了A。A通过自己家的企业微信,创建一个模板,让B的管理员扫码授权后,A的研发人员可以在模板下开发应用,提交上线到B的企业微信中。这就是代开发应用。
微信官方的解释:当前第三方服务商为企业代开发自建应用时,需要线下获取企业的各类密钥数据,流程复杂、管理成本高且权限获取有安全合规风险。为了帮助服务商更加高效地、安全地为企业提供应用代开发服务,企业微信新增自建应用代开发模式,即:企业可通过扫码授权的方式,授权第三方服务商代开发自建应用。 官方文档:https://developer.work.weixin.qq.com/document/path/97112

1.2代开发流程 申请服务商代开发

企业微信->工作台->企业微信服务助手

登录企业微信管理后台

二、开发过程

2.1 前期准备工作
composer require overtrue/wechat:~4.0 -vvv
2.2 创建代开发模板


<?php
namespace app\wechat\controller;

use EasyWeChat\Factory;
use think\facade\Db;
use think\facade\Request;
require_once root_path() .'extend/weworkapi/callback/WXBizMsgCrypt.php';  // 引入加解密类
//代开发模板回调URL
class Weworkr
{
    private $config = [
        'corp_id'              => 'wx55****6e2c', //服务商的id
        'secret'               => 'SAjiYfunx***********0YC23Kzos3voC1EM',//模板Secret
        'token'                => 'D4nRd****Cg4rM194V',  //模版Token
        'aes_key'              => 'bAPm******xBszuAiIzExDSn6N3Nv1A8US', //模版EncodingAESKey
        'log' => [
            'level' => 'debug',
            'file' => '/www/wwwroot/wh.******.com/public/easywechat.log',
        ],
    ];


    /**
     * 代开发模板回调URL
     */
    public function index()
    {

        //代开发模板回调URL
        $app = Factory::openWork($this->config);
        $server = $app->server;

        $server->push(function ($message) use($app) {
            switch ($message['InfoType']) {
                //推送suite_ticket
                case 'suite_ticket':

                    Db::name('company_information')
                        ->where('suite_id',$message['SuiteId'])
                        ->update(['suite_ticket'=>$message['SuiteTicket']]);

                    return 'success';
                    break;
                //授权成功通知
                case 'create_auth':
                    $data['auth_code']=$message['AuthCode'];
                    $data['suite_id']=$message['SuiteId'];
                    $data['create_time']=time();

                    Db::name('company_information')->insert($data);
                    return 'success';
                    break;
                //变更授权通知
                case 'cancel_auth':
                    return '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();

    }
}

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »