Просмотр исходного кода

feat(wechat): add session endpoint for user controller

- Added new route `/user/session` to handle session requests
- Implemented `session` method in UserController to exchange code for session
- Utilized MiniApp service to get utils for code to session conversion
- Returns successful response with session data from WeChat API
runphp 4 месяцев назад
Родитель
Сommit
15a2186b40
2 измененных файлов с 14 добавлено и 0 удалено
  1. 1 0
      route/api.php
  2. 13 0
      src/Controller/UserController.php

+ 1 - 0
route/api.php

@@ -9,4 +9,5 @@ use think\facade\Route;
 
 Route::group('user', function () {
     Route::get('phone_number', [UserController::class, 'phoneNumber']);
+    Route::get('session', [UserController::class, 'session']);
 })->middleware(['auth']);

+ 13 - 0
src/Controller/UserController.php

@@ -4,6 +4,7 @@ namespace SixShop\Wechat\Controller;
 
 use app\model\User;
 use SixShop\Wechat\Entity\ExtensionWechatUserEntity;
+use SixShop\Wechat\Service\MiniApp;
 use think\Request;
 use think\Response;
 use function SixShop\Core\success_response;
@@ -33,4 +34,16 @@ class UserController
             'mobile' => $user->mobile,
         ]);
     }
+
+    public function session(Request $request): Response
+    {
+        $params = $request->get([
+            'code/s',
+            'appid/s' => null,
+        ]);
+        $miniApp = app()->make(MiniApp::class, [$params['appid']]);
+        $utils = $miniApp->getUtils();
+        $response = $utils->codeToSession($params['code']);
+        return success_response($response);
+    }
 }