---
title: "Enumy a výnimky — Purchases for Laravel | Roundly"
description: "Enumy Status a ResultType s pomocníkmi pre výberové zoznamy a validáciu, ako aj typy výnimiek balíka."
url: https://roundly-consulting.com/sk/open-source/navody/purchases-for-laravel/enumy-a-vynimky
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Purchases for Laravel](https://roundly-consulting.com/sk/open-source/navody/purchases-for-laravel.md)

# Enumy a výnimky

Status je normalizovaný stav ukladaný na nákupoch a predplatnom:

| Prípad | Hodnota | Zachová prístup |
| --- | --- | --- |
| `New` | `new` | Nie |
| `Pending` | `pending` | Nie |
| `Processing` | `processing` | Nie |
| `Completed` | `completed` | Áno |
| `Failed` | `failed` | Nie |
| `Canceled` | `canceled` | Nie |
| `InGracePeriod` | `in_grace` | Áno |
| `OnHold` | `on_hold` | Nie |
| `Refunded` | `refunded` | Nie |

Status::isActive() vracia true len pre Completed a InGracePeriod — stavy, ktoré zachovávajú nárok na prístup. Riadi sa ním Subscription::isActive() aj scope active().

## ResultType

| Prípad | Hodnota | Význam |
| --- | --- | --- |
| `Purchase` | `purchase` | Jednorazový nákup — uloží sa ako Purchase. |
| `Subscription` | `subscription` | Predplatné — uloží sa ako Subscription. |
| `Refund` | `refund` | Refundácia alebo chargeback — uloží sa ako PurchaseRefund. |
| `Notification` | `notification` | Notifikácia obchodu bez transakcie. |
| `Unknown` | `unknown` | Nerozpoznaný payload. |

## Výberové zoznamy a validácia

Oba enumy používajú trait Helpers z enums-for-laravel, takže filtre a formuláre v administrácii nepotrebujú vlastné polia ani jazykové súbory:

```php
use RoundlyConsulting\Purchases\Enum\Status;

Status::options();          // list of {value, label, name} option DTOs for select inputs
Status::toOptions();        // ['completed' => 'Completed', 'in_grace' => 'In Grace', …]
Status::labels();           // human strings incl. "In Grace" / "On Hold" (no lang files)
Status::validationRule();   // "in:new,pending,processing,completed,failed,canceled,in_grace,on_hold,refunded"

$status = Status::tryFromLabel('On Hold');   // Status::OnHold
$status?->isActive();                        // false — an account hold keeps no access
```

## Výnimky

| Výnimka | Kedy nastane |
| --- | --- |
| `VerificationException` | Zlyhá overenie podpisu alebo prístupových údajov — aj pri certifikáte Apple mimo obdobia platnosti — alebo klient pošle do callback() poskytovateľa chybný vstup: chybný identifikátor alebo taký, ktorý obchod odmietne s 4xx (getPrevious() uchová RequestException obchodu). Webhook routa vráti 400. |
| `InvalidConfigurationException` | Hodnota v konfigurácii je nepoužiteľná — certificate\_clock\_skew mimo 0–3600, trvanie, ktoré nie je celé číslo, URL či názov fronty, ktoré nie sú reťazcom, poskytovateľ, ktorý neimplementuje Provider. Zámerne nie VerificationException — chybná konfigurácia nie je podvrhnutá notifikácia. |
| `UnknownProviderException` | Vyhľadáva sa poskytovateľ, ktorý nie je zaregistrovaný. |
| `InvalidProviderNotificationException` | Payload notifikácie sa nedá dekódovať — alebo replay() notifikáciu odmietne (neuložená alebo soft-delete zmazaná, notifikácia poskytovateľa s neovereným podpisom alebo taká, ktorú už nemožno obnoviť). |

Všetky dedia z RoundlyConsulting\\Purchases\\Exceptions\\Exception, ktorá pridáva pomenovaný konštruktor because(string $message, int $code = 0):

```php
use RoundlyConsulting\Purchases\Exceptions\UnknownProviderException;
use RoundlyConsulting\Purchases\Exceptions\VerificationException;
use RoundlyConsulting\Purchases\Facades\Purchases;

try {
    $result = Purchases::result('stripe', $request);
} catch (VerificationException $e) {
    abort(400, $e->getMessage());
} catch (UnknownProviderException) {
    abort(404);
}
```

Výnimkou sú preklepy v konfigurácii, ktoré zachytí package toolkit: nečitateľný prepínač zapnuté/vypnuté (okrem autentifikácie pushov), key\_type mimo bigint, uuid a ulid a trieda v models.\*, ktorá nie je modelom balíka ani jeho podtriedou, vyhodia RoundlyConsulting\\PackageToolkit\\Exceptions\\InvalidConfigurationException, ktorá nededí zo základnej výnimky balíka. Rovnako ako vlastná InvalidConfigurationException balíka uvádza názov kľúča.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/purchases-for-laravel.md)
