Create and manage Stripe Checkout Sessions with Managed Payments.
This is the primary integration point - all Managed Payments sales
must go through Checkout Sessions with managed_payments: %{enabled: true}.
Supports both one-time payments (mode: "payment") and
subscriptions (mode: "subscription").
Example - subscription
{:ok, session} = StripeManaged.CheckoutSession.create(%{
line_items: [%{price: "price_abc", quantity: 1}],
mode: "subscription",
managed_payments: %{enabled: true},
success_url: "https://example.com/success"
})
# Redirect to session["url"]Example - one-time payment
{:ok, session} = StripeManaged.CheckoutSession.create(%{
line_items: [%{price: "price_xyz", quantity: 1}],
mode: "payment",
managed_payments: %{enabled: true},
success_url: "https://example.com/thanks"
})
Summary
Functions
Creates a new Checkout Session.
Expires a checkout session so it can no longer be completed.
Lists checkout sessions.
Retrieves line items for a session.
Retrieves a session by ID.
Functions
@spec create( map(), keyword() ) :: StripeManaged.Client.response()
Creates a new Checkout Session.
Required params:
line_items- list of%{price: price_id, quantity: n}mode-"subscription"or"payment"managed_payments-%{enabled: true}success_url- redirect URL after successful payment
Optional params:
cancel_url- redirect URL if customer cancelscustomer- existing customer IDcustomer_email- pre-fill emailmetadata- key-value metadatasaved_payment_method_options- saved payment method configpayment_method_collection-"if_required"for free trials
@spec expire( String.t(), keyword() ) :: StripeManaged.Client.response()
Expires a checkout session so it can no longer be completed.
@spec list( map(), keyword() ) :: StripeManaged.Client.response()
Lists checkout sessions.
@spec list_line_items(String.t(), map(), keyword()) :: StripeManaged.Client.response()
Retrieves line items for a session.
@spec retrieve( String.t(), keyword() ) :: StripeManaged.Client.response()
Retrieves a session by ID.