Sandbox Network
Gerçek para hareketi oluşturmadan ödeme lifecycle, provider davranışı, issuer resolution, 3DS ve routing testleri.
Sandbox, canlıya çıkmadan önce ödeme davranışını denediğiniz ortamdır. “Test kartı geçti” demek entegrasyonun bittiği anlamına gelmez; 3DS, decline, routing fallback ve webhook tekrarı da burada prova edilmelidir.
Gerçek para hareketi, gerçek issuer veya gerçek card network yoktur; lifecycle ve event disiplini production ile aynı mantıkta simüle edilir.
Sandbox only: Sandbox Network gerçek banka, gerçek card network, gerçek issuer veya gerçek para hareketi değildir. Sandbox issuer resolution ve sandbox provider davranışları yalnızca test ve geliştirme amacıyla kullanılır.
Sandbox Network Nedir?
Sandbox Network, HSRC Pay'in üretim öncesi ödeme davranışlarını aynı domain model, lifecycle disiplini ve event/webhook modeliyle simüle ettiği ortamdır.
Bu yapı şunları test etmeye yarar:
- Payment oluşturma, confirm, authorization, capture, refund ve void akışları
- Provider capability seçimi ve adapter davranışı
- Secure mode ve
requires_actiongerektiren multi-step ödeme akışları - Hard decline, soft decline, timeout ve provider unavailable senaryoları
- Routing strategy, fallback, retry ve event delivery davranışı
Sandbox ortamı gerçek finansal ağ değildir; gerçek lifecycle disiplininin simülasyonudur.
Neden Sadece Test Kartı Yetmez?
Basit test kartları genellikle tek bir soruya cevap verir: "Bu ödeme başarılı döndü mü?" Gerçek ödeme entegrasyonunda daha önemli sorular vardır:
- Provider bu ödeme yöntemini ve secure mode'u destekliyor mu?
- Çözülen issuer, BIN country, network veya kart tipi provider capability matching sonucunu değiştiriyor mu?
- 3DS challenge sonrası payment state doğru güncelleniyor mu?
- Soft decline sonrası fallback deneniyor mu?
- Webhook retry ve idempotency davranışı doğru mu?
- Capture, refund ve void lifecycle'ı merchant sisteminde doğru karşılanıyor mu?
Sandbox kartları tek başına yeterli değildir; kart validasyonu, issuer resolution, BIN metadata, provider catalog/method uygunluğu, routing engine, adapter sonucu ve event delivery birlikte test edilmelidir.
Sandbox ve Production Ayrımı
| Alan | Sandbox | Production |
|---|---|---|
| Para hareketi | Gerçek para hareketi yoktur | Gerçek finansal sonuç üretir |
| Provider credential | Sandbox credential veya secret reference | Gerçek provider credential ve merchant ayarları |
| Provider davranışı | Sandbox adapter sonucu veya simulated provider davranışı | Canlı provider endpointleri ve gerçek PSP davranışı |
| Issuer/BIN resolution | Sandbox issuer ve BIN/IIN metadata | Gerçek card network ve issuer kararları |
| Amaç | Lifecycle, routing, 3DS, decline ve webhook davranışını prova etmek | Gerçek ödeme kabulü ve finansal kayıt |
| Veri sınırı | Test verisi, masked card data, sandbox-only payload | Production veri yönetimi ve compliance kontrolleri |
Production ortamı gerçek provider credential'ları, gerçek merchant ayarları, gerçek ödeme niyeti ve gerçek finansal sonuçlar ile ilgilidir. Sandbox ortamı ise gerçek para hareketi yapmadan aynı domain model, lifecycle ve event discipline ile davranış üretir.
Temel Bileşenler
- Payment Method: Kart veya farklı ödeme yöntemi verisini normalize eder; issuer, network, country, IIN, brand ve type gibi alanları ödeme kararlarına taşır.
- Sandbox Issuer Resolution: Issuer ve kart prefix metadata’sını çözmek için kullanılan sandbox-only BIN/IIN kayıtlarıdır. Bu bir issuer behavior simulation engine değildir.
- Provider Catalog/Method: Sandbox providerların hangi payment method, network ve transaction türlerini desteklediğini temsil eder.
- Provider adapter execution: Confirm orchestrator'ın routing adayı için adapter
pay/ resume çağrısı ve normalize edilmiş sonuç (confirmResult.latestResult.kind). - Routing Simulation: Payment, payment method metadata, provider capability, health ve rule girdilerine göre provider seçimini ve fallback davranışını test eder.
- Event/Webhook Delivery: Payment sonucunu merchant sistemine lifecycle uyumlu ve idempotent işlenebilir event'lerle iletir.
Ödeme Lifecycle'ı
Sandbox lifecycle üretimle aynı zihinsel modeli izler:
- Merchant checkout session veya payment oluşturur.
- Kullanıcı sandbox payment method seçer.
- HSRC Pay payment method'u normalize eder.
- Routing engine uygun sandbox provider candidate'larını sıralar.
- Orchestrator adapter ile charge attempt çalıştırır.
- Payment
SUCCEEDED,AUTHORIZED,REQUIRES_ACTIONveyaREQUIRES_PAYMENT_METHODolur; charge status decline’ı taşır. - Webhook ve event’ler merchant sistemine gider.
Özet: create → confirm → routing plan → charge denemesi(leri) → payment/charge status → webhook. Detay için Ödeme Akışları.
Routing ve sağlayıcı simülasyonu
Sandbox'ın amacı "her ödemeyi başarılı döndürmek" değildir. Amaç merchant'ın success, hard decline, soft decline, timeout, 3DS challenge, capture, refund, void, webhook retry ve routing fallback gibi senaryoları kontrollü şekilde test edebilmesidir.
Routing simulation şu girdilerle davranış üretebilir:
- Çözülen issuer, card network, BIN country, card type ve currency
- Provider capability: 3DS, capture, refund, void, installment support
- Merchant routing strategy ve fallback ayarları
- Provider health veya expected error gibi sandbox senaryo girdileri
3DS ve Requires Action Akışları
Secure mode açık olduğunda sandbox adapter direkt success döndürmek yerine requires_action üretebilir. Bu sonuç merchant veya hosted checkout frontend'inin challenge, redirect veya HTML render benzeri multi-step flow'ları handle edip edemediğini test eder.
API-only entegrasyonda paymentNextAction.url ile yönlendirme sizde; hosted checkout’ta checkout deneyimi bu adımı üstlenebilir.
Decline ve Error Simulation
Decline testleri ödeme entegrasyonunun kalitesini gösterir. Kart numaraları issuer decline simüle etmez. Sandbox'ta kart-listesi validasyonu invalid_payment_method üretebilir; explicit provider/sandbox scenario configuration ise provider timeout, system unknown ve diğer normalized error sonuçlarını üretebilir.
Raw provider error'a bağımlı kalmak yerine merchant uygulaması normalized result ve event modeline göre davranmalıdır.
Güvenlik ve Veri Sınırları
- Sandbox credential, production credential yerine geçmez.
- Production kartları sandbox ortamına gönderilmemelidir.
- Kart verisi, credential, signature material ve raw provider secret loglarda maskelenmelidir.
- Sandbox issuer label’ları ve provider isimleri gerçek finansal kurum iddiası taşımaz.
- Sandbox testleri production authorization oranı veya gerçek provider maliyeti garanti etmez.
Ne Değildir?
Sandbox Network gerçek banka değildir. Gerçek card network değildir. Gerçek issuer değildir. Gerçek para hareketi oluşturmaz.
Sandbox issuer resolution ve sandbox providerlar yalnızca test ve geliştirme amacıyla kullanılır. Bu yapı gerçek finansal kurum, lisanslı ödeme kuruluşu, card network veya issuer kararının yerine geçmez. Sandbox'ın amacı gerçek finansal ağı taklit ederek regülasyon alanını aşmak değil; merchant entegrasyonlarının production öncesi davranışlarını güvenli ve izlenebilir şekilde doğrulamaktır.
Sonraki Adımlar
- Sandbox kart allowlist'i ve validasyon kuralları için Sandbox Cards
- Issuer ve kart prefix metadata’sı için Sandbox Issuer Resolution
- Sağlayıcı modeli için Sağlayıcı ve Adapter Modeli
- Routing fallback testleri için Routing Simulation
- Secure mode akışları için 3DS Simulation
- Decline/error testleri için Testing Declines