Din första betalning: så lägger du in riktiga pengar i din AI-byggda app utan att göra fel

Att lägga till betalningar i en AI-byggd app är ögonblicket då hobby blir verksamhet. Här är hur du ska tänka kring det – vad du ska låta din AI-byggare göra, vad du aldrig ska bygga själv och hur du testar det innan ett riktigt kort träffar det.

Det finns ett specifikt ögonblick då en AI-byggd app slutar vara en leksak och blir en verksamhet: första gången riktiga pengar rör sig genom den. Fram till dess är misstag billiga. En trasig knapp är irriterande. En felaktig summa på en skärm som ingen betalar för är ett stavfel. Men dagen då en riktig kunds kort debiteras kostar ett misstag faktiska pengar – dina eller deras – och “AI:n byggde den så” är inte en mening du vill säga till någon som bestrider en debitering.

Den goda nyheten: att ta betalt i en AI-byggd app är mer lättillgängligt än det låter, om du vet vilka delar du ska lämna till din AI-byggare och vilka delar du aldrig ska röra själv. Det här är en guide till den gränsen.

Den enda regel som håller dig trygg: lagra aldrig kortnummer

Börja här, för det är regeln som allt annat hänger på. Din app ska aldrig se, lagra eller hantera ett rått kreditkortsnummer. Inte i en databas, inte i ett formulär du byggt, inte “bara tillfälligt”. Att hantera kortdata direkt lägger en hög av juridiska och säkerhetsmässiga skyldigheter på dig som ingen förstagångsbyggare bör bära.

I stället använder du en betalningsleverantör – Stripe är den vanliga, och de flesta AI-appbyggare känner den väl. Leverantören ger dig ett färdigbyggt, säkert betalningsformulär. Kunden skriver in sitt kort i leverantörens formulär, leverantören debiterar det, och din app får bara någonsin ett “ja, detta betalades”-meddelande. Din app vet att betalningen skedde. Den vet aldrig kortnumret.

När du säger till din AI-byggare att lägga till betalningar, säg detta uttryckligen: “Använd Stripe Checkout (eller Stripes hostade betalningsformulär) så att min app aldrig hanterar rå kortdata.” Om byggaren börjar generera ett anpassat formulär med ett kortnummerfält, stoppa den. Det är det enda du inte vill att den ska bygga.

Vad “lägga till betalningar” faktiskt innebär

Det hjälper att känna till de rörliga delarna innan du börjar, så du kan märka när något saknas. Ett fungerande betalningsflöde har fyra delar:

  1. Ett pris. Vad du tar betalt, och om det är en engångsbetalning eller återkommande. Det här bor hos din betalningsleverantör, inte hårdkodat i din app.
  2. Ett kassasteg. Knappen kunden klickar på, som skickar dem till leverantörens säkra formulär.
  3. En bekräftelse tillbaka till din app. Efter betalning säger leverantören till din app “den här personen betalade för den här saken”. Det är den del nybörjare oftast hoppar över – och att hoppa över den är så du hamnar med folk som betalade men inte fick åtkomst.
  4. En notering om vem som betalade för vad. Så att din app kan låsa upp rätt sak och så att du kan svara på “betalade den här personen?” senare.

Om din AI-byggare ger dig en Betala-knapp som debiterar ett kort men din app inte gör något annorlunda efteråt, byggde den del 2 och glömde del 3 och 4. Det är det vanligaste halvbyggda betalningsflödet, och det ser ut att fungera ända tills en kund betalar och inte får något.

Hur du beskriver det för din AI-byggare

Här är en instruktion som täcker delarna ovan:

Lägg till betald åtkomst i den här appen med Stripe Checkout. Det finns en plan: 19 dollar/månad.

När en inloggad användare klickar på “Uppgradera”, skicka dem till Stripes hostade kassasida. Bygg inte ett anpassat kortformulär – min app ska aldrig hantera kortnummer.

Efter en lyckad betalning, markera den användaren som “betald” i databasen och lås upp Rapporter-sidan för dem. Efter en misslyckad eller avbruten betalning, skicka tillbaka dem till prissidan med ett meddelande.

Använd en Stripe-webhook för att bekräfta betalningen på serversidan innan något låses upp – lås inte upp baserat enbart på att användaren landar tillbaka på en lyckad-sida.

Det sista stycket är det som skiljer ett riktigt betalningsflöde från ett bräckligt. Att låta lyckad-sidan låsa upp åtkomst betyder att vem som helst som lär sig lyckad-sidans adress kan låsa upp den gratis. Webhooken – ett direkt, verifierat meddelande från Stripe till din apps backend – är den pålitliga signalen. Din AI-byggare vet hur man sätter upp detta; du behöver bara be om det vid namn.

Testa med låtsaspengar innan riktiga pengar

