Översikt
Inline checkout låter dig skapa fullt integrerade checkout-upplevelser som smälter samman med din webbplats eller applikation. Till skillnad från overlay checkout, som öppnas som en modal ovanpå din sida, integrerar inline checkout betalningsformuläret direkt i din sidlayout. Med inline checkout kan du:- Skapa checkout-upplevelser som är helt integrerade med din app eller webbplats
- Låta Dodo Payments säkert fånga kund- och betalningsinformation i en optimerad checkout-ram
- Visa artiklar, totalsummor och annan information från Dodo Payments på din sida
- Använda SDK-metoder och händelser för att bygga avancerade checkout-upplevelser

Hur Det Fungerar
Inline checkout fungerar genom att integrera en säker Dodo Payments-ram i din webbplats eller app. Checkout-ramen hanterar insamling av kundinformation och fångar betalningsdetaljer. Din sida visar artikellistan, totalsummor och alternativ för att ändra vad som finns i checkout. SDK:n låter din sida och checkout-ramen interagera med varandra. Dodo Payments skapar automatiskt en prenumeration när en checkout är klar, redo för dig att tillhandahålla.Inline checkout-ramen hanterar säkert all känslig betalningsinformation, vilket säkerställer PCI-efterlevnad utan ytterligare certifiering från din sida.
Vad Gör En Bra Inline Checkout?
Det är viktigt att kunderna vet vem de köper från, vad de köper och hur mycket de betalar. För att bygga en inline checkout som är efterlevande och optimerad för konvertering måste din implementation inkludera:
- Återkommande information: Om det är återkommande, hur ofta det återkommer och den totala summan att betala vid förnyelse. Om det är en provperiod, hur länge provperioden varar.
- Artikelbeskrivningar: En beskrivning av vad som köps.
- Transaktionstotalsummor: Transaktionstotalsummor, inklusive delsumma, total skatt och grand total. Se till att inkludera valutan också.
- Dodo Payments-fotnot: Den fullständiga inline checkout-ramen, inklusive checkout-fotnoten som har information om Dodo Payments, våra försäljningsvillkor och vår integritetspolicy.
- Återbetalningspolicy: En länk till din återbetalningspolicy, om den skiljer sig från Dodo Payments standardåterbetalningspolicy.
Kundresa
Checkout-flödet bestäms av din checkout-sessionkonfiguration. Beroende på hur du konfigurerar checkout-sessionen kommer kunderna att uppleva en checkout som kan presentera all information på en enda sida eller över flera steg.Kund öppnar checkout
Du kan öppna inline checkout genom att skicka varor eller en befintlig transaktion. Använd SDK:n för att visa och uppdatera information på sidan, och SDK-metoder för att uppdatera varor baserat på kundinteraktion.

Kund anger sina uppgifter
Inline checkout ber först kunderna att ange sin e-postadress, välja sitt land och (där det krävs) ange sitt postnummer. Detta steg samlar all nödvändig information för att bestämma skatter och tillgängliga betalningsalternativ.Du kan förfylla kunduppgifter och presentera sparade adresser för att effektivisera upplevelsen.
Kund väljer betalningsmetod
Efter att ha angett sina uppgifter presenteras kunderna med tillgängliga betalningsmetoder och betalningsformuläret. Alternativ kan inkludera kredit- eller betalkort, PayPal, Apple Pay, Google Pay och andra lokala betalningsmetoder baserat på deras plats.Visa sparade betalningsmetoder om de finns tillgängliga för att snabba upp checkout.

Checkout slutförd
Dodo Payments dirigerar varje betalning till den bästa förvärvaren för den försäljningen för att få bästa möjliga chans till framgång. Kunderna går in i ett framgångsflöde som du kan bygga.

