企业微信开发文档接口API获取accesstoken和读取成员内部员工

企业微信开发文档接口API获取accesstoken和读取成员内部员工

<?php
/**
 * 企业微信 API
 */
namespace app\common;

use think\Config;
use think\Log;
use think\Cache;

class WechatqiyeApi
{
    public $corpid = '';
    public $corpsecret = '';

    public function __construct($corpid='', $corpsecret='')
    {
        if(!$corpid) $corpid = Config::get('corpid');
        if(!$corpsecret) $corpsecret = Config::get('corpsecret');
        $this->corpid          = $corpid;
        $this->corpsecret      = $corpsecret;
        return $this;
    }

    /**
     * 企业微信 获取access_token
     * https://developer.work.weixin.qq.com/document/path/91039
     * @param bool $refresh
     * @return mixed
     */
    public function getAccessToken($refresh = false)
    {
        $corpid         = $this->corpid;
        $corpsecret     = $this->corpsecret;
        $cacheKey       = "wechatqiye_getAccessToken:" . $corpid;
        $access_token   = Cache::get($cacheKey);
        if (!$access_token || $refresh) {
            $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={$corpid}&corpsecret={$corpsecret}";
            $res = json_decode($this->curlGet($url));
            Log::info($url);
            Log::info($res);
            if ($res) {
                $access_token = $res->access_token;
                if ($access_token) {
                    Cache::set($cacheKey, $access_token, $res->expires_in-100);
                }
            }
        }
        return $access_token;
    }

    /**
     * 企业微信 读取成员(单个)
     * https://developer.work.weixin.qq.com/document/path/90196
     * @param bool $refresh
     * @return mixed
     */
    public function getUserone($userid, $refresh = false)
    {
        $cacheKey       = "wechatqiye_getUserone:" . $userid;
        $userInfo       = Cache::get($cacheKey);
        if (!$userInfo || $refresh) {
            $access_token   = $this->getAccessToken();
            $url = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token={$access_token}&userid={$userid}";
            $res = json_decode($this->curlGet($url));
            Log::info($url);
            Log::info($res);
            if ($res) {
                $userInfo = $res;
                if ($res) {
                    Cache::set($cacheKey, $res);
                }
            }
        }
        return $userInfo;
    }

    public function curlGet($url)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        // 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
        // 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($curl, CURLOPT_URL, $url);

        $res = curl_exec($curl);
        if (!$res) {
            Log::error(curl_error($curl));
        }
        curl_close($curl);

        return $res;
    }





}

结束,谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值