validated(); $smsCodeService->validate( $input['phone'], SmsCode::TYPE_REGISTER, $input['verify_code'] ); $inviter = null; if ( $request->filled('code') && is_null($inviter = UserInfo::where('code', $input['code'])->first()) ) { throw new BizException(__('Invalid invitation code')); } $time = now(); $ip = $request->realIp(); try { DB::beginTransaction(); $user = User::create( array_merge($input, [ 'phone_verified_at' => $time, 'register_ip' => $ip, 'last_login_at' => $time, 'last_login_ip' => $ip, ]), $inviter ); DB::commit(); } catch (Throwable $e) { DB::rollBack(); report($e); throw new BizException(__('Registration failed, please try again')); } return response()->json( $user->createDeviceToken(Device::UNIAPP) ); } }