Vibe-koodaus · Oppitunti

Maksamisen perusteet

Veloitukset, tilaukset ja webhookit.

Oppitunti 1/413 vaihetta

Maksamisen perusteet on ilmainen Vibe-koodaus-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Vibe-koodaus-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Vibe-koodaus-kurssilla on yhteensä 4 oppituntia.

Miksi maksut ovat erilaisia

Maksujen lisääminen on hetki, jolloin sovelluksenne käsittelee oikeaa rahaa, todellista petosriskiä ja sääntelyä. Tämän alueen virhe ei ole kosmeettinen häiriö — se voi veloittaa asiakkaalta kahdesti tai vuotaa korttitietoja.

Kun ohjelmoitte maksut vibe coding -menetelmällä, tehtävänne muuttuu toimimaan saamisesta todistettavasti oikein toimimiseen. Kuvaatte tavoitteen täsmällisesti ja annatte tekoälyn rakentaa integraation rungon, mutta vastuu rahaliikenteestä säilyy teillä.

Maksupalveluntarjoaja

Olette lähes koskaan suoraan yhteydessä pankkeihin. Maksupalveluntarjoaja (Stripe, Paddle, Adyen, RevenueCat mobiilissa) abstrahoi kortit, lompakot ja pankkiverkostot yhden rajapinnan taakse.

Palveluntarjoaja ylläpitää arkaluonteiset osat, joten korttinumerot eivät koskaan päädy palvelimellenne. Koodinne ohjaa palveluntarjoajaa; palveluntarjoaja siirtää rahat.

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.

Kertamaksu vai toistuva maksu

Kertamaksu veloittaa kiinteän summan kerran: esimerkiksi kurssista, krediittipaketista tai pysyvästä käyttöoikeudesta. Tilaus veloittaa toistuvan aikataulun mukaan, ja sen on käsiteltävä uusinnat, päivitykset ja peruutukset.

Nämä tarvitsevat erilaiset tietomallit. Niiden sekoittaminen on klassinen aloittelijan virhe — tilaukset sisältävät ajan kuluessa muuttuvaa tilaa, kertamaksut eivät.

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.

Rahavirta

Jokainen veloitus kulkee tietyn reitin: asiakas hyväksyy maksun, palveluntarjoaja veloittaa varat, rahat siirtyvät tilillenne muutamaa päivää myöhemmin ja maksut vähennetään matkan varrella.

Veloituksen hyväksyminen ei ole sama asia kuin tilitys. Veloitus voidaan hyväksyä, vaikka sen tilitys epäonnistuisi. Tämän eron — odottaa, onnistua, epäonnistua — huomioiminen on oikean integraation ydin.

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 ja isännöityjen kenttien käyttö

PCI DSS on korttitietojen käsittelyä koskeva turvallisuusstandardi. Raakojen korttinumeroiden käsittely vetää teidät mukaan laajaan vaatimustenmukaisuuden piiriin, jota ette halua.

Ratkaisu on estää korttitietojen pääsy palvelimelle kokonaan. Käyttäkää palveluntarjoajan isännöimää maksusivua tai korttitietoja tunnisteiksi muuntavia asiakaspuolen kenttiä. Kortista tulee tunniste, ja te tallennatte vain tunnisteen.

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.

Tunnisteita, ei kortteja

Kun kortti on syötetty, palveluntarjoaja palauttaa tunnisteen tai tallennetun maksutavan tunnisteen. Tätä läpinäkymätöntä viitettä voidaan veloittaa uudelleen ilman, että numeroa käsitellään uudestaan.

Tunnisteiden tallentaminen mahdollistaa tilausten laskutuksen ja yhden napsautuksen uusintaostot, samalla kun varsinainen PAN pysyy palveluntarjoajan säilössä.

Valuutta ja summat

Rahaa ei koskaan käsitellä liukulukuna. 19,99 dollaria tallennetaan kokonaislukuna 1999 pienimpinä valuuttayksikköinä eli sentteinä. Liukuluvut aiheuttavat pyöristysvirheitä, jotka vääristävät summat.

