Test Ortamı
Test ortamı canlının aynısıdır — aynı uçlar, aynı alan sözleşmesi, aynı hata zarfı, aynı webhook mekanizması. Farkı gerçek para hareket etmemesi ve banka tarafının simüle edilmesidir.
Taban adres tektir; ortamı anahtarınız belirler.
https://api-gateway.lunixi.com/api/v1Kodunuzda değişecek tek şey kullandığınız anahtardır. Teste özel bir taban adres, ayrı bir istemci ya da farklı bir çağrı biçimi yoktur — canlıda çalışan kod test ortamında da çalışır.
Ortam ayrımı anahtarla olur
Test için ayrı bir Ed25519 anahtar çifti üretir ve public anahtarı TEST ortamına kaydedersiniz. Anahtar kimliği mk_test_sk_… biçimindedir ve o anahtarla bastığınız token at_test_ önekiyle gelir.
| Ortam | Anahtar kimliği | Token öneki |
|---|---|---|
| Test | mk_test_sk_… | at_test_… |
| Canlı | mk_live_sk_… | at_live_… |
Anahtarlar ortamlar arasında taşınmaz. Test anahtarınızla basılan token canlı veriye erişemez; ortam, token'ı hangi anahtarla bastığınızdan çözülür. Bu bilinçli bir korumadır: yanlışlıkla canlı para hareketi tetiklemenizi engeller.
Publishable anahtarlar da ortam taşır: mk_test_pk_… / mk_live_pk_…. Web SDK'ları hangi anahtarı verdiyseniz o ortama konuşur. → Web SDK Genel Bakış
TestBank — yerleşik test bankası
Ödeme testleri için gerçek bir bankaya ihtiyacınız yoktur. TestBank platformun içinde çalışır ve dışarıya tek bir HTTP isteği atmaz; tüm yanıtlar süreç içinde üretilir.
Önemli olan şu: TestBank yanıtları klasik PSP şemasında döner. Yani handler → parse → normalize → decline sınıflandırması zinciri gerçek bir bankayla birebir aynı yoldan akar. Testiniz, canlıda çalışacak kodu sınar.
Senaryolar
3DS simülatör ekranında senaryoyu seçersiniz; finalize sonucu ona göre üretilir.
| Senaryo | Sonuç | Decline kodu |
|---|---|---|
SUCCESS | Başarılı | — |
AUTH_FAILED | 3D doğrulama başarısız | TB_3D_AUTH_FAILED |
INSUFFICIENT_FUNDS | Yetersiz bakiye | 51 |
DO_NOT_HONOR | Banka onaylamadı | 05 |
EXPIRED_CARD | Kartın süresi dolmuş | 54 |
STOLEN_CARD | Kayıp/çalıntı kart | 43 |
LIMIT_EXCEEDED | Limit aşıldı | 61 |
TIMEOUT | Banka yanıt vermiyor | — |
AUTH_FAILED dışındaki senaryolarda 3D doğrulaması başarılı sayılır (mdStatus=1) ve hata charge aşamasında döner — gerçek hayattaki sıralamanın aynısı.
Yemek kartı akışını sınamak için TestMealCard aynı desende çalışır.
Rastgelelik yoktur
TestBank'ta rastgelelik yasaktır — aynı girdi her zaman aynı sonucu verir. Bu, testlerinizin kararsız (flaky) olmamasını sağlar. "Bazen geçiyor bazen kalıyor" diye bir durum görürseniz sebebi TestBank değildir.
Cüzdan tarafı
Cüzdan için test simülatörleri entegrasyon olarak kayıtlıdır — yani gerçek bir banka entegrasyonuyla aynı yoldan geçerler, ayrı bir kod dalı değildir.
Gelen transfer simülasyonunda senderName göndermezseniz para hesaba geçmez — işlem üçüncü taraf incelemesine düşer. Bu bir hata değil, gerçek para-güvenliği kapısıdır ve test ortamında da çalışır.
Fraud tarafı
Fraud kararları test ortamında da sizin yayınladığınız akışla üretilir. Sihirli test değerleri yoktur.
Test ortamında kural yayınlamazsanız allow almazsınız. Yapılandırılmamış merchant fraud.decision.unconfigured koduyla politika varsayılanını (tipik review) alır — canlıdaki davranışın aynısı. Test ortamı bu kapıyı gevşetmez. → Akışlar ve Çözümleme
Geçmişe dayanan kuralları sınamak için test ortamında da olay beslemeniz gerekir; POST /api/v1/fraud/events/transactions olmadan hız kuralları tetiklenmez.
Webhook'ları test etme
Test ortamı webhook'ları canlıdakiyle aynı imza şemasını, aynı yeniden deneme politikasını ve aynı x-lunixi-* başlıklarını kullanır. Yerel geliştirmede endpoint'iniz genel internetten erişilebilir olmalıdır — bir tünel (ngrok vb.) kullanın.
Teslimat servisi özel ağ adreslerini reddeder: localhost, 127.0.0.0/8, 10/8, 172.16/12, 192.168/16. Bu kural test ortamında da geçerlidir. → Webhook'lar
Canlıya geçerken
- Canlı ortam için yeni bir anahtar çifti üretin ve kaydedin
- Uygulamanızı canlı anahtarla imzalayacak şekilde yapılandırın — taban adres değişmez
- Fraud akışını canlı kapsamda yayınlayın — test ortamındaki yayın canlıya geçmez
- Webhook endpoint'inizi canlı ortam için ayrıca oluşturun
- Gölge modda bir süre gözleyin, sonra kararları uygulamaya alın
İlgili
- Kimlik Doğrulama — ortam bazlı anahtar ve token
- Hata Yönetimi — test ortamında da aynı zarf