You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
780 B
34 lines
780 B
<?php
|
|
|
|
namespace WeWork\Http;
|
|
|
|
use GuzzleHttp\Client;
|
|
use GuzzleHttp\HandlerStack;
|
|
use Psr\Log\LoggerInterface;
|
|
use WeWork\ApiCache\Token;
|
|
|
|
class ClientFactory
|
|
{
|
|
/**
|
|
* @param LoggerInterface $logger
|
|
* @param Token $token
|
|
* @return Client
|
|
*/
|
|
public static function create(LoggerInterface $logger, $token = null)
|
|
{
|
|
$stack = HandlerStack::create();
|
|
|
|
$stack->push(Middleware::retry($logger));
|
|
$stack->push(Middleware::response());
|
|
$stack->push(Middleware::log($logger));
|
|
|
|
if ($token instanceof Token) {
|
|
$stack->push(Middleware::auth($token));
|
|
}
|
|
|
|
return new Client([
|
|
'base_uri' => 'https://qyapi.weixin.qq.com/cgi-bin/',
|
|
'handler' => $stack
|
|
]);
|
|
}
|
|
}
|
|
|