Stripe webhook in local

48 views Asked by At

I want to know how stripe webhooks in local works, i do all of the things i had to do. And i don't receive the POST request, but in the event listener with

stripe listen --forward-to localhost:8888/website/webhook.php

and i do the test payment

and nothing appear

    require_once './vendor/autoload.php';
    
    \Stripe\Stripe::setApiKey($apiKey);
    // Replace this endpoint secret with your endpoint's unique secret
    // If you are testing with the CLI, find the secret by running 'stripe listen'
    // If you are using an endpoint defined with the API or dashboard, look in your webhook settings
    // at https://dashboard.stripe.com/webhooks
    $endpoint_secret = '$endpointSecret';
    
    $payload = file_get_contents('php://input');
    $event = null;
    
    try {
      $event = \Stripe\Event::constructFrom(
        json_decode($payload, true)
      );
    } catch(\UnexpectedValueException $e) {
      // Invalid payload
      echo '⚠️  Webhook error while parsing basic request.';
      http_response_code(400);
      exit();
    }
    if ($endpoint_secret) {
      // Only verify the event if there is an endpoint secret defined
      // Otherwise use the basic decoded event
      $sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
      try {
        $event = \Stripe\Webhook::constructEvent(
          $payload, $sig_header, $endpoint_secret
        );
      } catch(\Stripe\Exception\SignatureVerificationException $e) {
        // Invalid signature
        echo '⚠️  Webhook error while validating signature.';
        http_response_code(400);
        exit();
      }
    }
    
    // Handle the event
    switch ($event->type) {
      case 'payment_intent.succeeded':
        $paymentIntent = $event->data->object; // contains a \Stripe\PaymentIntent
        // Then define and call a method to handle the successful payment intent.
        // handlePaymentIntentSucceeded($paymentIntent);
        break;
      case 'payment_method.attached':
        $paymentMethod = $event->data->object; // contains a \Stripe\PaymentMethod
        // Then define and call a method to handle the successful attachment of a PaymentMethod.
        // handlePaymentMethodAttached($paymentMethod);
        break;
      default:
        // Unexpected event type
        error_log('Received unknown event type');
    }
    
    http_response_code(200);

    var_dump($event);

PHP tells me that constructForm param must be a type of array.

I want to verify if the payment has succeeded with webhooks in local.

0

There are 0 answers