Saving incoming data from Stripe

Hello everyone,
I am trying to create a payment gateway using Stripe. My solution is based on this tutorial.

I think I have everything set up well, but I’m not sure if Stripe is returning the required data that I would like to store in a database and work with afterwards.

In the tutorial, after a successful payment is made in the terminal after the stripe listen command, the following is the output:

However, my output looks like this:

If the return values from webhook are correct anyway, which I’m not sure. How should I continue to work with them within the handle event to save them?

Thanks to IO.inspect I was expecting some data in the terminal, where for example %Stripe.Event{type: "invoice.paid"}

defmodule MyAppWeb.StripeHandler do
  import MyAppWeb.Gettext

  @behaviour Stripe.WebhookHandler

  @impl true
  def handle_event(%Stripe.Event{type: "invoice.paid"} = event) do
    IO.inspect(gettext("Payment Success"))
    IO.inspect(event)
    :ok
  end
end

I have added the handler in the endpoint

  plug Stripe.WebhookPlug,
    at: "/webhook/stripe",
    handler: MyAppWeb.StripeHandler,
    secret: {Application, :get_env, [:stripity_stripe, :stripe_webhook_secret]}

It’s about storing data like customer_id, emai, etc that I can see in the payment in my Stripe account.

I am still a newbie and this is my first attempt at a payment gateway. Thanks a lot for any advice.

Have a nice day. :slight_smile: