Stripe Checkout toevoegen aan een aangepaste PHP-website (zonder plugins)
Stripe is de schoonste betaal-API die er is, en hem rechtstreeks in PHP inbouwen betekent geen maandelijkse SaaS-kosten, geen WooCommerce-ballast en geen transactiekosten van Shopify. Wat volgt is de exacte implementatie die draait in echte klantenwinkels van BuiltToWinWeb: pure PHP, de officiële Stripe-SDK, veilige webhooks en geautomatiseerde e-mailbevestigingen. Je ziet hoe de onderdelen in elkaar passen — checkout-sessie, redirect, webhook-verificatie, afhandeling — zodat je echte betalingen kunt aannemen zonder een deel af te staan aan een platform. Alles hier is productiecode, geen wegwerpdemo.
Waarom native PHP + Stripe elke paginabouwer overtreft
Shopify rekent 0,5–2% per transactie bovenop de eigen kosten van Stripe. WooCommerce voegt 14+ plugin-afhankelijkheden toe die de LCP van uw checkout-pagina vertragen naar 3,8 s.
- Nul platformtransactiekosten – alleen Stripe's 2,9% + 30¢
- Checkout-pagina Lighthouse-score: 98 vs. Shopify's typische 61
- Volledige webhookcontrole – aangepaste afhandeling, voorraad, e-mail
- Geen terugkerende abonnementskosten voor het e-commerceplatform
- U bezit de code, host overal, migreer vrij
Stap 1 — Stripe PHP SDK installeren
Composer is de schoonste aanpak.
composer require stripe/stripe-php
Laad het bovenaan uw checkout-script:
require_once __DIR__ . '/vendor/autoload.php';
\Stripe\Stripe::setApiKey(getenv('STRIPE_SECRET_KEY'));
Stap 2 — Checkout-sessie aanmaken (server-side)
Zet uw geheime sleutel nooit in de browser. Maak een server-side endpoint aan waaraan de frontend POST't:
<?php
$session = \Stripe\Checkout\Session::create(['payment_method_types'=>['card'],'line_items'=>[['price_data'=>['currency'=>'usd','unit_amount'=>300000,'product_data'=>['name'=>'Business Pro Website']],'quantity'=>1]],'mode'=>'payment','success_url'=>'https://yoursite.com/success','cancel_url'=>'https://yoursite.com/pricing']);
echo json_encode(['url'=>$session->url]);
Stap 3 — Gebruiker doorsturen vanuit frontend
Een eenvoudige fetch-aanroep op de knop van uw prijspagina:
document.getElementById('buy-btn').addEventListener('click', async () => {
const res = await fetch('/create-checkout-session.php', {method:'POST'});
const data = await res.json();
window.location.href = data.url;
});
Stap 4 — Webhooks verwerken (orderafhandeling)
Stripe stuurt een POST naar uw webhook-endpoint wanneer de betaling slaagt.
<?php
$event = \Stripe\Webhook::constructEvent(file_get_contents('php://input'), $_SERVER['HTTP_STRIPE_SIGNATURE'], getenv('STRIPE_WEBHOOK_SECRET'));
if ($event->type === 'checkout.session.completed') { fulfill_order($event->data->object); }
http_response_code(200);
Registreer uw webhook-URL in het Stripe-dashboard onder Ontwikkelaars → Webhooks.
Stap 5 — Bevestigingsmail sturen via PHPMailer
Haal in uw `fulfill_order()`-functie het klant-e-mailadres op uit de sessie:
function fulfill_order($session) {
$email = $session->customer_details->email;
$mail = new PHPMailer\PHPMailer\PHPMailer(true);
$mail->setFrom('[email protected]', 'Uw Bedrijf');
$mail->addAddress($email);
$mail->Subject = 'Betaling ontvangen — Bedankt!';
$mail->Body = 'Uw bestelling is bevestigd.';
$mail->send();
}
Platformvergelijking — maatwerk-PHP vs Shopify vs WooCommerce
Reale bedrijfsimpact
Op een winkel met $50.000/maand zijn Stripe's 2,9% + 30¢ onvermijdelijk. Maar Shopify's extra platformkosten van 0,5–2% kosten $250–$1.000 extra per maand.
- Shopify Advanced ($399/mnd) + 0,5% op $50k = $649/mnd platformkosten
- Aangepaste PHP + Stripe = $0/mnd platformkosten
- Break-even op een build van $8.000: minder dan 9 maanden
- Checkout-pagina's laden 3× sneller = meetbaar lager winkelwagenverlatingpercentage
De rekensom is simpel: als u meer dan $15.000/maand verwerkt, betaalt een aangepaste PHP-winkel zichzelf terug in minder dan een jaar.
Beveiligingschecklist
- Bewaar sleutels in omgevingsvariabelen – nooit hardgecodeerd in PHP-bestanden
- Verifieer altijd Stripe webhook-handtekeningen met `constructEvent()`
- Gebruik overal HTTPS – Stripe vereist dit
- Idempotentie: controleer of de bestelling al bestaat voordat u uitvoert
- Rate-limit uw `/create-checkout-session.php` (10 verzoeken/uur per IP)
Veelgestelde vragen
Heb ik Composer nodig om Stripe met PHP te gebruiken?
Composer wordt aanbevolen maar is niet vereist. U kunt de SDK downloaden als ZIP en handmatig opnemen met require_once.
Is het veilig om betalingen te verwerken zonder een platform zoals Shopify?
Ja. Stripe is PCI-DSS Niveau 1 gecertificeerd. Uw server verwerkt nooit ruwe kaartnummers.
Hoe test ik Stripe zonder echte kaarten te belasten?
Gebruik de testmodus van Stripe met sleutelpre- fix sk_test_. Gebruik testkaart 4242 4242 4242 4242.
Kan ik abonnementen toevoegen met deze aanpak?
Ja. Wijzig de Checkout-sessiemodus van "payment" naar "subscription" en geef een terugkerend prijs-ID door.
Wilt u een aangepaste Stripe-winkel laten bouwen?
BuiltToWinWeb bouwt aangepaste PHP e-commerce winkels met native Stripe-integratie, Lighthouse 98+ scores en nul maandelijkse platformkosten.
Winkels worden doorgaans in 3–4 weken geleverd. Reactie binnen 24 uur gegarandeerd.
Benchmarkgegevens uit gecontroleerde tests op identieke Hostinger VPS-hosting.