diff --git a/src/app/Http/Controllers/API/V4/PaymentsController.php b/src/app/Http/Controllers/API/V4/PaymentsController.php --- a/src/app/Http/Controllers/API/V4/PaymentsController.php +++ b/src/app/Http/Controllers/API/V4/PaymentsController.php @@ -156,7 +156,7 @@ // TODO: allow comma as a decimal point? if ($v->fails()) { - return $v->errors(); + return $v->errors()->toArray(); } $amount = (int) ($request->amount * 100); diff --git a/src/app/OpenVidu/Room.php b/src/app/OpenVidu/Room.php --- a/src/app/OpenVidu/Room.php +++ b/src/app/OpenVidu/Room.php @@ -170,24 +170,32 @@ * Create a OpenVidu session (connection) token * * @return array|null Token data on success, NULL otherwise + * @throws \Exception if session does not exist */ public function getSessionToken($role = self::ROLE_PUBLISHER): ?array { - $response = $this->client()->request( - 'POST', - 'tokens', - [ - 'json' => [ - 'session' => $this->session_id, - 'role' => $role - ] + if (!$this->session_id) { + throw new \Exception("The room session does not exist"); + } + + $url = 'sessions/' . $this->session_id . '/connection'; + $post = [ + 'json' => [ + 'role' => $role ] - ); + ]; + + $response = $this->client()->request('POST', $url, $post); if ($response->getStatusCode() == 200) { $json = json_decode($response->getBody(), true); - return $json; + return [ + 'session' => $this->session_id, + 'token' => $json['token'], + 'role' => $json['role'], + 'connectionId' => $json['id'], + ]; } return null; diff --git a/src/app/Providers/Payment/Stripe.php b/src/app/Providers/Payment/Stripe.php --- a/src/app/Providers/Payment/Stripe.php +++ b/src/app/Providers/Payment/Stripe.php @@ -357,7 +357,7 @@ if ($status == self::STATUS_PAID) { $payment->wallet->setSetting('stripe_mandate_id', $intent->id); - $threshold = intval($payment->wallet->getSetting('mandate_balance') * 100); + $threshold = intval((float) $payment->wallet->getSetting('mandate_balance') * 100); // Top-up the wallet if balance is below the threshold if ($payment->wallet->balance < $threshold && $payment->status != self::STATUS_PAID) {