Vibe Coding · Ders

Ödeme Kavramları

Ücretlendirmeler, abonelikler ve web kancaları.

1. ders / 413 adım

Ödeme Kavramları, CoddyKit'te ücretsiz bir Vibe Coding dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Vibe Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Vibe Coding kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Why Payments Are Different

Adding payments is the moment your app touches real money, real fraud, and real regulation. A bug here is not a cosmetic glitch — it can double-charge a customer or leak card data.

When you vibe-code payments, your job shifts from "make it work" to "make it provably correct". You describe intent precisely and let the AI scaffold the integration, but you stay accountable for the money flow.

The Payment Provider

You almost never talk to banks directly. A payment provider (Stripe, Paddle, Adyen, RevenueCat for mobile) abstracts cards, wallets, and bank rails behind one API.

The provider hosts the sensitive parts so card numbers never hit your server. Your code orchestrates the provider; the provider moves the money.

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.

One-Time vs Recurring

A one-time payment charges a fixed amount once: a course, a credit pack, a lifetime unlock. A subscription charges on a repeating schedule and must handle renewals, upgrades, and cancellations.

These need different data models. Conflating them is a classic early mistake — subscriptions carry state over time, one-time charges do not.

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.

The Money Flow

Every charge follows a path: the customer authorizes, the provider captures funds, money settles into your account days later, and fees are deducted along the way.

Authorization is not settlement. A charge can be authorized and still fail to settle. Designing for this gap — pending, succeeded, failed — is core to a correct 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 and Why You Use Hosted Fields

PCI DSS is the security standard for handling card data. Touching raw card numbers drags you into a heavy compliance scope you do not want.

The escape hatch is to never let card data reach your server. Use the provider's hosted checkout page or tokenizing client-side fields. The card becomes a token; you only ever store the token.

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.

Tokens, Not Cards

After a card is entered, the provider returns a token or a saved payment-method ID. This opaque reference can be charged again without ever re-handling the number.

Storing tokens lets you bill subscriptions and offer one-click repurchase, all while the actual PAN stays inside the provider's vault.

Currency and Amounts

Money is never a float. $19.99 is stored as the integer 1999 in the smallest currency unit (cents). Floating point introduces rounding errors that corrupt totals.

Always pair an amount with a currency code. "1999" means nothing until you know it is USD cents versus JPY (which has no minor unit at all).

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.

Idempotency

Networks retry. A user double-clicks, a request times out and retries, a webhook is redelivered. Without protection, you charge twice.

An idempotency key is a unique value you attach to a charge request so the provider recognizes a retry and returns the original result instead of creating a second charge. Treat it as mandatory, not optional.

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 Are the Truth

The user's browser is not a reliable witness. They may close the tab right after paying. The provider tells you what really happened through webhooks — server-to-server events like payment_succeeded.

Never grant access based purely on a client redirect. The webhook is your source of truth for fulfilment.

Test Mode and Sandboxes

Every serious provider has a test mode with fake card numbers and separate API keys. You can simulate successful charges, declines, disputes, and expired cards without moving a cent.

Build and verify the entire flow in test mode first. Only swap to live keys once webhooks, refunds, and edge cases all behave.

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.

Designing the Whole Flow First

Before writing any code, describe the full journey to your AI assistant: who pays, for what, how access is granted, and what happens when payment fails.

A clear spec produces a coherent integration. A vague prompt produces a happy-path demo that breaks on the first declined card.

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.

Quick Check

Test your grasp of the core concepts.

Recap

Payments differ from normal code because real money and regulation are involved. You orchestrate a provider, store tokens instead of cards, and keep card data off your server to shrink PCI scope.

Money is integer cents plus a currency code. Idempotency keys stop duplicate charges, and webhooks — not the browser — are the truth about what was paid. Spec the entire flow, including failures, before coding.

Başlamak ücretsiz

Yapay zeka eğitmeniyle JavaScript öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
25
Dersler
100

Sıkça Sorulan Sorular

“Ödeme Kavramları” dersi ücretsiz mi?

Evet — “Ödeme Kavramları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Vibe Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Vibe Coding kursu toplamda 4 dersten oluşur.

“Ödeme Kavramları” dersinde ne öğreneceğim?

Ücretlendirmeler, abonelikler ve web kancaları. Vibe Coding ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Vibe Coding öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Vibe Coding, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Ödeme Kavramları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Vibe Coding dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Vibe Coding dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Ödeme Kavramları
  2. Ödeme Sayfası Kurma
  3. Abonelikleri Yönetme
  4. Ödemeleri Güvenle Doğrulama
← Vibe Coding Sayfasına Dön