Ödeme Akışı
Lydia Gate entegrasyonu iki adımlı bir modeldir:
- Sunucu tarafı (siz):
POST /v1/paymentsile bir ödeme isteği oluşturursunuz (tutar, terminal,returnUrl). Kart bu istekte yer almaz. Yanıtta birpaymentRef(tek-kullanımlık ödeme referansı) ve birhandoffUrlalırsınız. - Tarayıcı tarafı (alıcı): Alıcının tarayıcısını/WebView’ini, kartı ve
paymentRef’i taşıyacak şekildehandoffUrl’e (Lydia Gate 3DS Relay,pay.*origin) yönlendirirsiniz. 3D Secure devri, banka 3D sayfasına POST ve callback bu yüzeyde yürür; tamamlanınca alıcı sizinreturnUrl’inize döner.
Hash üretimi, banka 3D devri, callback işleme ve tahsilat Lydia Gate tarafındadır. Kesin sonucu sunucu tarafında GET /v1/payments ve webhook ile alırsınız.
- Ödeme isteği oluşturma:
POST /v1/paymentsile tutar,terminalIdvereturnUrlgönderirsiniz (kart YOK). YanıttapaymentCode,status: initiated,paymentRefvehandoffUrlalırsınız. Bkz. Ödeme Oluştur. - Lydia Gate 3DS Relay’e geçiş: alıcının tarayıcısını/WebView’ini, topladığınız kart +
paymentRefilehandoffUrl’e form-POST ile gönderirsiniz. Detay: Kart Handoff. - 3D Secure: Lydia Gate 3DS Relay banka 3D devrini başlatır; alıcının tarayıcısı banka 3D Secure sayfasına POST eder ve alıcı doğrulamayı tamamlar. Bu adımlar Lydia Gate 3DS Relay’de otomatik yürür; siz bir form kurmazsınız.
- Callback + tahsilat: banka 3D sonucunu Lydia Gate’e bildirir; Lydia Gate callback’i işler ve tahsilatı yapar.
- Geri dönüş: Lydia Gate 3DS Relay alıcının tarayıcısını/WebView’ini sizin
returnUrl’inize303ile yönlendirir.returnUrl’e taşınan sonuç, istemci (tarayıcı) üzerinden geldiği için nihai/güvenilir kabul edilmemelidir. - Sonucu doğrulama: kesin durumu
GET /v1/paymentsve webhook ile öğrenirsiniz. Karar (sipariş onayı vb.) daima bu nihai sonuca dayanır.
sunucu: POST /v1/payments (KARTSIZ) ──► { paymentRef, handoffUrl, status: initiated } │tarayıcı/WebView: kart + paymentRef ──POST──► [Lydia Gate 3DS Relay (pay.*)] │ (Lydia Gate 3DS Relay banka 3D'sine POST eder) ▼ [banka 3D Secure] │ banka callback ──► [Lydia Gate: callback + tahsilat] │ 303 (Lydia Gate 3DS Relay'den) ──► returnUrl (sonuç nihai DEĞİL) │sunucu: webhook + GET /v1/payments ──────────────► kesin durumWeb ve mobil
Bölüm başlığı “Web ve mobil”Akış her iki kanalda da aynıdır; tek fark tarayıcı bağlamını nasıl yarattığınızdır:
- Web: alıcının native tarayıcısı
handoffUrl’e form-POST eder; dönüşte tarayıcıreturnUrl’e303ile navige olur. - Mobil: merchant uygulaması kartı kendi native ekranında toplar, bir WebView açar ve kart +
paymentRefilehandoffUrl’e POST eder. 3D, WebView içinde tamamlanır; sonunda WebViewreturnUrl’e iner.
Tek deneme: bir ödeme = bir kart denemesi
Bölüm başlığı “Tek deneme: bir ödeme = bir kart denemesi”Bir paymentRef’i tek denemelik kabul edin: teknik olarak aynı ödemede sınırlı sayıda kart denemesine izin verilir (aşağıdaki kart-deneme sınırı), ama entegrasyonunuzu “tekrar = yeni ödeme” üzerine kurun. Alıcı 3D’yi terk eder ya da başarısız olursa, o ödeme failed/expired olur ve paymentRef yeniden kullanılamaz. Tekrar denemek için yeni bir ödeme isteği (POST /v1/payments) oluşturursunuz: “tekrar = yeni ödeme” yaklaşımı. Detay: Kart Handoff.