Links

3DS Entegrasyonu

Adımlar

Adım 1 - Taksit ve BIN Sorgulama

3DS veya 3DS OLMAYAN ödeme metotlarında kart özelliğinin önceden belirlenmesi tavsiye edilir. BIN sorgulama hizmeti, kart türü, kart kuruluşu, taksiti gösteren kart ilişkilendirmesi ve 3DS özellikleri hakkında daha fazla ayrıntı sağlar.
Taksit ve BIN Sorgulama dokümanımıza aşağıdaki karttan erişebilirsiniz.

Adım 2 - 3DS Başlatma

3DS ödeme başlatma POST'u aşağıda iletilmiştir.
post
https://api.iyzipay.com/
payment/3dsecure/initialize
3DS Başlatma

Adım 3 - "threeDSHtmlContent" Decode

"threeDSHtmlContent", şifrelenmiş 3DS formunun kendisini temsil eder ve base64 ile şifrelenmiştir.
Tarayıcıda 3DS Başlatma yanıtında gelmiş olan "threeDSHtmlContent" parametresini decode ettiğimizde, tüketicinin önüne 3DS ekranı gelecektir.

Decode Edilmemiş "threeDSHtmlContent" Örneği;

"threeDSHtmlContent": "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8dGl0bGU+aXl6aWNvIE1vY2sgM0QtU2VjdXJlIFByb2Nlc3NpbmcgUGFnZTwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+Cjxmb3JtIGlkPSJpeXppY28tM2RzLWZvcm0iIGFjdGlvbj0iaHR0cHM6Ly9zYW5kYm94LWFwaS5peXppcGF5LmNvbS9wYXltZW50L21vY2svaW5pdDNkcyIgbWV0aG9kPSJwb3N0Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9yZGVySWQiIHZhbHVlPSJtb2NrNDYtNjg3NjU1ODAwODI2MjM5NWl5emlvcmQiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluIiB2YWx1ZT0iNTUyNjA4Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InN1Y2Nlc3NVcmwiIHZhbHVlPSJodHRwczovL3NhbmRib3gtYXBpLml5emlwYXkuY29tL3BheW1lbnQvaXl6aXBvcy9jYWxsYmFjazNkcy9zdWNjZXNzLzI3Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhaWx1cmVVcmwiIHZhbHVlPSJodHRwczovL3NhbmRib3gtYXBpLml5emlwYXkuY29tL3BheW1lbnQvaXl6aXBvcy9jYWxsYmFjazNkcy9mYWlsdXJlLzI3Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1hdGlvblVybCIgdmFsdWU9Imh0dHBzOi8vc2FuZGJveC1hcGkuaXl6aXBheS5jb20vcGF5bWVudC9tb2NrL2NvbmZpcm0zZHMiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUGFSZXEiIHZhbHVlPSJjYWIxNjA0YS02MWJiLTQ0NGQtOGExNS1kZDZmMzhjZGRiNjMiPgo8L2Zvcm0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpeXppY28tM2RzLWZvcm0iKS5zdWJtaXQoKTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg=="

Decode Edilmiş "threeDSHtmlContent" Örneği;

<!doctype html>
<html lang="en">
<head>
<title>iyzico Mock 3D-Secure Processing Page</title>
</head>
<body>
<form id="iyzico-3ds-form" action="https://sandbox-api.iyzipay.com/payment/mock/init3ds" method="post">
<input type="hidden" name="orderId" value="mock46-6876558008262395iyziord">
<input type="hidden" name="bin" value="552608">
<input type="hidden" name="successUrl" value="https://sandbox-api.iyzipay.com/payment/iyzipos/callback3ds/success/27">
<input type="hidden" name="failureUrl" value="https://sandbox-api.iyzipay.com/payment/iyzipos/callback3ds/failure/27">
<input type="hidden" name="confirmationUrl" value="https://sandbox-api.iyzipay.com/payment/mock/confirm3ds">
<input type="hidden" name="PaReq" value="cab1604a-61bb-444d-8a15-dd6f38cddb63">
<input type="hidden" name="termUrl" value="cab1604a-61bb-444d-8a15-dd6f38cddb63">
<input type="hidden" name="md" value="cab1604a-61bb-444d-8a15-dd6f38cddb63">
</form>
<script type="text/javascript">
document.getElementById("iyzico-3ds-form").submit();
</script>
</body>
</html>

Decode Edilmiş bir threeDSHtmlContent'in Arayüz Örneği;

Adım 4 - Yönlendirme

Yönlendirme aşaması, genel olarak 3DS Başlatma ve 3ds Tamamlama adımlarını birbirine bağlar.
Kart sahibi OTP(Tek Kullanımlık Şifre) onayını takip eden iyzico, sayfayı otomatik olarak "callbackUrl" parametresinde verilen adrese yönlendirecektir. Yönlendirme POST'u şunları içerir;
Parametre ismi
Tip
Açıklama
status
String
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.
conversationId
Long
Başlatma sorgusunda gönderilen conversationId değeridir.
mdStatus
String
Bilgilendirme amaçlı dönen mdStatus değeridir. Başarılı durumlar için 1 başarısız durumlar için ise 0,2,3,4,5,6,7,8 olarak dönebilir.

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;
mdStatus
Açıklama
mdStatus = 0
3-D Secure imzası geçersiz veya doğrulama.
mdStatus = -1
mdStatus = 0 ile aynıdır. QNB Finansbank'a özel dönüştür.
mdStatus = 2
Kart sahibi veya bankası sisteme kayıtlı değil.
mdStatus = 3
Kartın bankası sisteme kayıtlı değil.
mdStatus = 4
Doğrulama denemesi, kart sahibi sisteme daha sonra kayıt olmayı seçmiş.
mdStatus = 5
Doğrulama yapılamıyor.
mdStatus = 6
3-D Secure hatası.
mdStatus = 7
Sistem hatası.
mdStatus = 8
Bilinmeyen kart no.

Adım 5 - 3DS Tamamlama

Yukarıdaki tüm adımları tamamladıktan sonra, artık ödeme işlemini 3DS Tamamlama talebi ile resmileştirme zamanı.
post
https://api.iyzipay.com/
payment/3dsecure/auth
3DS Tamamlama
NOT : mdStatus parametresi sadece 3DS işlemlerinde görünecektir.

Adım 6 - Webhook

Webhook, uygulama düzenimizin en önemli konularından biridir. Gerçek zamanlı ödeme bildirimlerini almak, bildirimlerin güvenilir kaynaklardan gelmesini sağlayarak hassas verilere herhangi bir olası yetkisiz erişimi önler. Her ödeme olayı, webhook tetikler.
Webhook dokümanımıza aşağıdaki karttan erişebilirsiniz.
Last modified 4mo ago