apiService = $apiService; } public function mount() { $this->loading = true; // Get query parameters from the request $this->paymentId = request()->query('paymentId'); $this->token = request()->query('token'); $this->payerId = request()->query('PayerID'); $payload = [ 'paymentId' => $this->paymentId, 'token' => $this->token, 'PayerID' => $this->payerId, ]; try { $response = $this->apiService->post('paypalExecute', $payload); if ($response && isset($response['status']) && $response['status'] === 200) { $this->status = 200; $this->userInfo = $response['data']; Log::info('Top-up success', ['source' => 'PublicTopSuccessPage']); } } catch (\Exception $e) { $this->status = $e->getCode() ?: 500; $this->message = $e->getMessage(); Log::error('Top-up failed', ['error' => $e->getMessage(), 'source' => 'PublicTopSuccessPage']); } finally { $this->loading = false; } } public function backHandler() { $agent = new Agent(); if ($agent->is('iOS')) { // Trigger iOS native handler $this->dispatchBrowserEvent('ios-top-up-failed'); } elseif ($agent->is('Android')) { // Trigger Android native handler $this->dispatchBrowserEvent('android-top-up-failed'); } } public function backHandlerSuccess() { $agent = new Agent(); if ($agent->is('iOS')) { // Trigger iOS native handler $this->dispatchBrowserEvent('ios-top-up-success'); } elseif ($agent->is('Android')) { // Trigger Android native handler (corrected from Failed to Success) $this->dispatchBrowserEvent('android-top-up-success'); } } public function render() { return view('livewire.public-top-success-page')->layout('layouts.app'); } }