Carte, wallet e metodi di pagamento locali con un unico fornitore: come integrare Stripe in Shopware 6, con il plugin ufficiale o tramite API, inclusi webhook, carte di test e go-live per shop in Italia.
Che il Suo shop accetti i pagamenti in modo fluido e sicuro non è negoziabile. Questa guida accompagna merchant e sviluppatori, anche in Italia, verso un’integrazione Stripe solida in Shopware 6. Scoprirà:
Quali altri fornitori si possono collegare lo mostra la nostra panoramica sulle integrazioni di pagamento per Shopware.
Stripe è una piattaforma per accettare pagamenti online: acquisti singoli, abbonamenti o pagamenti ai venditori di un marketplace. Oltre al semplice pagamento con carta, Stripe offre:
Per shop headless o processi fortemente personalizzati:
stripe/stripe-php con Composer, creare PaymentIntent, confermare pagamenti e gestire abbonamenti.payment_intent.succeeded, invoice.payment_failed o charge.refunded e impostare lo stato dell’ordine in Shopware.Sviluppiamo integrazioni personalizzate come plugin o app per Shopware, si veda sviluppo di plugin per Shopware.
Se gestisce le estensioni con Composer, ottenga il pacchetto tramite il Suo account Shopware e poi lo attivi:
bin/console plugin:refresh
bin/console plugin:install --activate StripeShopwarePayment
bin/console cache:clear
Il nome tecnico esatto è indicato da bin/console plugin:list.
pk_test_ e sk_test_).payment_intent.succeeded, payment_intent.payment_failed, charge.refunded e, per gli abbonamenti, invoice.payment_succeeded.whsec_…) nella configurazione del plugin.Molte versioni del plugin creano l’endpoint automaticamente. Verifichi nella dashboard che esista e punti alla modalità corretta.
Poi attivi i metodi di pagamento in Impostazioni → Shop → Metodi di pagamento e li assegni ai canali di vendita.
4242 4242 4242 4242, qualsiasi data di scadenza futura, qualsiasi codice di sicurezza.Con il Payment Element Stripe mostra tutti i metodi di pagamento attivi in un unico modulo direttamente nel Suo checkout. La struttura di base in un’integrazione personalizzata:
<form id="payment-form">
<div id="payment-element"></div>
<button id="submit">Paga ora</button>
</form>
const stripe = Stripe('pk_test_LA_SUA_CHIAVE');
// clientSecret proviene dal PaymentIntent creato dal Suo server
const elements = stripe.elements({ clientSecret });
const paymentElement = elements.create('payment');
paymentElement.mount('#payment-element');
document.getElementById('payment-form').addEventListener('submit', async (e) => {
e.preventDefault();
const { error } = await stripe.confirmPayment({
elements,
confirmParams: { return_url: 'https://il-suo-shop.it/checkout/finish' }
});
if (error) { console.error(error.message); }
});
Il plugin Shopware gestisce questa integrazione da solo; il codice è rilevante solo se costruisce un checkout proprio.
4242 4242 4242 42424000 0000 0000 00024000 0000 0000 99954000 0025 0000 3155pk_live_, sk_live_) nella configurazione del plugin.Stripe invia una notifica per ogni evento importante. I più frequenti:
payment_intent.succeeded: segnare l’ordine come pagato e inviare la conferma.payment_intent.payment_failed: informare il cliente e proporre un altro metodo di pagamento.charge.refunded: impostare l’ordine su „rimborsato“ e inviare la ricevuta.invoice.payment_succeeded: rinnovare l’abbonamento e inviare la ricevuta.$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_STRIPE_SIGNATURE'] ?? '';
try {
$event = \Stripe\Webhook::constructEvent($payload, $signature, $webhookSecret);
} catch (\Exception $e) {
http_response_code(400);
exit;
}
switch ($event->type) {
case 'payment_intent.succeeded':
$this->markOrderPaid($event->data->object->metadata->order_id);
break;
case 'payment_intent.payment_failed':
$this->notifyCustomer($event->data->object->metadata->order_id);
break;
}
http_response_code(200);
Verifichi sempre la firma, risponda rapidamente con 200 ed elabori l’evento in modo idempotente, perché Stripe ripete le consegne. Come Shopware gestisce i webhook lo spieghiamo nel nostro articolo sui webhook in Shopware 6.
var/log/.stripe listen --forward-to https://il-suo-shop.test/stripe/webhookCon Stripe Checkout o Elements i dati delle carte sono elaborati da Stripe, non dal Suo server. Distribuisca le pagine di checkout esclusivamente via HTTPS e non registri mai i dati completi delle carte.
Attivi le regole standard di Radar, controlli regolarmente i pagamenti segnalati e affini i limiti per i modelli sospetti. Usi 3-D Secure: in Europa, Italia compresa, l’autenticazione forte del cliente (SCA) è comunque obbligatoria.
Aggiunga numero d’ordine, ID cliente e totale del carrello come metadati a ogni PaymentIntent. Così i pagamenti si riconciliano in modo univoco tra Stripe e contabilità.
Come cambio le chiavi API senza mettere offline lo shop?
Il plugin conserva in parallelo chiavi test e live; inserisce le nuove chiavi e cambia modalità con l’interruttore. Nelle integrazioni personalizzate applichi la modifica in un momento di traffico ridotto.
Posso offrire il pagamento rateale?
Sì. Nella dashboard di Stripe, in Metodi di pagamento, attivi opzioni „compra ora, paga dopo“ come Klarna e poi le abiliti nel plugin. In Italia è molto diffuso anche Scalapay, che si integra con un proprio plugin.
Come funzionano i rimborsi?
I rimborsi totali si avviano dall’ordine in Shopware, il plugin richiama l’API di Stripe. I rimborsi parziali si effettuano nella dashboard di Stripe o tramite API indicando l’importo.
Quanto costa Stripe?
Secondo il fornitore, per le carte dello Spazio economico europeo la tariffa standard è di circa 1,5 % più 0,25 € per transazione; carte internazionali e conversione di valuta costano di più. Le condizioni aggiornate sono su stripe.com.
Quali metodi di pagamento completano bene Stripe?
Per il mercato italiano soprattutto PayPal e Amazon Pay, oltre a Satispay, Scalapay e bonifico bancario. Seguiamo anche merchant in Italia: dove il Suo checkout perde clienti lo mostra la nostra analisi dello shop.