PayTR canlı moda alındı — uçtan uca doğrulama tamam
PayTR iFrame API entegrasyonu PRODUCTION modunda; ilk gerçek 1 TL + Starter (499 TL) ödemesi uçtan uca doğrulandı. Aboneler artık kart ile ödeme yaparak anında panel'e erişebiliyor.
- PAYTR_TEST_MODE=0 canlıda aktif — sandbox'tan production'a geçiş tamam.
- 1 TL smoke test (10:14:03):
/paytr_test.php→ PayTR 3DS → webhook → PAYMENT_SUCCESS event #7. Hash verify + "OK" yanıtı doğrulandı. - Starter 499 TL end-to-end (10:22:21):
/subscribe.phpplan seç → PayTR iFrame → 3D Secure → callback → subscription upsert → tenant aktive. Full chain 6 aşama çalıştı. - Kritik CSP fix: Canlı 3DS iframe için
frame-src 'self' https:gerekli — PayTR kullanıcıyı bankanın kendi 3DS sayfasına (acs.<banka>.com) yönlendirir; önceki darframe-src 'self' https://www.paytr.comChrome'un "This content is blocked" hatası verdiği için genişletildi.frame-ancestors 'self'sıkı kaldığından güvenlik seviyesi düşmedi. - opcache invariant: Sunucuda
opcache.validate_timestamps=0—config.local.phpdeğişikliğinden sonrasystemctl reload php8.3-fpmzorunlu adım. - Test kayıtları temizlendi:
subscriptions.id=1 → cancelled,subscription_checkouts.id=1 → deleted,payment_eventsaudit trail için korundu. - RFC 0005 — production rollout checklist tamamı ✓ işaretli.
Sonraki: PayTR panelinden 1 TL + 499 TL iade işlemi (2-5 iş günü), tenant admin'lerine "Ödeme sistemi aktif" duyurusu, üyelik yenileme otomasyonu (mevcut kod tek seferlik ödeme — auto-renewal ayrı sprint).