Liittäkää summaan aina valuuttakoodi. ”1999” ei tarkoita mitään, ennen kuin tiedätte, ovatko kyseessä USD-sentit vai JPY, jolla ei ole lainkaan pienempää valuuttayksikköä.

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.

Idempotenssi

Verkot yrittävät uudelleen. Käyttäjä napsauttaa kahdesti, aikakatkaistu pyyntö yritetään uudelleen tai webhook toimitetaan uudestaan. Ilman suojausta veloitatte kahdesti.

Idempotenssiavain on yksilöllinen arvo, jonka liitätte veloituspyyntöön. Sen avulla palveluntarjoaja tunnistaa uudelleenyrityksen ja palauttaa alkuperäisen tuloksen uuden veloituksen luomisen sijaan. Käsitelkää sitä pakollisena, ei valinnaisena.

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.

Webhookit kertovat totuuden

Käyttäjän selain ei ole luotettava todistaja. Käyttäjä saattaa sulkea välilehden heti maksamisen jälkeen. Palveluntarjoaja kertoo, mitä todella tapahtui webhookien avulla — palvelinten välisinä tapahtumina, kuten payment_succeeded.

Älkää koskaan myöntäkö käyttöoikeutta pelkän asiakkaan uudelleenohjauksen perusteella. Webhook on totuuden lähde toimituksen vahvistamiseen.

Testitila ja hiekkalaatikot

Jokaisella vakavasti otettavalla palveluntarjoajalla on testitila, tekaistut korttinumerot ja erilliset API-avaimet. Voitte simuloida onnistuneita veloituksia, hylkäyksiä, riitautuksia ja vanhentuneita kortteja siirtämättä senttiäkään.

Rakentakaa ja varmistakaa koko työnkulku ensin testitilassa. Vaihtakaa tuotantoavaimiin vasta, kun webhookit, hyvitykset ja poikkeustapaukset toimivat.

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.

Suunnittele koko työnkulku ensin

Ennen kuin kirjoitatte koodia, kuvatkaa tekoälyavustajalle koko käyttäjän matka: kuka maksaa, mistä, miten käyttöoikeus myönnetään ja mitä tapahtuu maksun epäonnistuessa.

Selkeä määritys tuottaa yhtenäisen integraation. Epämääräinen kehote tuottaa onnellisen polun demon, joka hajoaa ensimmäisen hylätyn kortin kohdalla.

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.

Pikatarkistus

Testatkaa keskeisten käsitteiden ymmärtämisenne.

Kertaus

Maksut eroavat tavallisesta koodista, koska niihin liittyy oikeaa rahaa ja sääntelyä. Ohjaatte palveluntarjoajaa, tallennatte korttien sijaan tunnisteita ja pidätte korttitiedot pois palvelimelta pienentääksenne PCI-vaatimustenmukaisuuden piiriä.

Raha on kokonaislukuna ilmaistu senttimäärä sekä valuuttakoodi. Idempotenssiavaimet estävät kaksoisveloitukset, ja webhookit — eivät selain — kertovat, mitä todella maksettiin. Määritelkää koko työnkulku epäonnistumisineen ennen koodaamista.

Aloita maksutta

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
25
Oppitunnit
100

Usein kysytyt kysymykset

Onko oppitunti ”Maksamisen perusteet” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Vibe-koodaus-oppimispolun 3 oppituntia, myös oppitunnin “Maksamisen perusteet”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Vibe-koodaus-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Maksamisen perusteet”?

Veloitukset, tilaukset ja webhookit. Harjoittelet Vibe-koodaus-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Vibe-koodaus-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Vibe-koodaus-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Maksamisen perusteet”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Vibe-koodaus-oppitunnilla?

Kyllä. Jokainen Vibe-koodaus-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Maksamisen perusteet
  2. Maksusivun käyttöönotto
  3. Tilausten hallinta
  4. Maksujen turvallinen vahvistaminen
← Takaisin: Vibe-koodaus