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 ismiTipAçı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 ismiTipAçı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ıralamaParametre ismiAçı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

Direkt format için Hashing Örneği
final String stringToBeHashed = new StringBuilder("secretKey")
                .append(request.getIyziEventType())
                .append(request.getPaymentId())
                .toString();

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.

HPP format için Hashing Örneği
final String stringToBeHashed = new StringBuilder("secretKey")
                .append(request.getIyziEventType())
                .append(request.getToken())
                .toString();
SıralamaParametre ismiAçı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