Hello everyone!
I have implemented Google OAuth 2.0 with Streamlit, and now I want to use Stripe as a payment processor.
Are there any people here who have implemented a payment processor with Streamlit? Not necessarily Stripe, although that would be great, considering it’s my current implementation.
I would like to know how you managed the payment states provided by Stripe. How can I capture the information whether a payment has been made or not? I’m a bit stuck at this stage. Perhaps you can guide me towards some specific resources for Streamlit. Thank you very much!
1 Like
Hey @Cosmin_Andrei,
You can definitely integrate Stripe with Streamlit via the Stripe API – have you checked out Stripe’s API docs? I’d imagine that after a payment has been completed, you’d want to store that info using session state.
1 Like
Hi @Caroline I’m looking to do something similar to @Cosmin_Andrei with Stripe. Is there a step by step tutorial available somewhere demonstrating how to do something like this:
- User uploads a file or types in a URL link etc. and hits Submit button
- User goes through Stripe payment workflow
- Upon notification of successful payment, Streamlit displays a custom response based on the file or URL the user input
Hey @jaypinho and @Cosmin_Andrei,
@Tyler actually released a Streamlit component that allows you to create a Stripe paywall for your app – check it out!
Tweet / GitHub
2 Likes
Thanks @Caroline ! @Tyler was super helpful as I was building a custom implementation for my Streamlit app.
For anyone curious, my requirements were:
- I needed to accept one-off (not subscription) variable-priced (meaning they’re not set prices known in advance) payments via Stripe
- I needed Stripe to redirect back to the app upon payment completion so that the product can be delivered after the app has verified that the payment went through
For me the best solution turned out to be Stripe Checkout. Its API allows you to generate a Checkout session at any price, store arbitrary metadata in the Checkout object, and specify a redirect URL upon successful payment.
So what my app now does is:
- User puts in a podcast URL they want to summarize
- App calculates a price and generates a Stripe Checkout session with a custom transaction ID (which is included in the Checkout
metadata
object)
- User fills out the Stripe payment form
- Stripe redirects back to the app with a query param that includes the transaction ID
- App hits Stripe API to find Checkout session with matching transaction_id in the
metadata
object
- If it matches, app summarizes the episode
App is here if anyone’s curious: https://podcast.streamlit.app/
1 Like