BCard - Documentation technique

StripeWebhookController extends AbstractController
in package

Réception des webhooks Stripe.

Point d'entrée public appelé par Stripe pour notifier l'application de l'issue des paiements. La signature de chaque requête est vérifiée avec le secret de webhook avant tout traitement ; les statuts des paiements, commandes et cartes physiques sont ensuite synchronisés en base.

Table of Contents

Properties

$entityManager  : EntityManagerInterface
$stripeSecretKey  : string
$webhookSecretKey  : string

Methods

__construct()  : mixed
handleWebhook()  : Response
Vérifie la signature du webhook et aiguille l'événement Stripe.
handleCheckoutSessionCompleted()  : void
Confirme une commande dont la session de paiement Stripe est réglée.
handlePaymentIntentFailed()  : void
Marque comme rejeté un paiement dont l'intention Stripe a échoué.
handlePaymentIntentSucceeded()  : void
Marque comme abouti un paiement dont l'intention Stripe a réussi.

Properties

Methods

__construct()

public __construct(EntityManagerInterface $entityManager, string $stripeSecretKey, string $webhookSecretKey) : mixed
Parameters
$entityManager : EntityManagerInterface

Gestionnaire d'entités Doctrine.

$stripeSecretKey : string

Clé secrète de l'API Stripe.

$webhookSecretKey : string

Secret de signature des webhooks.

handleWebhook()

Vérifie la signature du webhook et aiguille l'événement Stripe.

public handleWebhook(Request $request) : Response

Événements traités : checkout.session.completed, payment_intent.succeeded et payment_intent.payment_failed. Tout autre type est ignoré silencieusement, avec une réponse 200 pour éviter les renvois de Stripe.

Route : /stripe/webhook (POST), nom stripe_webhook.

Parameters
$request : Request

Requête brute de Stripe, avec l'en-tête stripe-signature.

Attributes
#[Route]
'/stripe/webhook'
$name: 'stripe_webhook'
$methods: ['POST']
Return values
Response

200 si l'événement a été accepté, 400 si la charge utile ou la signature est invalide.

handleCheckoutSessionCompleted()

Confirme une commande dont la session de paiement Stripe est réglée.

private handleCheckoutSessionCompleted(Session|object $session) : void

La commande est identifiée par la métadonnée order_id de la session. Si le paiement est bien paid, la commande passe en attente de traitement, le paiement associé est marqué comme abouti avec son payment_intent, et les cartes physiques en attente de règlement passent au statut confirmé.

Parameters
$session : Session|object

Session de paiement Stripe.

handlePaymentIntentFailed()

Marque comme rejeté un paiement dont l'intention Stripe a échoué.

private handlePaymentIntentFailed(PaymentIntent|object $paymentIntent) : void

Le paiement est retrouvé par son stripePaymentIntentId ; son statut et celui de la commande associée passent à « rejeté ».

Parameters
$paymentIntent : PaymentIntent|object

Intention de paiement Stripe.

handlePaymentIntentSucceeded()

Marque comme abouti un paiement dont l'intention Stripe a réussi.

private handlePaymentIntentSucceeded(PaymentIntent|object $paymentIntent) : void

Le paiement est retrouvé par son stripePaymentIntentId et n'est mis à jour que s'il est encore en attente. La commande associée passe à CONFIRMED et ses cartes physiques en attente de règlement sont confirmées.

Parameters
$paymentIntent : PaymentIntent|object

Intention de paiement Stripe.


        
On this page

Search results