Paycell
    • Authorization
    • Test Ortam Parametreleri
    • 3D İşlemleri
    • 3D'li Ödeme
    • 3D’siz ödeme
    • Kart Kaydetme
    • Test Senaryoları
    • Test Kredi Kartları
    • Health
      • HealthCheck
        GET
    • Payments
      • GetCardTokenSecure
        POST
      • GetThreeDSession
        POST
      • GetThreeDSessionResult
        POST
      • ProvisionAll
        POST
      • RefundAllPayment
        POST
      • ReversePayment
        POST
      • SendOtp
        POST
      • ValidateOtp
        POST
    • Reconciliation
      • GetProvisionHistory
        POST
      • InquireAll
        POST
      • InquireMerchantCollectionDetailForDCB
        POST
      • InquireMerchantCollectionForDCB
        POST
      • QueryOrderVpfPayment
        POST
      • SummaryReconciliation
        POST
    • Wallet
      • DeleteCard
        POST
      • GetPaymentMethodList
        POST
      • QueryCards
        POST
      • RegisterCard
        POST
      • GetTermsOfService
        POST
      • UpdateCard
        POST
    • Other
      • GetCardBinInformationWithBKM
      • GetPrepaidCommission
    • Schemas
      • Schemas
        • System.Void
      • PaycellApi.Features.HealthCheckResponse
      • PaycellApi.Features.Hash.Models.CreateHashDataRequest
      • PaycellApi.Features.Payment.Models.GetCardTokenSecureRequest
      • PaycellApi.Features.Other.Models.GetCardBinInformationItem
      • PaycellApi.Features.Payment.Models.GetThreeDSessionRequest
      • PaycellApi.Features.Other.Models.GetCardBinInformationWithBKMRequest
      • PaycellApi.Features.Payment.Models.GetThreeDSessionResultRequest
      • PaycellApi.Features.Other.Models.GetCardBinInformationWithBKMResponse
      • PaycellApi.Features.Payment.Models.GetCardTokenSecureResponse
      • PaycellApi.Features.Payment.Models.ProvisionAllRequest
      • PaycellApi.Features.Other.Models.GetPrepaidCommissionRequest
      • PaycellApi.Features.Other.Models.GetPrepaidCommissionResponse
      • PaycellApi.Features.Payment.Models.GetThreeDSessionResponse
      • PaycellApi.Features.Payment.Models.RefundAllRequest
      • PaycellApi.Features.Payment.Models.ReverseRequest
      • PaycellApi.Features.Payment.Models.SendOtpRequest
      • PaycellApi.Features.Payment.Models.GetThreeDSessionResultResponse
      • PaycellApi.Features.Payment.Models.ValidateOtpRequest
      • PaycellApi.Features.Reconciliation.Models.GetProvisionHistoryRequest
      • PaycellApi.Features.Payment.Models.ProvisionAllResponse
      • PaycellApi.Features.Reconciliation.Models.InquireAllRequest
      • PaycellApi.Features.Payment.Models.RefundAllResponse
      • PaycellApi.Features.Reconciliation.Models.InquireMerchantCollectionDetailForDCBRequest
      • PaycellApi.Features.Reconciliation.Models.InquireMerchantCollectionForDCBRequest
      • PaycellApi.Features.Reconciliation.Models.QueryOrderVpfRequest
      • PaycellApi.Features.Payment.Models.ReverseResponse
      • PaycellApi.Features.Reconciliation.Models.SummaryReconciliationRequest
      • PaycellApi.Features.Wallet.Models.DeleteCardRequest
      • PaycellApi.Features.Payment.Models.SendOtpResponse
      • PaycellApi.Features.Payment.Models.ThreeDOperationResult
      • PaycellApi.Features.Wallet.Models.GetPaymentMethodListRequest
      • PaycellApi.Features.Wallet.Models.QueryCardsRequest
      • PaycellApi.Features.Payment.Models.ValidateOtpResponse
      • PaycellApi.Features.Wallet.Models.RegisterCardRequest
      • PaycellApi.Features.Reconciliation.Models.BatchSummary
      • PaycellApi.Features.Wallet.Models.TermsOfServiceRequest
      • PaycellApi.Features.Wallet.Models.UpdateCardRequest
      • PaycellApi.Models.RequestExtraParameter
      • PaycellApi.Features.Reconciliation.Models.GetProvisionHistoryResponse
      • PaycellApi.Models.RequestHeader
      • PaycellApi.Features.Reconciliation.Models.InquireAllResponse
      • PaycellApi.Features.Reconciliation.Models.InquireMerchantCollectionDetailForDCBResponse
      • PaycellApi.Features.Reconciliation.Models.InquireMerchantCollectionDetailForDCBTransaction
      • PaycellApi.Features.Reconciliation.Models.InquireMerchantCollectionForDCBResponse
      • PaycellApi.Features.Reconciliation.Models.ProvisionDetail
      • PaycellApi.Features.Reconciliation.Models.QueryOrderVpfResponse
      • PaycellApi.Features.Reconciliation.Models.QueryOrderVpfResponseItem
      • PaycellApi.Features.Reconciliation.Models.SummaryReconciliationResponse
      • PaycellApi.Features.Reconciliation.Models.TransactionDetail
      • PaycellApi.Features.Reconciliation.Models.TransactionHistory
      • PaycellApi.Features.Wallet.Models.Card
      • PaycellApi.Features.Wallet.Models.DeleteCardResponse
      • PaycellApi.Features.Wallet.Models.GetPaymentMethodListResponse
      • PaycellApi.Features.Wallet.Models.PaymentMethodCard
      • PaycellApi.Features.Wallet.Models.QueryCardsResponse
      • PaycellApi.Features.Wallet.Models.RegisterCardResponse
      • PaycellApi.Features.Wallet.Models.TermsOfServiceResponse
      • PaycellApi.Features.Wallet.Models.UpdateCardResponse
      • PaycellApi.Models.PageInfoResponse
      • PaycellApi.Models.ResponseHeader

    3D İşlemleri

    Kredi Kartı Token Oluşturma
    Kart 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 Yönlendirme Sayfası
    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
    Previous
    Test Ortam Parametreleri
    Next
    3D'li Ödeme
    Built with