EnglishEN EspañolES FrançaisFR DeutschDE ItalianoIT PortuguêsPT 中文ZH 日本語JA 한국어KO РусскийRU NederlandsNL
← Back to all articles

Como adicionar o Stripe Checkout a um site PHP personalizado (sem plugins)

O Stripe é a API de pagamentos mais limpa disponível, e conectá-la direto ao PHP significa sem mensalidades de SaaS, sem o peso do WooCommerce e sem a comissão por transação do Shopify. O que segue é a implementação exata em funcionamento em lojas reais de clientes da BuiltToWinWeb: PHP puro, o SDK oficial do Stripe, webhooks seguros e confirmações por e-mail automatizadas. Você verá como as peças se encaixam — sessão de checkout, redirecionamento, verificação de webhook, processamento — para receber pagamentos reais sem ceder uma fatia a uma plataforma. Tudo aqui é código de produção, não uma demonstração descartável.

Por que PHP nativo + Stripe supera qualquer construtor de páginas

O Shopify cobra de 0,5 a 2% por transação além da própria taxa do Stripe. O WooCommerce adiciona 14+ dependências de plugins que diminuem o LCP da sua página de checkout para 3,8 s.

  • Zero taxas de plataforma por transação – apenas 2,9% + 30¢ do Stripe
  • Pontuação Lighthouse da página de checkout: 98 vs. típico 61 do Shopify
  • Controle total de webhooks – atendimento personalizado, estoque, e-mail
  • Sem custo de assinatura recorrente da plataforma de e-commerce
  • Você é dono do código, hospeda onde quiser, migra livremente

Passo 1 — Instalar o SDK PHP do Stripe

O Composer é a abordagem mais limpa.

composer require stripe/stripe-php

Carregue-o no topo do seu script de checkout:

require_once __DIR__ . '/vendor/autoload.php';
\Stripe\Stripe::setApiKey(getenv('STRIPE_SECRET_KEY'));

Passo 2 — Criar uma sessão de Checkout (lado do servidor)

Nunca coloque sua chave secreta no navegador. Crie um endpoint do lado do servidor para o qual o frontend fará POST:

<?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]);

Passo 3 — Redirecionar o usuário do frontend

Uma simples chamada fetch no botão da sua página de preços:

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;
});

Passo 4 — Gerenciar webhooks (atendimento de pedidos)

O Stripe envia um POST para o seu endpoint de webhook quando o pagamento é bem-sucedido.

<?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);

Registre a URL do seu webhook no painel do Stripe em Desenvolvedores → Webhooks.

Passo 5 — Enviar e-mail de confirmação via PHPMailer

Dentro da sua função `fulfill_order()`, recupere o e-mail do cliente da sessão:

function fulfill_order($session) {
    $email = $session->customer_details->email;
    $mail = new PHPMailer\PHPMailer\PHPMailer(true);
    $mail->setFrom('[email protected]', 'Sua Empresa');
    $mail->addAddress($email);
    $mail->Subject = 'Pagamento recebido — Obrigado!';
    $mail->Body = 'Seu pedido foi confirmado.';
    $mail->send();
}

Comparação de plataformas: PHP personalizado vs Shopify vs WooCommerce

Métrica PHP personalizado + Stripe Shopify WooCommerce
LCP do checkout 0,6s 1,9s 2,8s
Pontuação Lighthouse 98 61 55
Taxa plataforma/transação 0% 0,5–2% 0%*
Custo mensal plataforma $0 $39–$399 $0*
Dependências de plugins 0 n/a 14+
Propriedade do código 100% 0% ~60%

Impacto real no negócio

Numa loja com $50.000/mês, a taxa de 2,9% + 30¢ do Stripe é inevitável. Mas a taxa adicional de plataforma do Shopify de 0,5–2% custa $250–$1.000 a mais por mês.

  • Shopify Advanced ($399/mês) + 0,5% sobre $50k = $649/mês em custos de plataforma
  • PHP personalizado + Stripe = $0/mês em custos de plataforma
  • Break-even numa loja de $8.000: menos de 9 meses
  • Páginas de checkout carregam 3× mais rápido = menor taxa de abandono

O cálculo é simples: se você processa mais de $15.000/mês, uma loja PHP personalizada se paga em menos de um ano.

Lista de verificação de segurança

  • Armazene chaves em variáveis de ambiente – nunca hardcode em arquivos PHP
  • Sempre verifique assinaturas de webhook do Stripe com `constructEvent()`
  • Use HTTPS em todo lugar – o Stripe exige
  • Idempotência: verifique se o pedido já existe antes de processá-lo
  • Rate-limit em `/create-checkout-session.php` (10 req/hora por IP)

Perguntas frequentes

Preciso do Composer para usar o Stripe com PHP?

O Composer é recomendado, mas não obrigatório. Você pode baixar o SDK como ZIP e incluir manualmente com require_once.

É seguro processar pagamentos sem uma plataforma como o Shopify?

Sim. O Stripe é certificado PCI-DSS Nível 1. Seu servidor nunca lida com números de cartão brutos.

Como testo o Stripe sem cobrar cartões reais?

Use o modo de teste do Stripe com o prefixo sk_test_. Use o cartão de teste 4242 4242 4242 4242.

Posso adicionar assinaturas com esta abordagem?

Sim. Mude o modo da sessão Checkout de "payment" para "subscription" e passe um ID de preço recorrente.

Quer uma loja Stripe personalizada construída para você?

A BuiltToWinWeb constrói lojas de e-commerce PHP personalizadas com integração nativa do Stripe, pontuações Lighthouse 98+ e zero taxas mensais de plataforma.

As lojas são geralmente entregues em 3–4 semanas. Resposta garantida em 24 horas.

Obter orçamento gratuito

Dados de benchmark de testes controlados no mesmo hosting Hostinger VPS.