Snabbstart
Kom igång med Dodo Payments Inline Checkout på bara några rader kod:Steg-för-steg Integrationsguide
Initiera SDK:n för Inline Display
Initiera SDK:n och specificera
displayType: 'inline'. Du bör också lyssna efter checkout.breakdown händelsen för att uppdatera din UI med realtidsberäkningar av skatt och totalsumma.Testa Din Integration
- Starta din utvecklingsserver:
- Testa checkout-flödet:
- Ange din e-post och adressuppgifter i inline-ramen.
- Verifiera 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 loggade i din webbläsarkonsol om du har lagt till en konsollogg i onEvent callback.Komplett React Exempel
Detta exempel visar hur man implementerar en anpassad ordersammanfattning tillsammans med den inline-kassan, och håller dem synkroniserade med hjälp avcheckout.breakdown händelsen.
API Referens
Konfiguration
Initieringsalternativ
| Alternativ | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
mode | "test" | "live" | Ja | Miljöläge. |
displayType | "inline" | "overlay" | Ja | Måste sättas till "inline" för att bädda in kassan. |
onEvent | function | Ja | Callback-funktion för att hantera kassa-händelser. |
Checkoutalternativ
| Alternativ | Typ | Obligatoriskt | Beskrivning |
|---|---|---|---|
checkoutUrl | string | Ja | URL för kassa-session. |
elementId | string | Ja | Den id av DOM-elementet där kassan ska renderas. |
options.showTimer | boolean | Nej | Visa eller dölja kassatimer. Standard är true. När den är inaktiverad får du checkout.link_expired händelsen när sessionen går ut. |
options.showSecurityBadge | boolean | Nej | Visa eller dölja säkerhetsmärket. Standard är true. |
options.manualRedirect | boolean | Nej | När den är aktiverad kommer kassan inte att omdirigera automatiskt efter slutförande. Istället får du checkout.status och checkout.redirect_requested händelser för att hantera omdirigeringen själv. |
options.themeConfig | ThemeConfig | Nej | Anpassad temakonfiguration. |
options.payButtonText | string | Nej | Anpassad text att visa på betalningsknappen. |
options.fontSize | FontSize | Nej | Global teckenstorlek för kassan. |
options.fontWeight | FontWeight | Nej | Global typsnittsvikt för kassan. |
Metoder
Öppna Checkout
Öppnar checkout-ramen i den angivna behållaren.manualRedirect, hantera kassa-slutförande i din onEvent callback:
Stäng Kassa
Tar bort kassa-ramen programatiskt och städar upp händelselyssnare.Kontrollera Status
Returnerar om kassa-ramen för närvarande är injicerad.Händelser
SDK:n tillhandahåller realtids-händelser genomonEvent callback. För inline-kassan är checkout.breakdown särskilt användbar för att synkronisera din UI.
| Händelsetyp | Beskrivning |
|---|---|
checkout.opened | Kassaram har laddats. |
checkout.breakdown | Utlöst när priser, skatter eller rabatter uppdateras. |
checkout.customer_details_submitted | Kunduppgifter har skickats. |
checkout.pay_button_clicked | Utlöst när kunden klickar på betalningsknappen. Användbart för analys och spårning av konverteringsflöden. |
checkout.redirect | Kassan kommer att utföra en omdirigering (t.ex. till en bank-sida). |
checkout.error | Ett fel inträffade under kassan. |
checkout.link_expired | Utlöst när kassa-sessionen går ut. Endast mottagen när showTimer är inställt på false. |
checkout.status | Utlöst när manualRedirect är aktiverat. Innehåller kassa-status (succeeded, failed, eller processing). |
checkout.redirect_requested | Utlöst när manualRedirect är aktiverat. Innehåller URL:en för att omdirigera kunden till. |
Kassa Brytdata
Händelsencheckout.breakdown tillhandahåller följande data:
Kassa Status Händelsedata
NärmanualRedirect är aktiverat, får du checkout.status händelsen med följande data:
Kassa Omdirigering Begärd Händelsedata
NärmanualRedirect är aktiverat, får du checkout.redirect_requested händelsen med följande data:
Förstå Brytdata Händelsen
Händelsencheckout.breakdown är det primära sättet att hålla din applikations UI synkroniserad med Dodo Payments kassastatus.
När den utlöses:
- Vid initialisering: Omedelbart efter att kassa-ramen har laddats och är redo.
- Vid adressändring: När kunden väljer ett land eller anger ett postnummer som resulterar i en skatteberäkning.
| Fält | Beskrivning |
|---|---|
subTotal | Summan av alla radposter i sessionen innan några rabatter eller skatter tillämpas. |
discount | Det totala värdet av alla tillämpade rabatter. |
tax | Det beräknade skattebeloppet. I inline läge uppdateras detta dynamiskt när användaren interagerar med adressfälten. |
total | Det matematiska resultatet av subTotal - discount + tax i sessionens basvaluta. |
currency | ISO-valutakoden (t.ex. "USD") för standard subtotal, rabatt och skattevärden. |
finalTotal | Det faktiska beloppet som kunden debiteras. Detta kan inkludera ytterligare justeringar av utländsk växelkurs eller lokala betalningsmetodavgifter som inte ingår i den grundläggande prisuppdelningen. |
finalTotalCurrency | Valutan i vilken kunden faktiskt betalar. Detta kan skilja sig från currency om köpkraftsparitet eller lokal valutakonvertering är aktiv. |
- Valutaformatering: Priser returneras alltid som heltal i den minsta valutaenheten (t.ex. cent för USD, yen för JPY). För att visa dem, dela med 100 (eller lämplig tiopotens) eller använd ett formateringsbibliotek som
Intl.NumberFormat. - Hantering av initiala tillstånd: När kassan först laddas, kan
taxochdiscountvara0ellernulltills användaren anger sin faktureringsinformation eller tillämpar en kod. Din UI bör hantera dessa tillstånd smidigt (t.ex. visa en dash—eller dölja raden). - “Slutlig total” vs “Total”: Medan
totalger dig den standardprisberäkningen, ärfinalTotalkällan till sanningen för transaktionen. OmfinalTotalär närvarande, återspeglar det exakt vad som kommer att debiteras kundens kort, inklusive eventuella dynamiska justeringar. - Realtidsfeedback: Använd fältet
taxför att visa användare att skatter beräknas i realtid. Detta ger en “live” känsla till din kassasida och minskar friktionen under adressinmatningssteget.
Implementeringsalternativ
Paketmanagerinstallation
Installera via npm, yarn eller pnpm som visas i Steg-för-steg integrationsguiden.CDN-implementering
För snabb integration utan byggsteg kan du använda vår CDN:Temaanpassning
Du kan anpassa kassans utseende genom att skicka ettthemeConfig objekt i options parametern när du öppnar kassan. Temakonfigurationen stöder både ljusa och mörka lägen, vilket gör att du kan anpassa färger, kanter, text, knappar och kantradie.
Grundläggande temakonfiguration
Komplett temakonfiguration
Alla tillgängliga temaegenskaper:Endast ljus läge
Om du bara vill anpassa det ljusa temat:Endast mörkt läge
Om du bara vill anpassa det mörka temat:Partiell temaupphävning
Du kan åsidosätta endast specifika egenskaper. Kassan kommer att använda standardvärden för egenskaper som du inte specificerar:Temakonfiguration med andra alternativ
Du kan kombinera temakonfiguration med andra kassaval:TypeScript-typer
För TypeScript-användare exporteras alla temakonfigurationstyper:Felhantering
SDK:n tillhandahåller detaljerad felinformation genom händelsessystemet. Implementera alltid korrekt felhantering i dinonEvent callback:
Bästa praxis
- Responsiv design: Se till att ditt behållarelement har tillräcklig bredd och höjd. Iframen kommer vanligtvis att expandera för att fylla sin behållare.
- Synkronisering: Använd
checkout.breakdownhändelsen för att hålla din anpassade ordersammanfattning eller prissättningstabeller synkroniserade med vad användaren ser i kassaram. - Skelett-tillstånd: Visa en laddningsindikator i din behållare tills
checkout.openedhändelsen utlöses. - Rengöring: Anropa
DodoPayments.Checkout.close()när din komponent avmonteras för att städa upp iframen och händelselyssnarna.
För implementationer av mörkt läge rekommenderas det att använda
#0d0d0d som bakgrundsfärg för optimal visuell integration med inline-kassaram.Validering av betalningsstatus
Varför server-side validering är avgörande
Även om inline-kassa-händelser somcheckout.status ger realtidsfeedback, bör de inte vara din enda sanning för betalningsstatus. Nätverksproblem, webbläsarkrascher eller användare som stänger sidan kan orsaka att händelser missas. För att säkerställa pålitlig betalningsvalidering:
- Din server bör lyssna på webhook-händelser - Dodo Payments skickar webhooks för förändringar i betalningsstatus
- Implementera en pollingmekanism - Din frontend bör pollera din server för statusuppdateringar
- Kombinera båda metoderna - Använd webhooks som primär källa och polling som en fallback
Rekommenderad arkitektur
Implementeringssteg
1. Lyssna på kassa-händelser - När användaren klickar på betalning, börja förbereda för att verifiera status:payment.succeeded eller payment.failed webhooks. Se vår Webhooks-dokumentation för detaljer.
Hantering av omdirigeringar (3DS, Google Pay, UPI)
När du användermanualRedirect: true, kräver vissa betalningsmetoder att användaren omdirigeras bort från din sida för autentisering:
- 3D Secure (3DS) - Kortautentisering
- Google Pay - Plånboksautentisering i vissa flöden
- UPI - Indisk betalningsmetod omdirigeringar
checkout.redirect_requested händelsen. Omdirigera användaren till den angivna URL:en:
- Kontrollera om användaren återvänder från en omdirigering (t.ex. via
sessionStorage) - Börja pollera din server för den bekräftade betalningsstatusen
- Visa ett “Verifierar betalning…” tillstånd medan du pollar
- Visa framgång/misslyckande UI baserat på den serverbekräftade statusen
Felsökning
Kassaram visas inte
Kassaram visas inte
- Verifiera att
elementIdmatcharidav endivsom faktiskt finns i DOM. - Se till att
displayType: 'inline'skickades tillInitialize. - Kontrollera att
checkoutUrlär giltig.
Skatter uppdateras inte i min UI
Skatter uppdateras inte i min UI
- Se till att du lyssnar på
checkout.breakdownhändelsen. - Skatter beräknas endast efter att användaren anger ett giltigt land och postnummer i kassaram.
Aktivera Digitala Plånböcker
För detaljerad information om att ställa in Apple Pay, Google Pay och andra digitala plånböcker, se sidan Digitala Plånböcker.Snabbinstallation för Apple Pay
Ladda ner domänassocieringsfil
Ladda ner Apple Pay domänassocieringsfilen.
Begär aktivering
E-posta support@dodopayments.com med din produktionsdomän URL och begär aktivering av Apple Pay.
Webbläsarstöd
Dodo Payments Checkout SDK stöder följande webbläsare:- Chrome (senaste)
- Firefox (senaste)
- Safari (senaste)
- Edge (senaste)
- IE11+
Inline vs Overlay Checkout
Välj rätt kassatyp för ditt användningsområde:| Funktion | Inline Checkout | Overlay Checkout |
|---|---|---|
| Integrationsdjup | Fullständigt inbäddad i sidan | Modal ovanpå sidan |
| Layoutkontroll | Full kontroll | Begränsad |
| Branding | Sömlös | Separat från sidan |
| Implementeringsinsats | Högre | Lägre |
| Bäst för | Anpassade kassasidor, högkonverteringsflöden | Snabb integration, befintliga sidor |
Relaterade Resurser
Overlay Checkout
Använd overlay checkout för snabb modalbaserad integration.
Checkout Sessions API
Skapa kassatjänster för att driva dina kassaupplevelser.
Webhooks
Hantera betalningsevenemang på serversidan med webhooks.
Integrationsguide
Komplett guide till att integrera Dodo Payments.
