Hosted Ön Ödeme Sayfası

Hosted ön ödeme (prepayment)

Hosted ön ödeme (prepayment) sayfaları, ödeme bilgilerini ve client süreçlerini (ör. 3DS authentication) Lidio Hosted Ödeme Sayfaları üzerinden tamamlamak isteyen, ancak ödemenin provizyon aşaması için - kendi iş süreçlerine göre gerekli kontrolleri (ör. stok, poliçe, vb.) sağlayarak - sunucu üzerinden (server side) ayrıca bir tetikleme yapmak isteyen işyerleri için sunulan iki aşamalı bir ödeme akışıdır.

İlk aşama, klasik hosted ödem akışına benzer şekilde, Lidio API StartHostedPrepayment servisi ile temin edilen Hosted Ödeme ekranının websitesi/uygulama içerisinde gösterilmesi ve kullanıcının ödeme bilgilerini girmesini - varsa gerekli 3D şifre vb. aşamaları tamamlamasını konu alır. İlk aşama sonucu işyerine ait ReturnURL'e redirect ederek HTTP GET query string parametreleriyle ve/veya işyeri Notifikasyon adresine Ödeme Notifikasyonu gönderilerek bildirilir.

İkinci aşama için Lidio API FinishPaymentProcess servisi tetiklenir ve ilk aşamada alınan bilgiler ile işlem bankaya provizyona gönderilerek sonuç alınır.


Hosted entegrasyonda dikkat edilmesi gereken hususlar:

Hosted Ödeme aşaması sonuçlandığında, iframe işyeri ReturnURL'ine yönlendirilir ve işlem sonuçları ReturnURL'e eklenen query string parametreleri (gizlilik içermeyen bilgiler) ile işyerine bildirilir. Ancak bu sonuç bilgisi mutlaka GetHostedPaymentStatus servisi ile doğrulanmalıdır.
iframede hosted sayfa kullanan işyerlerinin, dönüş sağlanan ReturnURL’de “iframe içerisinden” herhangi bir cookie işlemi (erişim, set etme vb.) kurgulamaması gerekmektektedir. 3rd party cookie engelleyen tarayıcılarda, alternatif işleyişlerimiz devreye alınmakta, ancak bazı tarayıcılar tarafından bu akışlarda frame içerisinden cookie işlemleri tamamen engellenebilmektedir.
Hosted ödeme sonucunun işyerine bildirimi için, ReturnURL yoluyla bildirime ek olarak Ödeme Notifikasyonu gönderimi de sağlanabilir. Bu işyeri isteğine bağlı konfigüratif bir özelliktir, işyeri bildirimi karşılayacak servisi hazırlayarak NotificationURL alanında endpoint adresini işlemde iletmelidir.
Hosted Sayfa içerisindeki Eventleri (ör. HeightChanged) üst frame’e (işyeri sayfası) bildirmek için JavaScript Notificationlar (API Referansında ilgili metot altında detayları var) kullanılır. Kullanımı opsiyoneldir. Kullanılacaksa Event Listener ile bunlar üst frameden dinlenerek aksiyon alınır.

ReturnURL’e gelen ödeme sonucun teyidi (Lidio'dan geldiği) doğrulaması için mutlaka “GetHostedPaymentStatus” servisi kullanılmalıdır. İşlem sonucu bu servisten alınmalı, ReturnURL'deki temel alanlar (müşteri, tutar, taksit sayısı vb.) mukayese edilerek doğrulanmalıdır. Bu servisle ödemeye dair tüm detaylara ulaşılabilir.

Hosted ön ödeme (prepayment) akışı

  1. Kullanıcı ödeme sürecine gelir. Ödemeye ve siparişe dair bilgiler netleşmiş olur. Bu noktada işyeri isterse ödeme yöntemini kendi UI'ında seçtirir ve Lidio Hosted Sayfayı sadece seçili ödeme enstrüman(lar)ı için çağırabilir. Alternatif olarak ödeme yönteminin seçimi Hosted Sayfaya bırakılabilir, bu durumda servis isteğinde istenilen tüm yöntemlere yer verilmelidir.
  2. Sipariş ve ödeme bilgileri ile birlikte StartHostedPrepaymentProcess metodu çağrılır.
  3. StartHostedPrePaymentProcess responseta RedirectURL dönülür.
  4. Servisten edilinlen RedirectURL, client ekranında iframe içinde ya da redirect olarak açılır.
  5. Kullanıcı Lidio Hosted Ödeme ekranlarında gerekli ödeme bilgileri girişini/seçimini yapar ve Devam'a basar.
  6. Kullanıcı faslı tamamlandığında, işlem banka/kurum provizyonuna gönderilir ve işlem sonuçlanır.
  7. Ödeme işlem sonucu ile birlikte (query string parametreleri) işyeri ReturnURL'ine dönüş sağlanır. İşyeri işlem sonucunu doğrulamak ve daha fazla detay edinmek için GetHostedPaymentStatus servisini çağırır. (Not: Alternatif veya tamamlayıcı olarak işyeri tercihine bağlı olarak işlem sonucu işyerine Ödeme Notifikasyonu (server->server) yapıda da bildirilebilir.
  8. İşyeri client aşaması başarılı olan süreçlerde, ödemeyi kesinleştirmeden kendi tarafındaki kontrolleri (ör. stok, poliçe) yapar ve ödeme provizyonu için şartlar uygunsa, FinishPaymentProcess API çağrısı sunucudan yapılır.
  9. FİnishPaymentProcess servis yanıtında ödeme sonucu işyeri tarafından alınır.
  10. Kullanıcıya ödeme sonucu bildirilir ve kullanıcı akışı sonuca göre devam ettirilir.
  11. Fraud kontrol (sahtecilik tespit) kullanılıyorsa, işleme dair FraudControlResult değeri de takip edilir. Asenkron sonuç söz konusu olacak ise (InProcess), ödeme sonucu başarılı da olsa, kesin sonuç için Ödeme Notifikasyonu gelene dek sipariş/teslimat beklemede tutulur.