Skip to main content
Inline checkout bäddar in ett säkert betalningsformulär direkt i sidlayouten. Till skillnad från overlay checkout, som öppnas som en modal, blir inline checkout en del av sidan. Du styr layouten och kan visa en egen ordersammanfattning bredvid checkout-formuläret.
Inline checkout-formulär inbäddat på en produktsida med ordersammanfattning

Så fungerar det

Inline checkout renderar en säker Dodo Payments-frame i en container på din sida. Framen hanterar insamlingen av kundinformation och betalningsuppgifter. Din sida visar artiklar, summor och annan information. SDK:t gör det möjligt för din sida och checkout-framen att kommunicera med varandra. När checkout slutförs skapar Dodo Payments betalningen, eller prenumerationen för en prenumerationsprodukt, och skickar en webhook så att du kan ge kunden åtkomst.
Inline checkout-framen hanterar all känslig betalningsinformation på ett säkert sätt och säkerställer PCI-efterlevnad utan att du behöver någon ytterligare certifiering.

Vad kännetecknar en bra inline checkout

Kunderna behöver veta vem de handlar av, vad de köper och hur mycket de betalar. Din implementation måste innehålla:
Exempel på inline checkout med obligatoriska element markerade

Example inline checkout layout showing required elements

  1. Återkommande information: Om betalningen återkommer ska du visa hur ofta den återkommer och totalsumman som ska betalas vid förnyelse. Om det finns en provperiod ska du visa dess längd.
  2. Artikelbeskrivningar: En beskrivning av det som köps.
  3. Transaktionssummor: Delsumma, total skatt och totalsumma, inklusive valuta.
  4. Dodo Payments-footer: Den fullständiga inline checkout-framen, inklusive footern med information om Dodo Payments, försäljningsvillkor och integritetspolicy.
  5. Återbetalningspolicy: En länk till din återbetalningspolicy om den skiljer sig från Dodo Payments standardpolicy för återbetalning.
Visa alltid hela inline checkout-framen, inklusive footern. Att ta bort eller dölja juridisk information strider mot efterlevnadskraven.

Kundresan

Checkout-flödet beror på konfigurationen av din checkout-session. Beroende på hur du konfigurerar sessionen kan kunderna se all information på en enda sida eller över flera steg.
1

Customer opens checkout

Du öppnar inline checkout genom att skicka med en checkout-URL. Använd SDK-händelser, till exempel checkout.breakdown, för att visa och uppdatera information på sidan.Inledande checkout-sida med artikellista och betalningsformulär
2

Customer enters their details

Inline checkout ber först kunderna att ange sin e-postadress, välja land och, där det krävs, ange sitt ZIP- eller postnummer. Det här steget samlar in all information som behövs för att fastställa skatter och tillgängliga betalningsalternativ.Du kan förifylla kunduppgifter och visa sparade adresser för att förenkla upplevelsen.
3

Customer selects payment method

När kunderna har angett sina uppgifter visas tillgängliga betalningsmetoder och betalningsformuläret. Alternativen kan omfatta kredit- eller betalkort, PayPal, Apple Pay, Google Pay och andra lokala betalningsmetoder baserat på kundens plats.Visa sparade betalningsmetoder om de finns tillgängliga för att påskynda checkout.Tillgängliga betalningsmetoder och formulär för kortuppgifter
4

Checkout completed

Dodo Payments dirigerar varje betalning till den bästa inlösaren för försäljningen för att maximera chansen att betalningen godkänns. Kunderna går vidare till ett framgångsflöde som du kan bygga.Framgångsskärm med bekräftelsemarkering
5

Dodo Payments creates the payment or subscription

Dodo Payments skapar betalningen, eller prenumerationen för en prenumerationsprodukt, och skickar en webhook så att du kan ge kunden åtkomst. Betalningsmetoden som kunden använde sparas för förnyelser eller ändringar av prenumerationen.Prenumeration skapad med webhook-notifiering

Kom igång snabbt

Installera SDK:t, initiera det för inline-läge och öppna checkout i ett container-element:
Kontrollera att du har ett container-element med motsvarande id på sidan: <div id="dodo-inline-checkout"></div>.

Integration steg för steg

1

Install the SDK

Installera via npm, yarn eller pnpm:
2

Initialize the SDK for Inline Display

Initiera SDK:t och ange displayType: 'inline'. Lyssna på händelsen checkout.breakdown för att uppdatera gränssnittet med skatte- och totalsummor i realtid:
3

Create a Container Element

Lägg till ett element i HTML-koden där checkout-framen ska injiceras:
4

Open the Checkout

Anropa DodoPayments.Checkout.open() med checkoutUrl och elementId för din container:
5

