Temel NON-3DS uygulaması, kısaca birbirini takip eden iki POST isteğinden oluşur.
3DS Başlatma
3DS Tamamlama
Önerilen entegrasyon aşağıdaki sırayla izlenir;
1. BIN Check
İster 3DS ister NON-3DS ödeme yöntemi olsun, alışverişte kullanılacak kartın özelliğinin önceden belirlenmesi tavsiye edilir. BIN detay hizmetleri sayesinde kart türü, kart şeması, kart ile ilgili taksit bilgileri ve 3DS özelliklerine ilişkin daha ayrıntılı bilgiler alınır.
Tarayıcıdaki kodu çözülmüş threeDSHtmlContent arayüzünün bir örneği;
4. Yönlendirme
Yeniden yönlendirme aşaması, 3DS Başlatma ve 3DS Tamamlama adımlarını genel olarak birbirine bağlar.
Kart sahibi OTP (Tek Kullanımlık Şifre) onayının ardından iyzico, sayfayı otomatik olarak "callbackUrl" parametresinde belirtilen adrese yönlendirecektir. Yönlendirme POST'u şunları içerir;
mdStatus
"mdStatus", işlem sonucunu 3DS üçgeninde yorumlar.
Başarılı 3DS operasyonları "callbackUrl" üzerinde "mdStatus":"1" ile sonuçlanırken, başarısızlık senaryolarında aşağıdaki listeden biri olabilir;
5. 3DS Tamamlama
Yukarıdaki tüm adımları tamamladıktan sonra, artık ödeme işlemini 3DS Tamamlama talebi ile resmileştirme zamanı.
NOT : mdStatus parametresi sadece 3DS işlemlerinde görünecektir.
6. Webhook
Webhook’lar 3DS akışımızın son konusudur.
Gerçek zamanlı ödeme bildirimlerinin alınması, genel olarak 3DS deneyiminden yararlanırken bildirimlerin güvenilir kaynaklardan gelmesini sağlar ve hassas verilere olası müdahaleleri veya yetkisiz erişimi önler.
Her ödeme olayı Webhook’ları tetikler;
Her 15 saniyede bir
Sunucunuz 200 yanıtını alana kadar.
Her 10 dakikada bir
Maksimum 3 kere
Örnek Webhook 3DS Yetkilendirmesi
Olumlu senaryo status değişkeninin success dönmesiyle gerçekleşir.
Doğrulama
Ödeme işlemlerinin başarılı bir şekilde sonuçlandırılmasında belirli değişkenlerin korelasyonu önemli rol oynar;
paymentId
status
price
Diğer Eşleştirme parametreleri opsiyoneldir.
3DS Tamamlama yanıtı ve Webhook bildiriminin birbirini doğrulaması hayati önem taşımaktadır.
3DS Tamamlama yanıtında bulunan paymentId değişkeni Webhook’tan gelen paymentId değişkeniyle aynı olmalıdır.
Her iki istekten gelen status değişkeni success olmalıdır.
price parametresindeki miktar aynı olmalıdır.
Ve son olarak, Eşleştirme parametreleri de eşit olmalıdır.
Eğer eşitse, tebrikler! 3DS entegrasyonunu bitirdiniz.
Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner.
paymentId
String
İşlem success yani başarılı ise, iyzico tarafından o ödemeye verilen değerdir. 3D bitirme sorgusunda kullanılacaktır.
conversationData
String
İşlem success yani başarılı ise, iyzico tarafından o ödemeye verilen değerdir. Bütün durumlarda dolu gelmeyebilir. Eğer dolu gelirse bu parametrenin de 3D bitirme sorgusunda gönderilmesi gerekir.