🏦 Stripe Payments

888

Let's see how you can setup Stripe in WeWeb so that your web-app users can make payments.

Installing the Plugin

To add the Stripe Plugin to your WeWeb project, go to the "Plugins" > "Extensions" menu:

Once you have added the Stripe Extension, you will be invited to set it up with your production API keys:

🔥 Pro Tip 🔥

If you want to work with test data in Stripe, you can also add test API keys. Better be safe than sorry! 😅

Once you have set up the Extension, you will have access to the payment form Element.

The Payment Form

To display a Stripe payment form on your web app, you'll need to add a Form Container with a submit button on the Canvas:

Then, you'll want to remove the Input so you're only left with the "Button" Element and add the "Stripe - Payment" Element inside the Form Container you added above:

In the Stripe payment element's "Settings", you'll need a client secret.

To get a client secret, we first need to create a client intent.

We do this by creating a Workflow that triggers on page load.

In the first step, we create a payment intent, decide which payment methods the client can use and which Stripe products they can purchase (the "Price ID" will come from your Stripe account):

We will then test Action 1 because we need to bind its result in Action 2.

In step two, we setup a "Change variable value" Action to update a `payment_intent_client_secret` Variable (type Query) with the result of the previous Action:

🔥 Pro Tip 🔥

The query Variable must be named `payment_intent_client_secret` in WeWeb because that's the name of the query string Stripe will pass when creating the client secret. If you choose a different name in WeWeb, we want be able to recognize the query string provided by Stripe.

Once our Workflow on Page is complete, we will go back to our "Stripe - Payment" Element and bind the `payment_intent_client_secret` Variable to the Client secret Setting:

Finally, we will setup a Workflow to confirm the payment action and redirect the user to a Checkout page when they submit the payment form:

And fake a payment to trigger the Workflow and go to the checkout page:

🔥 Pro Tip 🔥

In order to move forward with the tutorial, you will need to fake a payment intent with a fake card. Read more about simulating payments in the Stripe documentation.

The Checkout Page

On the checkout page, we'll create a Workflow that triggers on page to retrieve the user's payment intent:

Action 1: Retrieve the payment intent

We will add the "Retrieve payment intent" Action and bind this to the `payment_intent_client_secret` Variable we created earlier

It will look something like this:

If you've named your Variable correctly and faked a payment with a fake Stripe card, you should be able to see the the `payment_intent_client_secret` query string in the URL, which is retrieved by WeWeb in the `payment_intent_client_secret` Variable:

Action 2: Store the payment intent

After testing Action 1, we will create an Action 2 to store the payment intent in a Variable of type Object.

We will choose a "Change variable value" Action and bind it to the result of the previous Action in the Workflow:

Again, we need to test this Action if we want to update the Variable.

Then, we could use the information from the Variable to style the Checkout page.

For example: