NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

V RoundlyConsulting\Webhooks\Events, všetky final readonly; žiadna nenesie tajný kľúč, podpis ani surové telo. Audit môžete zapisovať priamo z nich:

UdalosťKedyObsahuje
WebhookReceivedNa workeri pred handlerom — pri každom pokuse behuwebhook (InboundWebhook: sanitizovaný obsah, id doručenia, endpoint, isReplay, run, attempt; isFirstAttempt())
WebhookRejectedPožiadavka na známy endpoint bola odmietnutá (kroky 2–8); odmietnutia pre limit raz za oknoendpointId, reason (RejectionReason), status, ip, userAgent
WebhookProcessingFailedHandler zlyhal pri poslednom pokuse alebo bol endpoint zmazaný pred spracovaním doručeniadelivery, errorCode (handler_failed / endpoint_deleted)
DeliverySucceededOdpoveď 2xxdelivery, attempt
DeliveryFailedKaždý zlyhaný pokusdelivery, attempt, final, nextAttemptAt
EndpointDisabledAutomaticky (zlyhania po sebe, 410) alebo ručneendpoint (outbound), reason (DisableReason)
EndpointSecretRotatedRotáciaendpoint, direction, graceEndsAt

Neznáme kľúče nevyvolajú nič, takže cudzí nemôže zahlcovať vaše listenery; duplicita nevyvolá nič.

Raz na pokus — WebhookReceived

WebhookReceived sa vyvolá pri každom pokuse behu — handler, ktorý vyhodí výnimku, sa opakuje a opakovanie udalosť vyvolá znova. Listener, ktorý má konať raz na doručenie, skontroluje pokus:

Event::listen(function (WebhookReceived $event): void {
    if (! $event->webhook->isFirstAttempt()) {
        return;   // a retry of a run whose handler threw
    }

    Cache::increment('webhooks.received.'.$event->webhook->type);
});

Listenery vo fronte

WebhookProcessingFailed, DeliverySucceeded, DeliveryFailed, EndpointDisabled a EndpointSecretRotated používajú SerializesModels: listener ShouldQueue dostane modely v stave, v akom sú pri jeho spustení. WebhookReceived nesie sanitizovaný obsah a listener vo fronte by ho zapísal do úložiska frontu nešifrovaný, mimo payloads.encrypt. Listenery na WebhookReceived nechajte synchrónne, alebo do frontu pošlite len id doručenia a doručenie načítajte v jobe:

Event::listen(function (WebhookReceived $event): void {
    SyncInvoice::dispatch($event->webhook->deliveryId);   // the job loads it again
});

// in SyncInvoice::handle()
$delivery = Webhooks::inbound()->deliveries()->where('public_id', $this->deliveryId)->firstOrFail();

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

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

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.