Bonjour les amis,
J'essaie d'installer webhook de stripe sur un projet symfony 4 pour écouter (En back-end) les évenements notamment le succès d'un paiement.
Et executer du code apres la recéption de l'évenement.
Voici le code de ma méthode
/**
*
* @Route("/confirmation_paiement", name="confirmation_paiement")
*
*/
public function confirmationPaiement(Request $request){
$endpoint_secret = self::WEBHOOK_TEST_KEY;
$payload = @file_get_contents('php://input');
$sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
$event = null;
try {
$event = \Stripe\Webhook::constructEvent(
$payload, $endpoint_secret
);
//, $sig_header
} catch(\UnexpectedValueException $e) {
// Invalid payload
return new Response(Response::HTTP_BAD_REQUEST);
exit();
} catch(\Stripe\Exception\SignatureVerificationException $e) {
// Invalid signature
return new Response(Response::HTTP_BAD_REQUEST);
exit();
}
// Handle the event
switch ($event->type) {
case 'payment_intent.succeeded':
$paymentIntent = $event->data->object; // contains a StripePaymentIntent
handlePaymentIntentSucceeded($paymentIntent);
break;
case 'payment_method.attached':
$paymentMethod = $event->data->object; // contains a StripePaymentMethod
handlePaymentMethodAttached($paymentMethod);
break;
// ... handle other event types
default:
// Unexpected event type
return new Response(Response::HTTP_BAD_REQUEST);
exit();
}
return new Response(Response::HTTP_OK);
}
Le problème est que Stripe reconnais bien l'url mais ne reçois aucune réponse de la méthode appelé, alors que je lui envoie bien une réponse http de type de 200.
Et deuxièment où et comment je doit configurer la variable 'HTTP_STRIPE_SIGNATURE'
Je viens d'avancer sur le sujet
$_SERVER['HTTP_STRIPE_SIGNATURE']
Correspondrait à une valeur dans l'entête http qui aurait pour clé Stripe-Signature
Après avoir fait un cours sur le protocole Http et compris le fonctionnement de ce dernier.
J'ai refais la requête, et dans header je ne vois aucune valeur qui corresponds à la clé Stripe-Signature.
Je ne sais pas si cela est dû au fait que je sois en mode test ou pas !