İçeriğe geç

Ödeme Akışı

Lydia Gate entegrasyonu iki adımlı bir modeldir:

  1. Sunucu tarafı (siz): POST /v1/payments ile bir ödeme isteği oluşturursunuz (tutar, terminal, returnUrl). Kart bu istekte yer almaz. Yanıtta bir paymentRef (tek-kullanımlık ödeme referansı) ve bir handoffUrl alırsınız.
  2. Tarayıcı tarafı (alıcı): Alıcının tarayıcısını/WebView’ini, kartı ve paymentRef’i taşıyacak şekilde handoffUrl’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ı sizin returnUrl’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.

  1. Ödeme isteği oluşturma: POST /v1/payments ile tutar, terminalId ve returnUrl gönderirsiniz (kart YOK). Yanıtta paymentCode, status: initiated, paymentRef ve handoffUrl alırsınız. Bkz. Ödeme Oluştur.
  2. Lydia Gate 3DS Relay’e geçiş: alıcının tarayıcısını/WebView’ini, topladığınız kart + paymentRef ile handoffUrl’e form-POST ile gönderirsiniz. Detay: Kart Handoff.
  3. 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.
  4. Callback + tahsilat: banka 3D sonucunu Lydia Gate’e bildirir; Lydia Gate callback’i işler ve tahsilatı yapar.
  5. Geri dönüş: Lydia Gate 3DS Relay alıcının tarayıcısını/WebView’ini sizin returnUrl’inize 303 ile yönlendirir. returnUrl’e taşınan sonuç, istemci (tarayıcı) üzerinden geldiği için nihai/güvenilir kabul edilmemelidir.
  6. Sonucu doğrulama: kesin durumu GET /v1/payments ve 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 durum

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’e 303 ile navige olur.
  • Mobil: merchant uygulaması kartı kendi native ekranında toplar, bir WebView açar ve kart + paymentRef ile handoffUrl’e POST eder. 3D, WebView içinde tamamlanır; sonunda WebView returnUrl’e iner.

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.