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
Type
Açıklama

paymentConversationId

string

İlgili ödemenin üye işyeri tarafından gönderilmiş referans numarası

merchantId

string

Merchant'ın iyzico tarafından atanmış ID numarası.

paymentId

string

İlgili ödemenin paymentId bilgisi

status

string

Ödeme durumu. Alabileceği değerler: FAILURE, SUCCESS, INIT_THREEDS, CALLBACK_THREEDS, BKM_POS_SELECTED, INIT_APM, INIT_CONTACTLESS

iyziReferenceCode

string

İstek için üretilen unique iyzico referans kodu

iyziEventType

string

İstek tipini belirtir. Alabileceği değerler:

PAYMENT_API, API_AUTH, THREE_DS_AUTH, THREE_DS_CALLBACK, BKM_AUTH, BALANCE, CONTACTLESS_AUTH, CONTACTLESS_REFUND, REFUND_RETRY_FAILURE, REFUND_RETRY_SUCCESS

iyziEventTime

long

Notification oluşturulma zamanının unix timestamp değeridir.

iyziPaymentId

long

Ödemeye ait ilgili paymentId.

HPP Format

Yukarıdakine benzer şekilde, bir sonraki webhook formatı, iyzico ile Öde, Ödeme Formu ve Tokenize Cüzdan Ödemesi olan barındırılan sayfa çözümlerinde görünür.

Parametre
Type
Açıklama

paymentConversationId

string

İlgili ödemenin üye işyeri tarafından gönderilmiş referans numarası

merchantId

string

Merchant'ın iyzico tarafından atanmış ID numarası.

token

string

Ödeme formu için üretilmiş ve ödeme detaylarını içeren token değeri

status

string

Ödeme durumu. Alabileceği değerler: FAILURE, SUCCESS, INIT_THREEDS, CALLBACK_THREEDS, BKM_POS_SELECTED, INIT_APM, INIT_BANK_TRANSFER, INIT_CREDIT, PENDING_CREDIT, INIT_CONTACTLESS

iyziReferenceCode

string

İstek için üretilen unique iyzico referans kodu

iyziEventType

string

İstek tipini belirtir. Alabileceği değerler: CHECKOUT_FORM_AUTH, BANK_TRANSFER_AUTH, BKM_AUTH, BALANCE, CONTACTLESS_AUTH, CONTACTLESS_REFUND, CREDIT_PAYMENT_AUTH, CREDIT_PAYMENT_PENDING,CREDIT_PAYMENT_INIT, REFUND_RETRY_FAILURE, REFUND_RETRY_SUCCESS,

PWI_TKN_FUND,

PWI_TKN_AUTH,

PWI_TKN_THREEDS_AUTH

iyziEventTime

long

Notification oluşturulma zamanının unix timestamp değeridir.

iyziPaymentId

long

Ödemeye ait ilgili paymentId.

Notifikasyon Validasyonu

İsteğin iyzico üzerinden geldiğini valide etmek için header içinde gönderilen X-IYZ-SIGNATURE-V3değeri kullanılabilir ve bu değer yalnızca sahip olduğunuz SECRET KEY ile çözülebilir.

Direkt Formatın Doğrulanması

SECRET KEY, iyziEventType, paymentId, paymentConversationId, status aşağıda verilen sıraya göre oluşturulmalıdır. Bu dizi HMACSHA256 ile hashlenir ve sonuç HEX ile şifrelenir. Son değer, başlıktaki X-IYZ-SIGNATURE-V3 ile eşleşmelidir.

Direkt format için Hashing Örneği
// HMAC için Key oluşturulur
const key = secretKey + iyziEventType + paymentId + paymentConversationId + status;

// HMAC SHA256 ile signature üretilir
const hmac256 = crypto.createHmac('sha256', secretKey)
                       .update(key)
                       .digest('hex');
Sıralama
Parametre
Açıklama

1

secretKey

Sahip olduğunuz secretKey

2

iyziEventType

İstek tipini belirtir. Alabileceği değerler:

PAYMENT_API, API_AUTH, THREE_DS_AUTH, THREE_DS_CALLBACK, BKM_AUTH, BALANCE, CONTACTLESS_AUTH, CONTACTLESS_REFUND, REFUND_RETRY_FAILURE, REFUND_RETRY_SUCCESS

3

paymentId

İlgili ödemenin paymentId bilgisi

4

paymentConversationId

İlgili ödemenin üye işyeri tarafından gönderilmiş referans numarası

5

status

Ödeme durumu. Alabileceği değerler: FAILURE, SUCCESS, INIT_THREEDS, CALLBACK_THREEDS, BKM_POS_SELECTED, INIT_APM, INIT_CONTACTLESS

HPP Format

SECRET KEY, iyziEventType, iyziPaymentId, token, paymentConversationId, status aşağıda verilen sıraya göre oluşturulmalıdır. Bu dizi HMACSHA256 ile hashlenir ve sonuç HEX ile şifrelenir. Son değer, başlıktaki X-IYZ-SIGNATURE-V3 ile eşleşmelidir.

HPP format için Hashing Örneği
// HMAC için Key oluşturulur
const key = secretKey + iyziEventType + iyziPaymentId + token + paymentConversationId + status;

// HMAC SHA256 ile signature üretilir
const hmac256 = crypto.createHmac('sha256', secretKey)
                       .update(key)
                       .digest('hex');
Sıralama
Paremetre
Açıklama

1

secretKey

Sahip olduğunuz secretKey.

2

iyziEventType

İstek tipini belirtir. Alabileceği değerler: CHECKOUT_FORM_AUTH, BANK_TRANSFER_AUTH, BKM_AUTH, BALANCE, CONTACTLESS_AUTH, CONTACTLESS_REFUND, CREDIT_PAYMENT_AUTH, CREDIT_PAYMENT_PENDING,CREDIT_PAYMENT_INIT, REFUND_RETRY_FAILURE, REFUND_RETRY_SUCCESS,

PWI_TKN_FUND,

PWI_TKN_AUTH,

PWI_TKN_THREEDS_AUTH

3

iyziPaymentId

Ödemeye ait ilgili paymentId.

4

token

Ödeme formu için üretilmiş ve ödeme detaylarını içeren token değeri

5

paymentConversationId

İlgili ödemenin üye işyeri tarafından gönderilmiş referans numarası

6

status

Ödeme durumu. Alabileceği değerler: FAILURE, SUCCESS, INIT_THREEDS, CALLBACK_THREEDS, BKM_POS_SELECTED, INIT_APM, INIT_BANK_TRANSFER, INIT_CREDIT, PENDING_CREDIT, INIT_CONTACTLESS

Last updated