处理网关的考勤系统功能路由前缀,及完善请求处理公共类的逻辑
This commit is contained in:
parent
936eb10eec
commit
c5f301b9ad
@ -2,7 +2,7 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Controller\Wechat;
|
||||
namespace App\Controller\PunchCard\Wechat;
|
||||
|
||||
use App\Controller\BaseController;
|
||||
use App\Exception\BusinessException;
|
||||
@ -10,12 +10,12 @@ use app\Constants\Wechat\AuthErrorCode;
|
||||
use App\Service\Wechat\AuthService;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use Hyperf\HttpServer\Annotation\Controller;
|
||||
use Hyperf\HttpServer\Annotation\PostMapping;
|
||||
use Hyperf\HttpServer\Annotation\RequestMapping;
|
||||
|
||||
/**
|
||||
* 微信授权处理控制器
|
||||
*/
|
||||
#[Controller]
|
||||
#[Controller(prefix: "kq")]
|
||||
class AuthController extends BaseController
|
||||
{
|
||||
#[Inject]
|
||||
@ -26,7 +26,7 @@ class AuthController extends BaseController
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
#[PostMapping(path: "auth/code2OpenID")]
|
||||
#[RequestMapping(path: "auth/code2OpenID", methods: "get,post")]
|
||||
public function code2OpenID() : array
|
||||
{
|
||||
$code = $this->request->input('code', '');
|
@ -7,19 +7,46 @@ namespace App\Helper;
|
||||
use GuzzleHttp\Client;
|
||||
use Hyperf\Guzzle\HandlerStackFactory;
|
||||
|
||||
/**
|
||||
* 请求处理公共类
|
||||
*/
|
||||
class Curl
|
||||
{
|
||||
public static function get(string $url) : array
|
||||
/**
|
||||
* 获取Guzzle客户端实例(使用连接池)
|
||||
*
|
||||
* @return Client
|
||||
*/
|
||||
protected static function getClient() : Client
|
||||
{
|
||||
$factory = new HandlerStackFactory();
|
||||
$stack = $factory->create();
|
||||
|
||||
$client = make(Client::class, [
|
||||
return make(Client::class, [
|
||||
'config' => [
|
||||
'handler' => $stack,
|
||||
]
|
||||
]);
|
||||
$response = $client->get($url, ['timeout' => 2]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送Get请求
|
||||
*
|
||||
* @param string $url
|
||||
* @param array $headers
|
||||
* @return array
|
||||
* @throws \GuzzleHttp\Exception\GuzzleException
|
||||
*/
|
||||
public static function get(string $url, array $headers = []) : array
|
||||
{
|
||||
$client = self::getClient();
|
||||
$options = ['timeout' => 2, 'verify' => false];
|
||||
|
||||
if (!empty($headers)) {
|
||||
$options['headers'] = $headers;
|
||||
}
|
||||
|
||||
$response = $client->get($url, $options);
|
||||
|
||||
if ($response->getStatusCode() === 200) {
|
||||
return json_decode($response->getBody()->getContents(), true);
|
||||
@ -28,7 +55,30 @@ class Curl
|
||||
return [];
|
||||
}
|
||||
|
||||
public static function post(string $url, array $data = [])
|
||||
/**
|
||||
* 发送POST请求(application/x-www-form-urlencoded)
|
||||
*
|
||||
* @param string $url
|
||||
* @param array $data
|
||||
* @param array $headers
|
||||
* @return array
|
||||
* @throws \GuzzleHttp\Exception\GuzzleException
|
||||
*/
|
||||
public static function post(string $url, array $data = [], array $headers = []) : array
|
||||
{
|
||||
$client = self::getClient();
|
||||
$options = ['timeout' => 2, 'verify' => false, 'form_params' => $data];
|
||||
|
||||
if (!empty($headers)) {
|
||||
$options['headers'] = $headers;
|
||||
}
|
||||
|
||||
$response = $client->post($url, $options);
|
||||
|
||||
if ($response->getStatusCode() === 200) {
|
||||
return json_decode($response->getBody()->getContents(), true);
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
}
|
@ -8,17 +8,40 @@ use App\JsonRpc\UserExternalServiceInterface;
|
||||
use Hyperf\Config\Annotation\Value;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
|
||||
/**
|
||||
* 微信授权处理服务层
|
||||
*/
|
||||
class AuthService
|
||||
{
|
||||
/**
|
||||
* 考勤系统小程序APPID
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
#[Value("app.wechat_punch_card_appid")]
|
||||
protected string $appid;
|
||||
|
||||
/**
|
||||
* 考勤系统小程序APPSecret
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
#[Value("app.wechat_punch_card_secret")]
|
||||
protected string $secret;
|
||||
|
||||
/**
|
||||
* 用户中心对外RPC服务
|
||||
*
|
||||
* @var UserExternalServiceInterface
|
||||
*/
|
||||
#[Inject]
|
||||
protected UserExternalServiceInterface $userExternalService;
|
||||
|
||||
/**
|
||||
* 微信通过code获取session信息请求地址
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected string $wechat_auth_url = 'https://api.weixin.qq.com/sns/jscode2session';
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user