Test Your Integration

  1. Starta din utvecklingsserver:
  1. Testa checkout-flödet:
    • Ange din e-postadress och adressuppgifter i inline-framen
    • Kontrollera att din anpassade ordersammanfattning uppdateras i realtid
    • Testa betalningsflödet med testuppgifter
    • Bekräfta att omdirigeringar fungerar korrekt
Du bör se checkout.breakdown-händelser loggas i webbläsarens konsol om du lade till en konsollogg i callbacken onEvent.
6

Go Live

När du är redo för produktion:
  1. Ändra läget till 'live':
  1. Uppdatera dina checkout-URL:er så att de använder aktiva checkout-sessioner från din backend
  2. Testa hela flödet i produktion

Komplett React-exempel

Det här exemplet visar hur du implementerar en anpassad ordersammanfattning bredvid inline checkout och håller dem synkroniserade med hjälp av händelsen checkout.breakdown:

API-referens

Initiera

Anropa Initialize en gång för att konfigurera SDK:t:

Öppna checkout

Öppna checkout-framen i en container:

Stäng checkout

Ta bort checkout-framen programmatiskt och rensa händelselyssnare:

Kontrollera status

Kontrollera om checkout-framen för närvarande är injicerad:

Händelser

SDK:t tillhandahåller händelser i realtid via callbacken onEvent. För inline checkout är checkout.breakdown särskilt användbar för att synkronisera gränssnittet:

Data för checkout-uppdelning

Händelsen checkout.breakdown tillhandahåller pris- och skatteinformation:
Händelsen utlöses när checkout-framen läses in och igen varje gång priset räknas om, till exempel när kunden väljer ett land eller anger ett postnummer som ändrar skatten. Fältinformation: Integrationstips:
  1. Valutaformatering: Priser är heltal i den minsta valutaenheten, till exempel cent för USD. För valutor med två decimaler delar du med 100 innan formatering med Intl.NumberFormat. Valutor utan decimaler, till exempel JPY, har ingen mindre enhet, så dela inte sådana belopp.
  2. Hantering av initiala tillstånd: När checkout läses in första gången kan tax och discount vara 0 eller null tills användaren anger sin faktureringsinformation eller tillämpar en kod. Hantera dessa tillstånd på ett smidigt sätt, till exempel genom att visa ett tankstreck — eller dölja raden.
  3. ”Slutlig summa” jämfört med ”Summa”: Medan total ger dig standardberäkningen av priset är finalTotal den tillförlitliga källan för transaktionen. Om finalTotal finns återger den exakt det belopp som debiteras kundens kort.
  4. Feedback i realtid: Använd fältet tax för att visa användarna att skatten beräknas i realtid. Det ger checkout-sidan en ”live”-känsla och minskar friktionen när adressen anges.

CDN-implementation

För en snabb integration utan ett build-steg laddar du SDK:t från CDN:

Uppdatera betalningsmetod

Inline checkout stöder uppdateringar av betalningsmetoder för prenumerationer. När en kund behöver uppdatera sin betalningsmetod för en aktiv prenumeration eller återaktivera en pausad prenumeration kan du rendera uppdateringsflödet direkt i sidlayouten.

Så fungerar det

  1. Anropa API:t för uppdatering av betalningsmetod för att hämta en payment_link:
  1. Skicka den returnerade payment_link som checkoutUrl för att öppna inline checkout:
Inline-framen renderar endast formuläret för insamling av betalningsmetod. Kunderna kan ange nya kortuppgifter eller välja en sparad betalningsmetod utan att lämna sidan.

För pausade prenumerationer

När betalningsmetoden uppdateras för en prenumeration med statusen on_hold skapar Dodo Payments automatiskt en debitering för eventuella återstående skulder. Övervaka webhooks för payment.succeeded och subscription.active för att bekräfta återaktiveringen.
Du kan också använda en befintlig sparad betalningsmetod i stället för att samla in nya uppgifter genom att skicka type: 'existing' med en payment_method_id till API:t för uppdatering av betalningsmetod.

Felhantering

Implementera alltid felhantering i din callback onEvent:
Hantera alltid händelsen checkout.error för att ge en bra användarupplevelse när fel inträffar.

Bästa praxis

  1. Responsiv design: Se till att container-elementet har tillräcklig bredd och höjd. iframe-elementet expanderar vanligtvis så att det fyller sin container.
  2. Synkronisering: Använd händelsen checkout.breakdown för att hålla din anpassade ordersammanfattning eller dina pristabeller synkroniserade med det användaren ser i checkout-framen.
  3. Skeleton-tillstånd: Visa en laddningsindikator i containern tills händelsen checkout.opened utlöses.
  4. Rensning: Anropa DodoPayments.Checkout.close() när komponenten avmonteras för att rensa iframe-elementet och händelselyssnarna.
För implementationer med mörkt läge använder du #0d0d0d som bakgrundsfärg för bästa visuella integration med inline checkout-framen.

