This template is designed to help you integrate Stripe payment processing into a WordPress site. It provides a backend service using FastAPI to create and manage Stripe checkout sessions, and frontend code to embed the Stripe checkout experience into your WordPress page. This guide will walk you through the steps to set up and use this template on the Lazy platform.
To begin using this template, click "Start with this Template" on the Lazy platform. This will pre-populate the code in the Lazy Builder interface, so you won't need to copy or paste any code manually.
Before testing the app, you'll need to set up some environment secrets within the Lazy Builder:
These values are not stored in your operating system but are set in the Environment Secrets tab within the Lazy Builder.
Once you have set up the environment secrets, press the "Test" button in the Lazy Builder. This will deploy the app and launch the Lazy CLI. If the code requires any user input, you will be prompted to provide it through the Lazy CLI.
If the code requires user input, you will be prompted for it after pressing the "Test" button. Follow the instructions in the Lazy CLI to enter the necessary information.
After deployment, Lazy will provide you with a dedicated server link to use the API. If you're using FastAPI, Lazy will also provide a link to the API documentation.
To integrate the backend service into your WordPress site, you'll need to add the provided frontend code to your WordPress payment page. Here's how:
</body>
tag."PUBLISHABLE STRIPE API KEY"
with your actual publishable API key from Stripe."LAZY SERVER LINK"
with the endpoint URL of your published app that you received after pressing the "Test" button."PRICE_ID"
with the actual price ID you want to use for the transaction. You can find this in your Stripe dashboard under Products.Here is the script you need to add to your WordPress page:
<script src="https://js.stripe.com/v3/"></script>
<script>
const stripe = Stripe("PUBLISHABLE STRIPE API KEY");
initialize();
function getUTMParameters() {
const params = new URLSearchParams(window.location.search);
return {
utm_source: params.get('utm_source') || '',
utm_medium: params.get('utm_medium') || '',
utm_campaign: params.get('utm_campaign') || '',
utm_term: params.get('utm_term') || '',
utm_content: params.get('utm_content') || ''
};
}
async function initialize() {
const months = 1;
const utmParams = getUTMParameters();
const response = await fetch("LAZY SERVER LINK/create-checkout-session", {
method: "POST",
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
months,
price: 'PRICE_ID',
...utmParams
})
});
const { clientSecret } = await response.json();
const checkout = await stripe.initEmbeddedCheckout({
clientSecret,
});
checkout.mount('#checkout');
}
</script>
After adding this script to your WordPress page, your custom Stripe payment page will be ready to accept payments.
Remember to test the payment flow thoroughly to ensure everything is working as expected before going live with your new payment page.