For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /tr/docs/web/stripe-payments.md (or send Accept: text/markdown).
Stripe ödemeleri ekleyin
Ücretsiz bir Stripe hesabı, yinelenen fiyatlı bir ürün, gizli anahtar ve ödemeden sonra yetki veren imzalı webhook oluşturun.
Başlangıç seviyesinde izlenecek yol
Ön koşullar: uygulama yerelde çalışıyor (5 dakikada yayınlayın) ve gerçek hesaplar için geçiş yapılmış bir veritabanı (Veritabanını kurun). Stripe hesabı için bir e-posta adresi gerekir — kart yok, ödeme yok. Bu rehberdeki her şey test modunda olur: sahte para, test kartı numaraları, canlıya çıkmadan önce sınırsız yeniden deneme.
Kısa terimler: test modu Stripe'ın sandbox'udur — gösterge panelindeki Test mode düğmesi siz kapatana kadar her anahtarı, ürünü ve ödemeyi sahte tutar. Gizli anahtar (sk_test_…) sunucunuzun Stripe'a olan parolasıdır. Fiyatlı ürün, müşterilerin satın aldığı şeydir; price id (price_…) onu kodda adlandırır. Webhook, bir ödeme başarılı olduğunda veya abonelik değiştiğinde Stripe'ın sunucunuzu çağırmasıdır; imza gizli anahtarı (whsec_…) çağrının gerçekten Stripe'dan geldiğini kanıtlar.
Oluşturacağınız şey: bir Stripe hesabı, yinelenen fiyatlı bir ürün, gizli bir API anahtarı ve bir webhook uç noktası — yaklaşık yirmi dakika. Stripe ödeme sayfasını kendisi barındırır; kit oturumu sunucu tarafında oluşturur ve yönlendirir, bu yüzden yayınlanabilir tarayıcı anahtarı gerekmez.
Kapsamı aklınızda tutun: bu rehber yalnızca web abonelikleri satar. iOS/Android uygulama içi satın alımlar Apple ve Google faturalandırmasından geçmelidir — asla Stripe Checkout'tan değil — mobilin RevenueCat kullanmasının sebebi budur.
Stripe hesabı oluşturun
1. stripe.com → Start now'u açın ve e-postanızla kaydolun.
2. Katılım işlemi işletmeniz hakkında sorular sorar — test modunda her soruyu atlayabilir ve yine de tam sandbox'u kullanabilirsiniz; etkinleştirmeyi yalnızca gerçek ödemeleri kabul etmeden önce tamamlayın.
Beklenen: başlıkta Test mode düğmesi görünür olan gösterge paneline ulaşırsınız. Aşağıdaki her şey için açık tutun — canlı anahtarlar daha sonra üretim gizli deponuza girer, dizüstü bilgisayar env dosyasına asla.
API anahtarlarını kopyalayın
1. Gösterge panelinde Developers → API keys'i açın.
2. İki test anahtarı görürsünüz: Publishable key pk_test_… ve maskelenmiş Secret key. Gizli anahtarın yanındaki Reveal test key'e tıklayın ve sk_test_… değerini kopyalayın.
Kit'in yalnızca gizli anahtara ihtiyacı vardır: ödeme oturumları sunucuda oluşturulur ve kullanıcı Stripe'ın barındırdığı sayfaya yönlendirilir, bu yüzden yayınlanabilir anahtar env değişkenlerine girmez. Daha sonra oluşturacağınız bir ürün Stripe.js eklerse yayınlanabilir anahtarı istemci tarafında kullanırdınız; kit'in faturalandırma akışı kullanmaz.
sk_test_… anahtarı sandbox hesabı için tam kimlik bilgisidir: apps/web/.env.local veya bir gizli depoda yaşar, asla NEXT_PUBLIC_/EXPO_PUBLIC_ değişkenlerinde veya Git'te olmaz.
Ürün ve fiyat oluşturun
1. Product catalog → Add product'ı açın.
2. Planınızın adını verin — Pro, kit'in gönderdiği planla eşleşir — bir fiyat verin ve Recurring'i seçin (ör. aylık): kit'in ödemesi abonelik modu oturumları oluşturur ve bunlar tek seferlik değil yinelenen fiyat ister.
3. Kaydedin, ürünü açın ve price id'yi kopyalayın — price_… ile başlar (prod_… değil, o ürün kimliğidir).
Gönderilen pro planı zaten Monthly/Yearly düğmesi gösterir: aylık STRIPE_PRICE_ID ile ödeme yapar ve yıllık seçenek STRIPE_PRICE_ID_PRO_YEARLY içinde ikinci bir yinelenen fiyat ister — olmadan yıllık ödeme price-unconfigured ile başarısız olur. Plan adlarını, tutarları ve satın alımın ne verdiğini apps/web/src/product-plans.ts dosyasında değiştirin — Stripe para tarafını, plan dosyası yetki tarafını tutar.
Webhook uç noktası ekleyin
Webhook, erişimi gerçekten veren şeydir: kit, yetkiyi ancak imzalı bir Stripe olayı geldikten sonra çevirir, bu yüzden yalnızca ödeme yönlendirmesi hiçbir şey kanıtlamaz.
1. Developers → Webhooks → Add endpoint'i açın.
2. Endpoint URL: genel URL'niz artı /api/billing/webhook — ör. https://yourdomain.com/api/billing/webhook. Diğer faturalandırma sağlayıcıları bu dizin altında kendi yollarını alır; Stripe'ın dinleyicisi kökte yaşar.
3. Select events altında kit'in işlediği olayları seçin: checkout.session.completed, checkout.session.async_payment_succeeded, checkout.session.async_payment_failed, invoice.paid, invoice.payment_failed, customer.subscription.created, customer.subscription.updated ve customer.subscription.deleted.
4. Uç noktasını oluşturun, sayfasını açın, Signing secret altındaki Reveal'e tıklayın ve whsec_… değerini kopyalayın — her uç noktanın kendi gizli anahtarı vardır.
Yerel geliştirme Stripe'ın sunucularını alamaz, bu yüzden bunun yerine Stripe CLI kullanın: bir kez stripe login, ardından ikinci bir terminalde stripe listen --forward-to localhost:3000/api/billing/webhook. Geçici bir whsec_… yazdırır — stripe listen çalışırken .env.local içine gösterge paneli değeri değil bu değer girer.
Değerleri uygulamaya ekleyin
Aşağıdaki satırları apps/web/.env.local içine ayarlayın. BILLING_PROVIDER=stripe bağdaştırıcıyı seçer; diğer üçü anahtar, fiyat ve imza gizli anahtarıdır. Herhangi biri eksikken sağlayıcıyı etkinleştirmek başlangıcı düşürür ve değişkeni adlandırır.
Üç STRIPE_* değerinin tamamı yalnızca sunucudadır — asla NEXT_PUBLIC_/EXPO_PUBLIC_ değil, asla commit değil; üretim bunları hostun gizli yöneticisi aracılığıyla alır (dağıtım rehberi Secret Manager'ı kapsar). Düzenledikten sonra geliştirme sunucusunu yeniden başlatın.
# apps/web/.env.local
BILLING_PROVIDER=stripe
STRIPE_SECRET_KEY=sk_test_…
STRIPE_PRICE_ID=price_…
STRIPE_WEBHOOK_SECRET=whsec_… # `stripe listen` value locally; endpoint signing secret in production
# STRIPE_PRICE_ID_PRO_YEARLY=price_… # required for the shipped Yearly toggleDoğrulayın ve sorun giderin
stripe listen --forward-to localhost:3000/api/billing/webhook başlatın ve çalışır bırakın, geliştirme sunucusunu yeniden başlatın, ardından /billing açın, Pro planını seçin ve 4242 4242 4242 4242 test kartı, gelecekteki bir son kullanma tarihi ve herhangi bir CVC ile Stripe'ın barındırdığı ödemeyi tamamlayın.
Beklenen: uygulama /billing?checkout=success döner ve çalışma alanının yetkisi etkin olarak çevrilir — listen terminali teslim edilen olayları günlüğe kaydeder ve gösterge panelindeki Developers → Webhooks → uç noktanız yeşil teslimatlar gösterir.
Ödemeye tıklamadan dinleyiciyi denemek için stripe trigger checkout.session.completed, listen iletici üzerinden sentetik bir olay gönderir.
Yaygın hatalar: her teslimatta 400, imza gizli anahtarının o uç noktayla eşleşmediği anlamına gelir — doğru uç nokta için whsec_… yeniden kopyalayın ve env'i güncelleyin; sessiz hiçbir şey olmaması BILLING_PROVIDER hâlâ local demektir; test kurulumuna karışmış sk_live_ anahtarları yanlış modun anahtarlarını kopyaladığınız anlamına gelir — test ve canlıyı kesinlikle ayrı tutun.
Kit, Lemon Squeezy, Creem, Polar, Whop, Paddle, Dodo ve PayPal için de aynı tek sözleşmeli bağdaştırıcıyı gönderir — aynı akış, farklı konsol ve env adları — ve mobil satın alımlar Stripe'da değil RevenueCat'te kalır.
Kuruluma devam etmek için Resend e-postası ekleyin kılavuzunu okuyun.