12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- namespace App\Http\Controllers\WeChat;
- use App\Models\Student;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Log;
- class ApiController extends Controller
- {
- public function login(Request $request)
- {
- 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)
- {
-
- }
- }
|