处理网关的考勤系统功能路由前缀,及完善请求处理公共类的逻辑
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