HSRCPAY Dökümantasyon

Integration Readiness (Pre-Prod)

Production öncesinde payment confirm, routing, sandbox, webhook, trace ve dashboard kontrolleri.

Canlıya çıkmadan önce bu kontrol listesini sandbox’ta doldurmanız yeterli değil; her maddeyi gerçekten denemiş olmanız gerekir. “Bir kez başarılı ödeme” tek başına hazır demek değildir.

Özellikle create ile confirm ayrımı, birden fazla charge denemesi, webhook tekrarı ve sandbox ile production credential ayrımı birlikte doğrulanmalıdır.

Ortam ayrımı

KontrolBeklenen durum
Sandbox accountProduction account'a bağlı sandbox hesapları dashboard üzerinden ayrıştırılmış olmalı.
Sandbox modeTest hesabı veya sandbox bağlamıyla giden isteklerin gerçek para üretmediği doğrulanmalı.
Production secretsAPI key, provider credential ve webhook secret değerleri server-side sınırda tutulmalı.
Test verisiSandbox kart, issuer ve decline senaryoları production verisiyle karıştırılmamalı.

Sandbox gerçek finansal ağ değildir

Sandbox, production öncesi lifecycle ve provider davranışını test etmek içindir. Gerçek para hareketi, gerçek issuer bağlantısı veya production authorization garantisi üretmez.

Payment ve confirm sözleşmesi

Production öncesinde en az şu akışlar uçtan uca denenmelidir:

  • Payment oluşturma ve sonrasında confirm etme.
  • payment_method ile yeni kart verisi gönderme.
  • Kaydedilmiş payment method referansıyla confirm etme.
  • Confirm sonrası payment.status, confirmResult.ok ve adapter latestResult.kind ayrımını doğrulama.
  • Payment status ile charge attempt sonucunu ayrı yorumlama.
  • Checkout Session kullanılıyorsa token tabanlı session ve return/cancel davranışını doğrulama.

Confirm, payment kaydını provider execution sürecine taşıyan adımdır. Payment oluşturmak tek başına provider çağrısı veya finansal sonuç anlamına gelmez.

Routing ve provider readiness

Confirm’te ödeme yöntemi, sağlayıcı adayları ve routing plan oluşur; dashboard’da plan + charge birlikte görülebilmeli.

KontrolNeden önemli?
Provider config seçimiPayment method ve amount/currency için uygun provider/config yoksa confirm başarısız olur.
Routing strategy input'uTek config veya provider identifier ile yönlendirme yapılıyorsa adayların doğru seçildiği kontrol edilir.
Fallback davranışıAccount ayarları ve eligible config havuzu beklenen fallback davranışını üretmeli.
Routing plan trace'iDashboard'da routing plan ve charge attempt ilişkisi okunabilmeli.

3DS, decline ve resume davranışı

Pre-prod testleri sadece success senaryosu içermemelidir:

  • REQUIRES_ACTION ve paymentNextAction.url akışı frontend veya hosted checkout tarafından yönetiliyor mu?
  • Resume/callback sonrası final payment sonucu backend veya webhook üzerinden doğrulanıyor mu?
  • Hard decline durumunda kullanıcıdan yeni ödeme yöntemi isteniyor mu?
  • Soft decline veya provider unavailable senaryosunda retry/fallback davranışı kontrollü mü?
  • Provider timeout sonrası aynı payment için durum sorgulama ve event takibi yapılabiliyor mu?

Webhook ve event handling

Webhook teslimatı gecikebilir veya tekrarlanabilir; merchant handler aynı event’i iki kez işlemeyecek şekilde tasarlanmalıdır.

Minimum kontroller:

  • Webhook endpoint doğrulaması tamamlandı.
  • Aynı event tekrar gelirse çift işlem yapılmıyor.
  • Payment state frontend redirect sonucuna göre değil, backend/API/event doğrulamasına göre kapatılıyor.
  • Event payload içinde payment_id, charge_id, routing_plan_id, request_id ve trace_id gibi korelasyon alanları okunabiliyor.
  • Webhook delivery gecikmesi yaşanırsa dashboard/payment detail üzerinden manuel inceleme yapılabiliyor.

Dashboard smoke test

Production öncesi bir sandbox payment için dashboard'da şu kontrol yapılmalıdır:

  1. Transaction detail ekranında payment status doğru görünüyor.
  2. Charge listesi provider attempt'i gösteriyor.
  3. Routing card planı ve current index bilgisini gösteriyor.
  4. Event listesi payment lifecycle olaylarını gösteriyor.
  5. Event detayında request/trace alanları korele edilebiliyor.
  6. Webhook portal erişimi yetki ve account bağlamında açılıyor.
  7. Sandbox account'tan production account'a geçiş net şekilde ayrışıyor.

Veri güvenliği

  • PAN ve CVV production loglarına yazılmamalıdır.
  • CVV saklanmamalı; vault/kayıtlı kart akışında CVV doğrulama davranışı bu güvenlik sınırıyla düşünülmelidir.
  • Provider credential, API key, webhook secret ve signature material dokümana, loga veya dashboard payload'ına ham şekilde taşınmamalıdır.
  • Raw provider payload ile normalized result ayrımı ekip içinde net olmalıdır.
  • Request/trace ID güvenlik token'ı gibi kullanılmamalıdır.

Pre-prod karar tablosu

AlanGo-live öncesi minimum karar
Payment lifecycleCreate, confirm, requires_action, success, declined ve refund/cancel senaryolarının uygulama state map'i hazır.
Charge modelBir payment altında birden fazla charge attempt oluşabileceği ekipçe kabul edilmiş.
RoutingProvider/config adayları, fallback beklentisi ve hata durumları sandbox'ta doğrulanmış.
WebhookEvent handler idempotent, retry ve gecikme durumunda güvenli.
DashboardSupport ve engineering ekipleri payment ID, charge ID, event ve trace ile inceleme yapabiliyor.
Sandbox/productionTest verisi ve production credential sınırları ayrı.

Kritik not

Redirect/return URL sonucu tek başına ödeme başarısı anlamına gelmez. Final karar için server-side payment kaydı, API sorgusu veya event/webhook doğrulaması kullanılmalıdır.

Bu sayfada