# Express Checkout: Apple Pay, Google Pay & Amazon Pay via Stripe

> Overzicht DataFirefly Express Checkout voegt betalen met een wallet toe aan uw PrestaShop 8- of 9-winkel: Apple Pay, Google Pay en Amazon Pay, via Stripe. De module steunt op het…

- Pagina: <https://www.datafirefly.com/nl/documentation/dfexpresscheckout/>
- Taal: nl
- Bijgewerkt op: 2026-09-09
- Andere talen: [fr](https://www.datafirefly.com/documentation/dfexpresscheckout/index.md), [en](https://www.datafirefly.com/en/documentation/dfexpresscheckout/index.md), [es](https://www.datafirefly.com/es/documentation/dfexpresscheckout/index.md), [de](https://www.datafirefly.com/de/documentation/dfexpresscheckout/index.md), [it](https://www.datafirefly.com/it/documentation/dfexpresscheckout/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfexpresscheckout/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfexpresscheckout/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

## Overzicht

DataFirefly Express Checkout voegt betalen met een wallet toe aan uw PrestaShop 8- of 9-winkel: **Apple Pay**, **Google Pay** en **Amazon Pay**, via Stripe. De module steunt op het **Express Checkout Element** van Stripe: één component dat automatisch herkent welke wallets op het toestel van de klant beschikbaar zijn en de bijbehorende knoppen toont.

De knoppen kunnen op drie plaatsen verschijnen, elk apart in te schakelen: op de **productfiche** (expresaankoop), in de **winkelwagen** en op de **betaalpagina**. Na de betaling wordt de bestelling aangemaakt en gevalideerd door een **Stripe-webhook met gecontroleerde handtekening**, met een idempotente logica die dubbele bestellingen uitsluit. De module werkt met één winkel en in multistore, en wordt in vijf talen geleverd (FR, EN, ES, DE, IT).

## Vereisten

- PrestaShop **8.0 tot 9.x**, PHP 7.4 of hoger.
- De extensie **PHP cURL** ingeschakeld (wordt bij de installatie gecontroleerd).
- Een actief **Stripe-account**.
- Een winkel die via **HTTPS** wordt geserveerd (verplicht voor Apple Pay en Google Pay).

## Installatie

1. Open in de backoffice **Modules > Modulebeheer**.
2. Klik op **Een module installeren** en plaats het ZIP-archief van de module.
3. Klik na de installatie op **Configureren**.

Bij de installatie maakt de module een tabel aan om de transacties op te volgen, plus een eigen besteltoestand « Betaling geautoriseerd (wacht op inning) » die bij de handmatige inning wordt gebruikt.

## Verbinden met Stripe

De module biedt twee manieren van verbinden, in te stellen met het veld **Verbindingsmodus**.

### Handmatige modus (API-sleutels)

Vul uw sleutels in uit het Stripe-dashboard (**Ontwikkelaars > API-sleutels**):

- De **publieke sleutel** en de **geheime sleutel**, in de test- en daarna in de liveversie.
- Het **webhookgeheim** (zie het onderdeel Webhook hieronder).

Zet het veld **Modus** op Test tijdens de integratie en daarna op Live in productie. Elke modus heeft zijn eigen set sleutels.

### Automatische modus (Stripe Connect / OAuth)

Deze modus verbindt uw Stripe-account met één klik. Klik op **Verbinden met Stripe**, geef toestemming, en de module haalt automatisch de publieke en geheime sleutel op, **maakt de webhook aan** (met het ondertekeningsgeheim) en probeert het **walletdomein** voor Apple Pay en Google Pay te registreren. De knop **Verbinding verbreken** trekt de toegang in en wist de sleutels.

De automatische modus vereist een **Stripe Connect-toepassing**. Er zijn twee mogelijkheden:

- **Uw eigen Connect-toepassing**: vul de `client_id` en het **platformgeheim** in (Test en Live).
- **DataFirefly-tussenpersoon**: vul de **URL van de tussenpersoon** in, die het platformgeheim bewaart en de OAuth-uitwisseling uitvoert. Is die URL ingevuld, dan gaat zij voor.

Neem de **omleidings-URL** die in het verbindingspaneel staat op bij de _Redirect URIs_ van uw Stripe Connect-toepassing, anders wordt de OAuth-toestemming geweigerd.

## Stripe-configuratie (dashboard)

### Webhook

Maak in de handmatige modus het endpoint aan via **Ontwikkelaars > Webhooks > Een endpoint toevoegen**:

- **URL**: die welke boven aan de configuratiepagina van de module staat (`.../module/dfexpresscheckout/webhook`).
- **Gebeurtenissen**: `payment_intent.succeeded` en `payment_intent.payment_failed`.
- Kopieer het **ondertekeningsgeheim** (`whsec_…`) naar de configuratie van de module.

In de automatische modus worden de webhook en het geheim ervan bij het verbinden automatisch aangemaakt.

Zonder ingesteld webhookgeheim weigert de module de binnenkomende aanroepen. Dat is een veiligheidsmaatregel: er wordt nooit een bestelling aangemaakt op basis van een niet-gecontroleerde aanroep.

### De wallets inschakelen

- **Amazon Pay**: schakel die in via **Instellingen > Betaalmethoden** in uw Stripe-dashboard. Daarna verschijnt die automatisch in het Express Checkout Element.
- **Apple Pay**: uw domein moet in Stripe geverifieerd zijn (**Instellingen > Apple Pay**). In de automatische modus probeert de module die registratie voor u te doen.
- **Google Pay**: automatisch actief, geen actie nodig.

## Configuratie van de module

### Weergaveplaatsen

Drie schakelaars bepalen waar de knoppen verschijnen: op de **productfiche**, in de **winkelwagen** en bij het **afrekenen**. Schakel ze onafhankelijk in, volgens uw strategie.

### Manier van innen

- **Onmiddellijke inning** (standaard): de betaling wordt meteen geïnd en de bestelling gaat naar « Betaling aanvaard ».
- **Autorisatie en daarna handmatige inning**: Stripe autoriseert de betaling zonder die te innen; de bestelling komt in de toestand « Betaling geautoriseerd (wacht op inning) ».

### Opschrift en thema

Pas het **getoonde opschrift** boven de knoppen en het **thema van de knoppen** aan (zwart, wit, wit met omlijning) om die bij uw ontwerp te laten aansluiten.

## Aan klantzijde

Afhankelijk van de plaats ziet de klant een of meer walletknoppen. Hij bevestigt de betaling met één authenticatie (Face ID, vingerafdruk, Amazon-wachtwoord), zonder een account aan te maken: het e-mailadres en de lever- en factuuradressen komen uit de wallet. Zijn er verzendkosten, dan biedt de module de actieve vervoerders aan en **herberekent hij het totaal** bij elke adreswijziging. Voor digitale producten is er geen leverstap.

Vanaf de productfiche slaat de expresaankoop op het getoonde product (met het gekozen aantal), via een eigen winkelwagen, zonder de lopende winkelwagen van de klant te wijzigen.

## Handmatige inning: innen of annuleren

In de modus met handmatige inning stuurt u alles aan via de besteltoestand:

- Om de betaling te **innen**, zet u de bestelling op de toestand **« Betaling aanvaard »**.
- Om de autorisatie **vrij te geven**, zet u de bestelling op de toestand **« Geannuleerd »**.

Een Stripe-autorisatie heeft een beperkte houdbaarheid (doorgaans 7 dagen). Denk eraan te innen vóór die verstrijkt, anders wordt de autorisatie automatisch vrijgegeven.

## Bestellingen, webhook en idempotentie

De bestelling wordt aangemaakt en gevalideerd zodra de gebeurtenis `payment_intent.succeeded` binnenkomt (via de ondertekende webhook). Een retourcontroller dient als vangnet wanneer de klant naar de winkel terugkeert. Een transactietabel koppelt elke PaymentIntent aan zijn bestelling: dezelfde transactie levert dus nooit twee bestellingen op, in welke volgorde de browserretour en de webhook ook binnenkomen. De gastklant en zijn adressen worden opgebouwd uit de gegevens die de wallet teruggeeft.

## Meertaligheid en multistore

De module wordt geleverd met vertaalbestanden in FR, EN, ES, DE en IT en werkt in een multistorecontext. De Stripe-sleutels, de verbindingsmodus en de manier van innen zijn gewone configuratie-instellingen.

## Problemen oplossen

### De knoppen verschijnen niet

Controleer of de winkel op HTTPS draait, of de Stripe-sleutels voor de actieve modus (Test of Live) zijn ingevuld, en of de betrokken plaats is ingeschakeld. Apple Pay verschijnt alleen in Safari en op iOS met een geverifieerd domein; Google Pay in Chrome en op Android.

### De betaling lukt maar er ontstaat geen bestelling

Controleer de webhook: de juiste URL, de gebeurtenissen `payment_intent.succeeded` en `payment_intent.payment_failed`, en een ondertekeningsgeheim dat gelijk is aan dat in de module. Bekijk de Stripe-logboeken (de afleverpogingen van de webhook) en de PrestaShop-logboeken.

### Amazon Pay ontbreekt

Die moet worden ingeschakeld via **Instellingen > Betaalmethoden** in het Stripe-dashboard. Daarna verschijnt die automatisch.

### De automatische verbinding mislukt

Controleer of de Connect `client_id` voor de actieve modus is ingevuld en of de omleidings-URL van de module in uw Connect-toepassing is opgegeven. Een ongeldig state-token wijst op een verlopen sessie: start de verbinding opnieuw vanuit de backoffice.

## Verwijderen

Bij het verwijderen verdwijnt de configuratie van de module. De tabel met de transactieopvolging blijft standaard bewaard, voor de traceerbaarheid van de eerdere bestellingen.

## FAQ

### Werkt Amazon Pay echt via Stripe?

Ja. Stripe ondersteunt Amazon Pay binnen het Express Checkout Element; u hoeft die alleen in het Stripe-dashboard in te schakelen.

### Moet ik afhankelijkheden installeren (Composer)?

Nee. De module bevat een eigen Stripe-client in cURL. U installeert de module en vult uw sleutels in (of verbindt uw account).

### Werkt de module met PrestaShop 9?

Ja, hij werkt met PrestaShop 8.0 tot 9.x en is getest op PHP 8.1 tot 8.3.

### Kan ik van de handmatige naar de automatische modus overschakelen?

Ja, op elk moment vanuit de configuratie. In de automatische modus worden de sleutels door de OAuth-verbinding ingevuld; in de handmatige modus voert u ze zelf in.
