0ab2c8d0aab0d7b35fb65fb64b8bf36c42cabab4
src/Service/StripeWebhookService.php (nouveau):
- createAllWebhooks(baseUrl): cree 4 webhook endpoints dans Stripe:
- /webhooks/stripe/main/light: customer.created/updated/deleted,
product.created/updated, price.created/updated, invoice.created/
finalized/payment_succeeded/payment_failed, subscription.created/
updated/deleted
- /webhooks/stripe/main/instant: checkout.session.completed/expired,
payment_intent.succeeded/payment_failed, charge.succeeded/failed/
refunded/dispute.created, invoice.paid/payment_failed,
customer.subscription.trial_will_end/deleted
- /webhooks/stripe/connect/light: account.updated/application.
authorized/deauthorized, transfer.created/updated, payout.created/
paid/failed
- /webhooks/stripe/connect/instant: payment_intent.succeeded/
payment_failed, charge.succeeded/failed/refunded,
checkout.session.completed
- Verification si le webhook existe deja par URL avant creation
(pas de doublon)
- listWebhooks(): liste tous les webhooks du compte
- deleteWebhook(): supprime un webhook par ID
src/Controller/WebhookStripeController.php (nouveau):
- 4 routes POST sans authentification (firewall webhooks):
/webhooks/stripe/main/light, /webhooks/stripe/main/instant,
/webhooks/stripe/connect/light, /webhooks/stripe/connect/instant
- Verification de signature Stripe via Stripe\Webhook::constructEvent()
- Log de chaque evenement avec channel, type et event_id
- TODO pour dispatcher vers les handlers specifiques
src/Controller/Admin/SyncController.php:
- Nouvelle route POST /admin/sync/stripe/webhooks: prend une URL
de base en parametre, appelle createAllWebhooks(), affiche les
resultats (cree/existe deja) en flash messages
templates/admin/sync/index.html.twig:
- Nouveau bloc "Webhooks Stripe" (bleu) avec champ URL de base
(pre-rempli avec l'URL courante), bouton "Creer les webhooks",
et liste des 4 endpoints avec leurs evenements
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
PHP
66.2%
Twig
28.7%
JavaScript
4%
Jinja
0.5%
Makefile
0.3%
Other
0.2%