Kredi Kartı Token OluşturmaKart bilgileri girilerek yapılan işlemlerde, ilk adım olarak getCardTokenSecure servisi çağrılarak karta ait bir cardToken değeri alınmalıdır.Elde edilen bu token, gerçekleştirilecek ödeme işlemine ait servis çağrısında input olarak kullanılacaktır. Bu çağrılarda yer alan hashData parametresi, güvenlik gereği uygulama tarafında değil, üye işyerinin backend sisteminde oluşturulmalı ve uygulamaya güvenli şekilde iletilmelidir. getCardTokenSecure servisi, kullanıcı arayüzünden (web ya da mobil) doğrudan çağrılabilir. Eğer web tabanlı bir uygulama kullanılıyorsa, CORS (cross-origin) hatalarının önlenmesi için üye işyerinin domain bilgisi Paycell’e bildirilmelidir ve bu domain için yetkilendirme tanımı yapılmalıdır. Mobil uygulamalar için ayrıca bir tanıma gerek bulunmamaktadır.PAYCELL tarafından iletilecek applicationPwd ve secureCode ile input parametreleri hash’lenir.
Hash data oluşturulmasında kullanılacak olan güvenlik parametreleri (applicationName, applicationPwd, secureCode) server tarafında tutulmalıdır, hash oluşturma işlemi server tarafında yapılmalıdır, ancak oluşan değerler uygulama/client tarafında iletilerek getCardTokenSecure servisi uygulama/client tarafından çağrılmalıdır.
hashData 2 aşamada oluşturulacaktır.
Her iki aşamada da ilgili parametreler büyük harfe dönüştürülerek data oluşturulmalıdır.
İlk aşamada securityData hashlenerek oluşturulur. securityData oluşturulurken applicationName ve applicationPwd değeri büyük harfe çevrilir. Oluşan securityData değeri ikinci aşamadaki hashData üretiminde kullanılmak üzere büyük harfe dönüştürülür.
İkinci aşamada, oluşturulan securityData ile diğer değerler büyük harfe çevrilerek birleştirilip elde edilen değer hashlenerek hashData oluşturulur.securityData: applicationPwd+ applicationName
hashData: applicationName+ transactionId+ transactionDateTime+ secureCode + securityData
Java hash örneği aşağıdaki gibidir.
java.security.MessageDigest sha2 = java.security.MessageDigest.getInstance(“SHA-256”);
hash = Base64.encodeBase64String(sha2.digest(paramsVal.getBytes()));;3D doğrulama sürecinde, ilk olarak backend tarafında get3dSession servisi çağrılarak benzersiz bir threeDSessionId değeri alınır. Bu ID, kullanıcıyı bankanın doğrulama ekranına yönlendirmek için frontend (uygulama/client) katmanına iletilir. Uygulama tarafı, Paycell tarafından sağlanan yönlendirme URL’sine tarayıcı üzerinden bir HTTP POST isteği gerçekleştirerek kullanıcıyı bankanın 3D Secure sayfasına yönlendirir. Bu POST isteğinde iki kritik parametre yer almalıdır: threeDSessionId (doğrulama işlemini tanımlayan eşsiz ID) ve callbackUrl (doğrulama tamamlandığında yönlendirme yapılacak, sonucu alacak uç nokta). Paycell, 3D işlemi tamamlandıktan sonra bu callbackUrl üzerinden kullanıcıyı geri yönlendirir ve işlem akışı devam eder.Callback URL formatı aşağıdaki kurallarla belirlenmelidir;Max veri uzunluğu 1000 karakter olmalıdır.Türkçe karakterler doğrudan kullanılamaz, kullanılacak ise URL encode edilmelidir.URL’de sadece ASCII karakterler doğrudan kullanılabilir.İzin verilen karakterler:Harfler: A-Z a-z
Rakamlar: 0-9
Özel: - _ . ~
Diğer karakterler percent-encoding (URL encoding) ile yazılmalı.
Örneğin:Boşluk → %20
ç → %C3%A7
ü → %C3%BCÖrnek olarak 3D session id ve callback url’in bir form ekranından girilerek post edildiği bir kod örneği aşağıda yer almaktadır. Modified at 2025-10-15 12:01:24