Betalningsbegrepp
Debiteringar, prenumerationer och webhooks.
Betalningsbegrepp är en gratis lektion i Vibe Coding på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Vibe Coding, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Vibe Coding innehåller totalt 4 lektioner.
Varför betalningar är annorlunda
Att lägga till betalningar är ögonblicket då appen börjar hantera riktiga pengar, verkliga bedrägerier och verklig reglering. Ett fel här är inte bara ett kosmetiskt problem — det kan debitera en kund två gånger eller läcka kortuppgifter.
När ni vibe-kodar betalningar skiftar ert uppdrag från ”få det att fungera” till ”gör det bevisligen korrekt”. Ni beskriver avsikten exakt och låter AI:t skapa integrationsstommen, men ni är fortfarande ansvariga för pengaflödet.
Betalningsleverantören
Ni kommunicerar nästan aldrig direkt med banker. En betalningsleverantör (Stripe, Paddle, Adyen, RevenueCat för mobiler) abstraherar kort, plånböcker och bankinfrastrukturer bakom ett enda API.
Leverantören hanterar de känsliga delarna, så kortnummer aldrig når er server. Er kod samordnar leverantören; leverantören flyttar pengarna.
I'm building a SaaS web app and want to add card payments. Compare Stripe, Paddle, and Lemon Squeezy for a solo developer who wants the provider to act as merchant of record and handle EU VAT for me. List the trade-offs in a short table.Engångsbetalning eller återkommande betalning
En engångsbetalning debiterar ett fast belopp en gång: för en kurs, ett kred paket eller en upplåsning utan tidsbegränsning. En prenumeration debiteras enligt ett återkommande schema och måste hantera förnyelser, uppgraderingar och uppsägningar.
De här betalningstyperna kräver olika datamodeller. Att blanda ihop dem är ett klassiskt nybörjarmisstag – prenumerationer har ett tillstånd som förändras över tid, medan engångsbetalningar inte har det.
Explain the data-model difference between storing a one-time purchase versus a recurring subscription. Show the database tables I'd need for each, including which fields track renewal date and current status.Pengaflödet
Varje debitering följer en väg: kunden godkänner, leverantören genomför debiteringen, pengarna sätts in på ert konto flera dagar senare och avgifter dras av på vägen.
Godkännande är inte samma sak som avräkning. En debitering kan godkännas men ändå misslyckas med att avräknas. Att utforma systemet för det här mellanläget – väntande, lyckad, misslyckad – är centralt för en korrekt integration.
Walk me through the lifecycle of a card charge from authorization to settlement. Define the difference between authorize, capture, and settle, and tell me which statuses I should persist for each step.PCI och varför ni använder Hosted Fields
PCI DSS är säkerhetsstandarden för hantering av kortuppgifter. Om ni hanterar råa kortnummer hamnar ni inom ett omfattande efterlevnadsområde som ni inte vill behöva hantera.
Utvägen är att aldrig låta kortuppgifter nå er server. Använd leverantörens hostade checkout-sida eller tokeniserande fält på klientsidan. Kortet blir en token; det enda ni någonsin sparar är tokenen.
I want to minimize my PCI compliance scope. Explain how hosted checkout pages and client-side tokenization keep raw card numbers off my server, and what "SAQ A" means for a small team using Stripe Checkout.Token i stället för kort
När ett kort har angetts returnerar leverantören en token eller ett sparat ID för betalningsmetoden. Den här ogenomskinliga referensen kan debiteras igen utan att kortnumret någonsin behöver hanteras på nytt.
Genom att spara token kan ni fakturera prenumerationer och erbjuda återköp med ett enda klick, samtidigt som det faktiska PAN-numret stannar i leverantörens valv.
Valuta och belopp
Pengar är aldrig ett flyttal. 19,99 USD sparas som heltalet 1999 i den minsta valutaenheten (cent). Flyttal leder till avrundningsfel som förstör totalsummor.
Koppla alltid ihop ett belopp med en valutakod. ”1999” betyder ingenting förrän ni vet om det är cent i USD eller JPY (som inte har någon underenhet alls).
Why should monetary amounts be stored as integers in the smallest currency unit instead of floats? Give me a code example of a bug caused by using floats for money, and show the integer-cents fix.Idempotens
Nätverk försöker igen. En användare dubbelklickar, en begäran tar för lång tid och försöker igen eller en webhook levereras på nytt. Utan skydd debiterar ni kunden två gånger.
En idempotensnyckel är ett unikt värde som ni kopplar till en debiteringsbegäran, så att leverantören känner igen ett nytt försök och returnerar det ursprungliga resultatet i stället för att skapa en ny debitering. Behandla den som obligatorisk, inte valfri.
Explain idempotency keys for payment requests. Show how to generate one per checkout attempt and pass it to Stripe so that a retried request never creates a duplicate charge.Webhooks är sanningen
Användarens webbläsare är inget tillförlitligt vittne. Användaren kan stänga fliken direkt efter betalningen. Leverantören berättar vad som faktiskt hände genom webhooks — händelser mellan servrar, som payment_succeeded.
Ge aldrig åtkomst enbart baserat på en omdirigering från klienten. Webhooken är er sanningskälla för leveransen.
Testläge och sandlådor
Alla seriösa leverantörer har ett testläge med påhittade kortnummer och separata API-nycklar. Ni kan simulera lyckade debiteringar, nekade betalningar, tvister och utgångna kort utan att flytta ett enda öre.
Bygg och verifiera hela flödet i testläge först. Byt till produktionsnycklar först när webhooks, återbetalningar och kantfall fungerar som de ska.
Give me a checklist of payment scenarios I should test in Stripe test mode before going live: successful charge, card decline, insufficient funds, 3D Secure challenge, refund, and disputed charge. Include the test card numbers for each.Utforma hela flödet först
Innan ni skriver någon kod ska ni beskriva hela resan för AI-assistenten: vem som betalar, vad betalningen gäller, hur åtkomst beviljas och vad som händer när betalningen misslyckas.
En tydlig specifikation ger en sammanhängande integration. En vag prompt ger en demo som bara fungerar i idealfallet och går sönder vid det första nekade kortet.
Here is my product: a $15/month writing app with a 7-day trial. Before any code, write a complete payment-flow spec: states, transitions, what grants and revokes access, and every failure case I must handle. Ask me clarifying questions first.Snabbkontroll
Testa hur väl ni behärskar grundkoncepten.
Sammanfattning
Betalningar skiljer sig från vanlig kod eftersom riktiga pengar och reglering är inblandade. Ni samordnar en leverantör, sparar token i stället för kort och håller kortuppgifter borta från servern för att begränsa PCI-omfattningen.
Pengar representeras av heltal i cent plus en valutakod. Idempotensnycklar förhindrar dubbla debiteringar, och webhooks — inte webbläsaren — är sanningen om vad som betalades. Specificera hela flödet, inklusive fel, innan ni börjar koda.
Lär dig JavaScript med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 25
- Lektioner
- 100
Vanliga frågor
Är lektionen ”Betalningsbegrepp” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Vibe Coding, inklusive ”Betalningsbegrepp”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Vibe Coding innehåller totalt 4 lektioner.
Vad lär jag mig i ”Betalningsbegrepp”?
Debiteringar, prenumerationer och webhooks. Ni övar på Vibe Coding med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Vibe Coding?
Du behöver inga förkunskaper. Utbildningen i Vibe Coding på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Betalningsbegrepp”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Vibe Coding-lektionen?
Ja. Varje Vibe Coding-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.