Express Checkout — Apple Pay, Google Pay e Amazon Pay con Stripe — Guida completa
Installa, connetti a Stripe (manuale o automatico) e configura il pagamento express con Apple Pay, Google Pay e Amazon Pay nella scheda prodotto, nel carrello e al checkout per PrestaShop 8 e 9.
Panoramica
DataFirefly Express Checkout aggiunge i pagamenti con wallet — Apple Pay, Google Pay e Amazon Pay — al tuo negozio PrestaShop 8 o 9, tramite Stripe. Il modulo si basa sull’Express Checkout Element di Stripe: un componente unico che rileva automaticamente i wallet disponibili sul dispositivo del cliente e mostra i pulsanti corrispondenti.
I pulsanti possono apparire in tre posizioni, attivabili in modo indipendente: nella scheda prodotto (acquisto express), nel carrello e nella pagina di pagamento. Dopo il pagamento, l’ordine viene creato e convalidato da un webhook Stripe con firma verificata, con una logica idempotente che evita qualsiasi ordine duplicato. Il modulo è compatibile con negozio singolo e multistore, ed è fornito in cinque lingue (FR, EN, ES, DE, IT).
Requisiti
- PrestaShop da 8.0 a 9.x, PHP 7.4 o superiore.
- L’estensione PHP cURL attivata (verificata all’installazione).
- Un account Stripe attivo.
- Un negozio servito in HTTPS (obbligatorio per Apple Pay e Google Pay).
Installazione
- Dal back office, apri Moduli > Gestore moduli.
- Fai clic su Carica un modulo e rilascia l’archivio ZIP del modulo.
- Al termine dell’installazione, fai clic su Configura.
All’installazione, il modulo crea una tabella di tracciamento delle transazioni e uno stato d’ordine dedicato «Pagamento autorizzato (in attesa di cattura)» utilizzato dalla modalità di cattura manuale.
Connessione a Stripe
Il modulo offre due modalità di connessione, impostate dal campo Modalità di connessione.
Modalità manuale (chiavi API)
Inserisci le tue chiavi dalla Dashboard Stripe (Sviluppatori > Chiavi API):
- Chiave pubblica e chiave segreta, in versione Test e poi Live.
- Secret del webhook (vedi la sezione Webhook più sotto).
Imposta il campo Modalità su Test durante l’integrazione e poi su Live in produzione. Ogni modalità ha il proprio set di chiavi.
Modalità automatica (Stripe Connect / OAuth)
Questa modalità connette il tuo account Stripe con un clic. Fai clic su Connetti con Stripe, autorizza l’accesso, e il modulo recupera automaticamente le chiavi pubblica e segreta, crea il webhook (e il suo secret di firma) e tenta di registrare il dominio wallet per Apple Pay / Google Pay. Il pulsante Disconnetti revoca l’accesso ed elimina le chiavi.
La modalità automatica richiede un’applicazione Stripe Connect. Due opzioni:
- La tua applicazione Connect: inserisci il
client_ide il secret di piattaforma (Test e Live). - Broker DataFirefly: inserisci l’URL del broker, che detiene il secret di piattaforma ed esegue lo scambio OAuth. Se questo URL è indicato, ha priorità.
Dichiara l’URL di reindirizzamento mostrato nel pannello di connessione nei Redirect URIs della tua applicazione Stripe Connect, altrimenti l’autorizzazione OAuth verrà rifiutata.
Configurazione Stripe (Dashboard)
Webhook
In modalità manuale, crea l’endpoint in Sviluppatori > Webhooks > Aggiungi un endpoint:
- URL: quello mostrato in cima alla pagina di configurazione del modulo (
.../module/dfexpresscheckout/webhook). - Eventi:
payment_intent.succeededepayment_intent.payment_failed. - Copia il secret di firma (
whsec_…) nella configurazione del modulo.
In modalità automatica, il webhook e il suo secret vengono creati automaticamente alla connessione.
Senza un secret del webhook configurato, il modulo rifiuta le chiamate in ingresso: è una misura di sicurezza — un ordine non viene mai creato sulla base di una chiamata non verificata.
Attivare i wallet
- Amazon Pay: attivalo in Impostazioni > Metodi di pagamento della tua Dashboard Stripe. Comparirà poi automaticamente nell’Express Checkout Element.
- Apple Pay: il tuo dominio deve essere verificato in Stripe (Impostazioni > Apple Pay). In modalità automatica, il modulo tenta questa registrazione per te.
- Google Pay: attivo automaticamente, nessuna azione richiesta.
Configurazione del modulo
Posizioni di visualizzazione
Tre interruttori controllano la visualizzazione dei pulsanti: scheda prodotto, carrello e checkout. Attivali in modo indipendente in base alla tua strategia.
Modalità di cattura
- Cattura immediata (predefinita): il pagamento viene incassato subito e l’ordine passa a «Pagamento accettato».
- Autorizzazione e cattura manuale: Stripe autorizza il pagamento senza incassarlo; l’ordine arriva nello stato «Pagamento autorizzato (in attesa di cattura)».
Titolo e tema
Personalizza il titolo visualizzato sopra i pulsanti e il tema dei pulsanti (nero, bianco, bianco con bordo) per adattarlo al tuo design.
Lato cliente
A seconda della posizione, il cliente vede uno o più pulsanti wallet. Conferma il pagamento con una sola autenticazione (Face ID, impronta, password Amazon), senza creare un account: l’e-mail e gli indirizzi di spedizione e di fatturazione vengono recuperati dal wallet. Quando si applicano spese di spedizione, il modulo propone i corrieri attivi e ricalcola il totale a ogni cambio di indirizzo. I prodotti digitali funzionano senza la fase di spedizione.
Dalla scheda prodotto, l’acquisto express riguarda il prodotto mostrato (e la quantità scelta) tramite un carrello dedicato, senza modificare il carrello attuale del cliente.
Cattura manuale: incassare o annullare
In modalità di cattura manuale, il controllo avviene tramite lo stato dell’ordine:
- Per catturare il pagamento, porta l’ordine allo stato «Pagamento accettato».
- Per liberare l’autorizzazione, porta l’ordine allo stato «Annullato».
Un’autorizzazione Stripe ha una durata limitata (di solito 7 giorni). Ricordati di catturare prima della scadenza, altrimenti l’autorizzazione viene liberata automaticamente.
Ordini, webhook e idempotenza
L’ordine viene creato e convalidato alla ricezione dell’evento payment_intent.succeeded (webhook firmato). Un controller di ritorno funge da rete di sicurezza quando il cliente torna al negozio. Una tabella delle transazioni collega ogni PaymentIntent al suo ordine: una stessa transazione non genera quindi mai due ordini, indipendentemente dall’ordine di arrivo del ritorno del browser e del webhook. Il cliente ospite e i suoi indirizzi vengono ricostruiti dalle informazioni restituite dal wallet.
Multilingua e multistore
Il modulo è fornito con file di traduzione per FR, EN, ES, DE, IT e funziona in contesto multistore. Le chiavi Stripe, la modalità di connessione e la modalità di cattura sono impostazioni di configurazione standard.
Risoluzione dei problemi
I pulsanti non compaiono
Verifica che il negozio sia in HTTPS, che le chiavi Stripe siano impostate per la modalità attiva (Test/Live) e che la posizione interessata sia attivata. Apple Pay compare solo su Safari/iOS con un dominio verificato; Google Pay su Chrome/Android.
Il pagamento riesce ma non viene creato alcun ordine
Controlla il webhook: URL corretto, eventi payment_intent.succeeded e payment_intent.payment_failed, e un secret di firma identico a quello del modulo. Consulta i log di Stripe (tentativi di consegna del webhook) e i log di PrestaShop.
Amazon Pay è assente
Deve essere attivato in Impostazioni > Metodi di pagamento della Dashboard Stripe. Comparirà poi automaticamente.
La connessione automatica non riesce
Verifica che il client_id Connect sia impostato per la modalità attiva e che l’URL di reindirizzamento del modulo sia correttamente dichiarato nella tua applicazione Connect. Un token di stato non valido indica una sessione scaduta: riavvia la connessione dal back office.
Disinstallazione
La disinstallazione rimuove la configurazione del modulo. La tabella di tracciamento delle transazioni viene conservata per impostazione predefinita per la tracciabilità degli ordini passati.
FAQ
Amazon Pay funziona davvero tramite Stripe?
Sì. Stripe supporta Amazon Pay all’interno dell’Express Checkout Element; basta attivarlo nella Dashboard Stripe.
Devo installare dipendenze (Composer)?
No. Il modulo include un client Stripe interno in cURL. Basta installare il modulo e inserire (o connettere) le tue chiavi.
Il modulo è compatibile con PrestaShop 9?
Sì, è compatibile con PrestaShop da 8.0 a 9.x e testato su PHP da 8.1 a 8.3.
Posso passare dalla modalità manuale a quella automatica?
Sì, in qualsiasi momento dalla configurazione. In modalità automatica, le chiavi vengono compilate dalla connessione OAuth; in modalità manuale, le inserisci tu stesso.