| xqd
@@ -12,6 +12,7 @@ use App\Models\Setting;
|
|
|
use App\Models\Student;
|
|
|
use App\Models\StudentCourse;
|
|
|
use App\Models\StudentCourseTeacher;
|
|
|
+use App\Models\WeChatUser;
|
|
|
use Carbon\Carbon;
|
|
|
use GuzzleHttp\Client;
|
|
|
use Illuminate\Http\Request;
|
| xqd
@@ -24,41 +25,64 @@ class ApiController extends Controller
|
|
|
{
|
|
|
public function login(Request $request)
|
|
|
{
|
|
|
- if(empty($request->input('code')) || empty($request->input('iv')) || empty($request->input('encryptedData'))) {
|
|
|
+ if(empty($request->input('code'))) {
|
|
|
return response()->json(['status' => 'error', 'info' => '参数错误']);
|
|
|
}
|
|
|
- $code = $request->input('code');
|
|
|
- $iv = $request->input('iv');
|
|
|
- $encryptedData = $request->input('encryptedData');
|
|
|
$app = app('wechat.mini_program');
|
|
|
- $res = $app->auth->session($code);
|
|
|
+ $res = $app->auth->session($request->input('code'));
|
|
|
|
|
|
if(!isset($res['session_key'])) {
|
|
|
return response()->json(['status' => 'error', 'info' => '接口错误']);
|
|
|
}
|
|
|
|
|
|
- $info = $app->encryptor->decryptData($res['session_key'], $iv, $encryptedData);
|
|
|
-
|
|
|
- if(!isset($info['openId'])) {
|
|
|
- return response()->json(['status' => 'error', 'info' => '接口错误']);
|
|
|
- }
|
|
|
-
|
|
|
- $student = Student::firstOrCreate([
|
|
|
- 'open_id' => $info['openId']
|
|
|
+ $res = WeChatUser::firstOrCreate([
|
|
|
+ 'open_id' => $res['open_id'],
|
|
|
], [
|
|
|
- 'nickname' => $info['nickName'],
|
|
|
- 'gender' => $info['gender'],
|
|
|
- 'city' => $info['city'],
|
|
|
- 'province' => $info['province'],
|
|
|
- 'country' => $info['country'],
|
|
|
- 'avatar_url' => $info['avatarUrl'],
|
|
|
- 'name' => $info['nickName'],
|
|
|
- 'short_leave_times' => 0,
|
|
|
- 'long_leave_times' => 0,
|
|
|
+ 'code' => $request->input('code'),
|
|
|
+ 'session_key' => $res['session_key'],
|
|
|
]);
|
|
|
|
|
|
- $data = ['id' => $student->id, 'nickname' => $student->nickname, 'avatar_url' => $student->avatar_url];
|
|
|
- return response()->json(['status' => 'success', 'info' => '操作成功', 'data' => $data]);
|
|
|
+ if(empty($res)) {
|
|
|
+ return response()->json(['status' => 'error', 'info' => '数据库错误']);
|
|
|
+ }
|
|
|
+
|
|
|
+ return response()->json(['status' => 'success', 'id' => $res->id]);
|
|
|
+
|
|
|
+// if(empty($request->input('code')) || empty($request->input('iv')) || empty($request->input('encryptedData'))) {
|
|
|
+// return response()->json(['status' => 'error', 'info' => '参数错误']);
|
|
|
+// }
|
|
|
+// $code = $request->input('code');
|
|
|
+// $iv = $request->input('iv');
|
|
|
+// $encryptedData = $request->input('encryptedData');
|
|
|
+// $app = app('wechat.mini_program');
|
|
|
+// $res = $app->auth->session($code);
|
|
|
+//
|
|
|
+// if(!isset($res['session_key'])) {
|
|
|
+// return response()->json(['status' => 'error', 'info' => '接口错误']);
|
|
|
+// }
|
|
|
+//
|
|
|
+// $info = $app->encryptor->decryptData($res['session_key'], $iv, $encryptedData);
|
|
|
+//
|
|
|
+// if(!isset($info['openId'])) {
|
|
|
+// return response()->json(['status' => 'error', 'info' => '接口错误']);
|
|
|
+// }
|
|
|
+//
|
|
|
+// $student = Student::firstOrCreate([
|
|
|
+// 'open_id' => $info['openId']
|
|
|
+// ], [
|
|
|
+// 'nickname' => $info['nickName'],
|
|
|
+// 'gender' => $info['gender'],
|
|
|
+// 'city' => $info['city'],
|
|
|
+// 'province' => $info['province'],
|
|
|
+// 'country' => $info['country'],
|
|
|
+// 'avatar_url' => $info['avatarUrl'],
|
|
|
+// 'name' => $info['nickName'],
|
|
|
+// 'short_leave_times' => 0,
|
|
|
+// 'long_leave_times' => 0,
|
|
|
+// ]);
|
|
|
+//
|
|
|
+// $data = ['id' => $student->id, 'nickname' => $student->nickname, 'avatar_url' => $student->avatar_url];
|
|
|
+// return response()->json(['status' => 'success', 'info' => '操作成功', 'data' => $data]);
|
|
|
}
|
|
|
|
|
|
public function checkPosition(Request $request)
|