Webhook
iyzico, işlem tamamlandığında uygulamanızı bilgilendirmek için webhook kullanır. (Başarılı, Başarısız) Ödeme girişimi yapıldığında HTTP POST bildirimi ile işlem sonucunu almak mümkündür. İlk bildirim, ilk ödeme girişiminden 10-15 saniye sonra gönderilecektir. Bu bir JSON Yükü ve sunucudan sunucuya HTTP isteğidir. iyzico, sunucunuz "2xx" durumu ile yanıt verene kadar her 15 dakikada bir bildirim göndermeye devam edecek ve 3 defa tekrar edecektir.
iyzico'da webhook kullanımına yönelik opsiyonel olabilecek tüm Ödeme Metotları doğrudan sonuçlanmaktadır. Örneğin, başarılı bir ödeme talebinde, en son yanıt tüm ödeme ayrıntılarını içerir. Bununla birlikte, istenirse farklı mekanizmaları tetiklemek için webhook yine de kullanılabilir.
Webhook nasıl etkinleştirilir?
iyzico Merchant Panel'e giriş yaptıktan sonra "Ayarlar > Firma Ayarları" adımında "İşyeri Bildirimleri" başlığından yapabilirsiniz. (HTTPS URL gereklidir)
Webhook Formları
Webhook istekleri 2 farklı formatta olabilir.
Direct Format
HPP(Hosted Payment Page) Format
Direkt Format
Aşağıdaki webhook formatı, NON-3DS ve 3DS ödeme taleplerinde görünür.
Parametre ismi | Tip | Açıklama |
---|---|---|
iyziEventTime | long | Notification oluşturulma zamanının unix timestamp değeridir. |
iyziEventType | string | İstek tipini belirtir. Alabileceği değerler CHECKOUTFORM_AUTH, API_AUTH, THREE_DS_AUTH, BALANCE, BKM_AUTH |
iyziReferenceCode | string | İstek için üretilen unique iyzico referans kodu |
paymentId | long | İlgili ödemenin paymentId bilgisi |
paymentConversationId | string | İlgili ödemenin üye işyeri tarafından gönderilmiş referans numarası |
status | string | Ödeme durumu. Alabileceği değerler: SUCCESS, FAILURE, CALLBACK_THREEDS |
HPP Format
Yukarıdakine benzer şekilde, bir sonraki webhook formatı, iyzico ile Öde ve Ödeme Formu olan barındırılan sayfa çözümlerinde görünür.
Parametre ismi | Tip | Açıklama |
---|---|---|
iyziEventTime | long | Notification oluşturulma zamanının unix timestamp değeridir. |
iyziEventType | string | İstek tipini belirtir. Alabileceği değerler API_AUTH, THREE_DS_AUTH, BKM_AUTH, BANK_TRANSFER_AUTH |
iyziReferenceCode | string | İstek için üretilen unique iyzico referans kodu |
token | string | Ödeme formu için üretilmiş ve ödeme detaylarını içeren token değeri |
status | string | Ödeme durumu. Alabileceği değerler: SUCCESS, FAILURE |
Notifikasyon Validasyonu
İsteğin iyzico üzerinden geldiğini valide etmek için header içinde gönderilen "X-IYZ-SIGNATURE
" değeri kullanılabilir.
X-IYZ-SIGNATURE
değeri aşağıdaki parametrelerin verilen sırada string olarak birleştirilip hashlenmesi sonucu elde edilir.
Direkt Format
Sahip olduğunuz Secret Key
, notifikasyon ile gönderilen eventType
ve paymentId
bilgileri string olarak birleştirilerek Sha1 ile hashlenir. Alınan sonucun base64 encode çıktısı X-IYZ-SIGNATURE
değerine eşit olmalıdır.
Sıralama | Parametre ismi | Açıklama |
---|---|---|
1 | secretKey | Üye işyerinin sahip olduğu güvenlik anahtarı |
2 | iyziEventType | İstek tipini belirtir. Alabileceği değerler API_AUTH, THREE_DS_AUTH, BKM_AUTH |
3 | paymentId | İlgili ödemenin paymentId bilgisi |
HPP Format
Sahip olduğunuz Secret Key
, notifikasyon ile gönderilen eventType
ve token
bilgileri string olarak birleştirilerek Sha1 ile hashlenir. Alınan sonucun base64 encode çıktısı X-IYZ-SIGNATURE
değerine eşit olmalıdır.
Sıralama | Parametre ismi | Açıklama |
---|---|---|
1 | secretKey | Üye işyerinin sahip olduğu güvenlik anahtarı |
2 | iyziEventType | İstek tipini belirtir. Alabileceği değerler API_AUTH, THREE_DS_AUTH, BKM_AUTH |
3 | token | İlgili ödeme için üretilmiş token bilgisi |
NOT : String, SHA1 şifrelemesinden sonra base64 ile kodlanmalıdır.
String hash = Base64.encodeBase64String(DigestUtils.sha1(stringToBeHashed));
Last updated