Stripe (och de flesta leverantörer) ger dig ett testläge med låtsaskortnummer som beter sig som riktiga – inklusive kort som lyckas, kort som nekas och kort som utlöser fel. Använd det. Innan ett enda riktigt kort träffar din app, gå igenom varje väg:

  • En lyckad betalning. Låstes rätt sak upp? Ändrades användarens status till “betald”?
  • Ett nekat kort. Hanterade appen det elegant, eller lämnade den användaren fast på en trasig skärm?
  • En avbruten kassa – användaren klickar “tillbaka” i stället för att betala. Hamnade de någonstans förnuftigt, fortfarande icke-uppgraderade?
  • Betala, sedan logga ut och in igen. Är de fortfarande “betalda”? (Det här fångar appar som bara låser upp åtkomst för den aktuella sessionen och glömmer det till imorgon.)

Be din AI-byggare om testkortsnumren, eller slå upp dem i din leverantörs dokumentation. Ett vanligt testkort för “den här betalningen lyckas” är ett som din byggare kan ge dig på begäran. Kör alla fyra scenarier. Vägarna med nekat kort och avbruten kassa är de som AI-byggare oftast lämnar trasiga, eftersom den lyckade vägen är den de optimerar för.

Misstagen som kostar riktiga pengar

Några specifika felmönster dyker upp gång på gång med första betalningsflöden:

Låsa upp på lyckad-sidan i stället för webhooken. Täckt ovan, men värt att upprepa eftersom det är det dyra. Om din app låser upp betalda funktioner i samma stund som användaren landar på /success, litar du på att användarens webbläsare är ärlig om huruvida de betalade. Det är de inte alltid. Lås upp på webhooken.

Ingen notering om vad de betalade för. Om din app bara slår om en global “betald: ja”-flagga kommer du att kämpa i samma stund du har mer än en plan, eller någon säger upp, eller du behöver utfärda en återbetalning. Lagra den specifika saken: vilken plan, när, och leverantörens ID för den betalningen. Du kommer att behöva det för supportfrågor senare.

Glömma att prenumerationer tar slut. En engångsbetalning är enkel: betald är betald. En återkommande prenumeration kan upphöra – kortet löper ut, betalningen misslyckas nästa månad. Om din app bara lyssnar efter “de betalade” och aldrig efter “deras prenumeration tog slut”, kommer du att ha folk som behåller åtkomst gratis efter att de slutat betala. Säg till din byggare att hantera “prenumeration uppsagd eller betalning misslyckad”-meddelandet också, inte bara framgången.

Debitera fel belopp för att priset bor på två ställen. Om priset är skrivet i din apps skärm och angivet hos din betalningsleverantör, kommer de att glida isär förr eller senare, och en kund ser 19 dollar men debiteras 29 dollar. Håll priset på ett ställe – din leverantör – och låt din app visa vad leverantören säger. En källa till sanning.

En kort checklista innan du går live

Innan du växlar från testläge till riktiga pengar:

  • Min app har aldrig ett fält där någon skriver in ett rått kortnummer.
  • Betalning bekräftas av en webhook från leverantören, inte av att användaren når en lyckad-sida.
  • Jag har testat en lyckad betalning, ett nekat kort och en avbruten kassa – alla tre beter sig förnuftigt.
  • Efter betalning förblir åtkomsten upplåst efter utloggning och nästa dag.
  • Min app noterar vad varje person betalade för, inte bara att de betalade.
  • Om en prenumeration upphör tas åtkomsten bort automatiskt.
  • Jag har växlat leverantörsnycklarna från testläge till live-läge (lätt att glömma – din första riktiga kund som träffar testnycklar får ett förvirrande fel).

Om varje ruta är ibockad är du redo för ett riktigt kort. Om inte är det din nästa konversation med din AI-byggare – innan du delar länken, inte efter den första tvisten.

Tankesättet som hjälper

Pengar är den del av din app där “ser ut att fungera” och “fungerar faktiskt” ligger längst ifrån varandra. En trasig layout ser du direkt. Ett betalningsflöde som låser upp åtkomst utan att verifiera betalning ser perfekt ut – tills någon märker det och berättar för sina vänner.

Så behandla betalningsflödet som den enda del av din AI-byggda app som du testar som en skeptiker. Försök ta dig in utan att betala. Försök ha sönder det. Betala och försök sedan förlora din åtkomst. De 30 minuter du lägger på att försöka fuska din egen app är den billigaste försäkring du någonsin köper på den.


På väg att lägga till betalningar i något du byggt? Inled din nästa session med AI-byggaren genom att beskriva hela flödet – priset, kassan, webhook-bekräftelsen och vad som låses upp – på en gång, i stället för att bara be om en Betala-knapp. Betala-knappen är de enkla 10 procenten. De andra 90 procenten är det som håller pengarna ärliga.