Validering av betalningsstatus

Förlita dig inte enbart på inline checkout-händelser för att avgöra om en betalning lyckades eller misslyckades. Implementera alltid validering på serversidan med webhooks och/eller polling.

Varför validering på serversidan är avgörande

Inline checkout-händelser ger feedback i realtid, men de bör inte vara din enda källa till sanning för betalningsstatus. Nätverksproblem, webbläsarkrascher eller användare som stänger sidan kan göra att händelser missas. Säkerställ tillförlitlig betalningsvalidering genom att:
  1. Lyssna på webhook-händelser – Dodo Payments skickar webhooks när betalningsstatus ändras
  2. Implementera en polling-mekanism – Frontend ska fråga din server efter statusuppdateringar
  3. Kombinera båda metoderna – Använd webhooks som primär källa och polling som reservlösning

Rekommenderad arkitektur

Implementeringssteg

1. Lyssna efter checkout-händelser – När användaren klickar på Betala börjar du förbereda verifieringen av statusen:
2. Fråga din server – Skapa en endpoint som kontrollerar betalningsstatusen i databasen, uppdaterad av webhooks:
3. Hantera webhooks på serversidan – Uppdatera databasen när Dodo skickar webhooks för payment.succeeded eller payment.failed. Mer information finns i vår dokumentation om Webhooks.

Felsökning

  • Kontrollera att elementId matchar id för ett div som faktiskt finns i DOM
  • Kontrollera att displayType: 'inline' skickades till Initialize
  • Kontrollera att checkoutUrl är giltig
  • Kontrollera att du lyssnar efter händelsen checkout.breakdown
  • Skatter beräknas först när användaren anger ett giltigt land och postnummer i checkout-framen

Digitala plånböcker

Detaljerad information om hur du konfigurerar Apple Pay, Google Pay och andra digitala plånböcker finns på sidan Digitala plånböcker.

Snabb konfiguration av Apple Pay

Domänverifiering krävs endast för inline (inbäddad) checkout. Det krävs inte för hosted checkout.
Apple Pay är inte tillgängligt för overlay checkout.
Apple Pay verifieras per domän från dashboarden.
1

Open Wallet domains

Gå till Settings → Payment Methods och klicka på Manage domains på raden Apple Pay.
Knappen Manage domains på raden Apple Pay i inställningarna för Payment Methods

Open Wallet domains from the Apple Pay row

2

Download the domain association file

I panelen Wallet domains laddar du ner associationsfilen.
Panelen Wallet domains med knappen Download file

Download the Apple Pay domain association file

3

Register your domain

Klicka på Register domain och ange domänen där du bäddar in inline checkout, till exempel shop.example.com, och klicka sedan på Continue.
Formulär för registrering av en domän med en angiven domän

Register the domain where you embed inline checkout

4

Host the file on your domain

Publicera den på:
Den måste levereras via HTTPS, vara åtkomlig utan omdirigeringar och levereras med Content-Type: application/octet-stream eller text/plain.
5

Verify the domain

Klicka på Verify domain. Dodo Payments bekräftar att filen är aktiv och skickar din domän till Apple.
Skärmen Verify your domain med sökvägen till associationsfilen och knappen Verify domain

Verify the hosted association file

6

Confirm it's active

När statusen visar Active är Apple Pay aktiverat för domänen. Använd växlingsknappen Enabled för att aktivera eller inaktivera funktionen per domän.
Lista över Wallet-domäner som visar domäner med Apple Pay-statusen Active och växlingsknapparna Enabled

Verified domains show an Active status

7

Test the integration

  1. Öppna checkout på en Apple-enhet
  2. Kontrollera att Apple Pay-knappen visas
  3. Slutför en testtransaktion

Webbläsarstöd

Dodo Payments Checkout SDK stöder:
  • Chrome (senaste versionen)
  • Firefox (senaste versionen)
  • Safari (senaste versionen)
  • Edge (senaste versionen)
  • IE11+

Inline checkout jämfört med overlay checkout

Välj rätt checkout-typ för ditt användningsfall:
Använd inline checkout när du vill ha maximal kontroll över checkout-upplevelsen och en konsekvent varumärkesprofilering. Använd overlay checkout för snabbare integration med minimala ändringar på dina befintliga sidor.

Relaterade resurser

Overlay Checkout

Använd overlay checkout för snabb modalbaserad integration.

Checkout Sessions API

Skapa checkout-sessioner för att driva dina checkout-upplevelser.

Webhooks

Hantera betalningshändelser på serversidan med webhooks.

Integration Guide

Komplett guide till integration av Dodo Payments.
Om du behöver mer hjälp kan du besöka vår Discord-community eller kontakta vårt supportteam för utvecklare.
Senast ändrad 26 september 2026