Craftgate, aşağıda belirtilen işlemlerin sonucunu ve işlem bilgilerini, sizin tanımlayacağınız bir URL e düzenli olarak iletir. Böylece Craftgate üzerinden gerçekleştirilen tüm ödeme/iptal/iade/para transferi/cüzdan işlemlerinizin sonuçlarını -ödeme akışı kesintiye uğrasa bile- dinleyebilir, akışlarınızı ödeme sonuçlarına göre planlayabilirsiniz.
callbackUrl
adresine yapılacak olan istekler tarayıcı üzerinden
gerçekleşmektedir. Son kullanıcının bu akışı durdurması veya kullanıcının internetinde yaşanabilecek sorunlardan
dolayı callbackUrl
adresine yapılan istekler yapılamayabilir. O nedenle webhook servislerimiz özellikle 3DS ödemelerin
takibi ve kullanıcı davranışlarının tespiti için faydalı olabilmektedir.Webhook bildiriminin aktifleşleştirilmesi için Craftgate paneli Ayarlar
->Üye İşyeri Ayarları
->Genel Ayarlar
altındaki Üye işyeri Webhook URL
alanının doldurulması gerekmektedir. Webhook URL adresi olarak POST
isteklerini
kabul edip HTTP
kodlarından 2xx
dönen bir URL bilgisi girmeniz durumunda, Craftgate ödemeler sonrası ilgili veriyi
gönderiyor olacaktır.
Webhook çağrısı, ödemeyle alakalı ilgili aksiyon tamamlandıktan 30 saniye sonra sizin belirttiğiniz webhookUrl adresine yapılmaya başlanır. 2xx cevabı alınmadığı durumda sırasıyla 10 sn, 30 sn, 3 dk, 10 dk, 30 dk bekletilerek tekrar tekrar deneme yapılır. 5 denemenin sonucunda hala başarılı olmamışsa iptal edilir. Tekrar deneme mekanizması nedeniyle, gelen mesajın karşılığı olan ödeme ile ilgili sisteminizdeki durumunun kontrol edilmesi önemlidir.
Ödeme, İptal, İade, 3D ödeme ve 3D secure doğrulama, Para transferi sonuçları belirtmiş olduğunuz webhook adresine JSON
formatında POST
http metodu
ile iletilir.
Parametre Adı | Tipi | Açıklama |
---|---|---|
eventTimestamp |
long |
İsteğin oluşturulduğu tarihin epoch değeri |
eventType |
string |
İsteğin hangi işlem için gerçekleştiğini belirtir. Alabileceği değerler: API_AUTH , CHECKOUTFORM_AUTH , THREEDS_VERIFY , REFUND , REFUND_TX , PAYOUT_COMPLETED , AUTOPILOT , WALLET_CREATED , WALLET_TX_CREATED |
status |
string |
İşleme ait durum bilgisidir. Alabileceği değerler: SUCCESS , FAILURE |
payloadId |
string |
Ödemeye ait ID değeri veya Ödeme formuna ait token bilgisi |
payload |
Object |
Gelen eventType bilgisine göre ilgili işleme ait ek detayları içerir. PAYOUT_COMPLETED , AUTOPILOT ,WALLET_CREATED , WALLET_TX_CREATED eventleri için dolu gelir. |
Webhook URL inize gelen isteklerin Craftgate sisteminden gönderildiğini bilgisinin teyit edilebilmesi için, HTTP header
ları arasında gönderilen x-cg-signature-v1
değerinin kontrol edilmesi gerekmektedir.
x-cg-signature-v1
değeri, istek içerisinde gönderilen alanların String
olarak birleştirilip HmacSHA256
algoritması
ile Hash değeri alınarak hesaplanır.
Örnek olarak API entegrasyonu kullanılarak 2022-01-01T09:30:32 GMT+3 (epoch: 1641018632) tarihinde başarılı bir şekilde alınan 2150001 id
li ödeme için eventType+eventTimestamp+status+payloadId
bilgileri String olarak
birleştirildiğinde API_AUTH1641018632SUCCESS2150001
sonucu oluşmaktadır.
Bu değeri Craftgate Üye işyeri paneli Ayarlar kısmında bulunan Üye İşyeri Webhook Key
değeri ile Hashleyip Base64
encoded versiyonunu aldığınızda oluşan sonuç x-cg-signature-v1
değerine eşit olacaktır.
İşlem Tipi | Örnek Veri |
---|---|
API_AUTH |
{"eventType": "API_AUTH","eventTime": "2023-04-13T14:15:32.123456","eventTimestamp": 1681384532,"status": "SUCCESS","payloadId": "271591"} |
CHECKOUTFORM_AUTH |
{"eventType": "CHECKOUTFORM_AUTH","eventTime": "2023-04-13T13:58:17.123456","eventTimestamp": 1681383497,"status": "SUCCESS","payloadId": "14755c78-2e55-4171-ade2-7c9e7dc453ef"} |
THREEDS_VERIFY |
{"eventType": "THREEDS_VERIFY","eventTime": "2023-04-13T14:13:12.123456","eventTimestamp": 1681384392,"status": "SUCCESS","payloadId": "271591"} |
REFUND |
{"eventType": "REFUND","eventTime": "2023-04-14T11:27:17.123456","eventTimestamp": 1681460837,"status": "SUCCESS","payloadId": "24"} |
REFUND_TX |
{"eventType": "REFUND_TX","eventTime": "2023-04-14T11:27:22.123456","eventTimestamp": 1681460842,"status": "SUCCESS","payloadId": "144"} |
PAYOUT_COMPLETED |
{"eventType": "PAYOUT_COMPLETED","eventTime": "2023-04-14T10:41:07.123456","eventTimestamp": 1681458067,"status": "SUCCESS","payloadId": "50","payload": {"settlementFileId": 50,"settlementType": "SETTLEMENT"}} |
AUTOPILOT |
{"eventType": "AUTOPILOT","eventTime": "2023-04-14T11:07:31.123456","eventTimestamp": 1681459651,"status": "SUCCESS","payloadId": "62-garanti-59","payload": {"posAlias": "62-garanti-59","posName": "garanti","nonThreeDsStatus": "PASSIVE","threeDsStatus": "ACTIVE","notificationsEnabled": false}} |
WALLET_CREATED |
{"eventType": "WALLET_CREATED", "eventTime": "2023-04-26T16:16:47.123456", "eventTimestamp": 1682515007, "status": "SUCCESS", "payloadId": "34", "payload": { "currency": "TRY", "walletId": 34, "memberId": 39, "negativeAmountLimit": 0 } } |
WALLET_TX_CREATED |
{"eventType": "WALLET_TX_CREATED", "eventTime": "2023-04-28T15:13:12.123456", "eventTimestamp": 1682683992, "status": "SUCCESS", "payloadId": "34", "payload": { "currency": "TRY", "walletTransactionType": "PAYMENT_REDEEM", "id": 158, "memberId": 39, "transactionId": 1, "walletId": 34, "amount": -10 } } |