Ana içeriğe geç

Yemek Kartı Saklama

Yemek kartı saklama çözümünde kullanılan endpoint, HTTP metod bilgisi, istek ve dönüş parametreleri bilgisi aşağıda verilmiştir.

Yemek Kartı Saklama Başlatma İstek Parametreleri

Yemek kartı kaydetme sürecinin başlatılabilmesi için init isteği aşağıdaki parametrelerle yapılmalıdır.

POST/payment/v1/meal-voucher/card-tokenizations/init
apmType
ApmType
zorunlu
Değerler:
SODEXO
EDENRED
TOKENFLEX
METROPOL
MULTINET
SETCARD
mealVoucherCardTokenizationData
object
zorunlu

Yemek kartı saklama bilgileri.

cardNumber
string

Kart numarası (APM tipi METROPOL ve EDENRED olanlar için gönderilmelidir.)

userReferenceNumber
string

Kullanıcı referans numarası

gsmNumber
string

Telefon numarası (APM tipi METROPOL ve TOKENFLEX olanlar için gönderilmelidir.)

callbackUrl
string

Yemek kartı kaydetme sonucunu, gerekli bilgileri üye işyerine iletmek için kullanılacak adres.(APM tipi SETCARD, TOKENFLEX, MULTINET ve SODEXO olanlar için gönderilmelidir.)

Dönüş Parametreleri

sessionId
string

İşleme ait benzersiz değer

additionalAction
AdditionalAction

Bir sonraki aşamada yapılması gereken adım ile alakalı yönlendirici değerler

Değerler:
CONTINUE_IN_CLIENT
SHOW_HTML_CONTENT
REDIRECT_TO_URL
NONE
htmlContent
string

Ödeme adımı için kullanıcıya gösterilecek HTML içeriği. Bu değer Base64-encoded olarak gönderilmekte olup, gösterimden önce üye işyeri tarafından Base64 decode edilmelidir. (APM Tipi MULTINET ve SETCARD olanlar için dönülecektir.)

redirectUrl
string

Ödeme işleminin devam edeceği URL bilgisi. (APM Tipi SODEXO ve TOKENFLEX olanlar için dönülecektir.)

Yemek Kartı Saklama Hash Doğrulama

Yemek kartı kaydetme süreci başlatıldıktan sonra kullanıcı, saklamak istediği kartı seçerek işlemi ekranda tamamlar. İşlem tamamlandığında, kart saklama işleminin sonucu üye işyerinin init aşamasında ilettiği callback URL'ine gönderilir.

Callback URL'e İletilen Parametreler

sessionId
string

İşleme ait benzersiz değer

fingerprint
string

Kart parmak izi

maskedCardNumber
string

Maskelenmiş kart numarası

status
string

Yemek kartı saklama işleminin durumunu ifade eden değer. Doğrulama başarılıysa SUCCESS, değilse FAILURE değerini alacaktır

hashParams
string

Hash hesaplamasında kullanılan parametrelerin sıralı olarak gönderildiği alandır. : karakterine göre parametreler ayrıştırılarak, ilgili parametre değerleri ard arda eklenerek hash hesaplamasına dahil edilmelidir.

hash
string

Üye İşyeri Callback Key değerinin, hashParams alanında açıklandığı şekilde ilgili değerlerin oluşturularak birleştirilip Sha-256 Hex algoritması ile şifrelenmesi sonucu oluşan değerdir. Hash değerinin oluşturması için örnek kodlar aşağıda yer almaktadır.

Yemek Kartı Saklama için Mecburi Güvenlik Adımı: Hash Değerinin Oluşurulması ve Kontrolü

uyarı

Üye işyerinin Callback URL'ine, Craftgate'in geldiği gibi kötü niyetli kişiler de istek atabilir. O nedenle CALLBACK URL'E GELEN HİÇBİR İSTEĞE, HASH KONTROLÜ YAPMADAN KESİNLİKLE GÜVENMEYİNİZ.

İşlem için gerekli 32 Haneli key değerine Panel üzerinde bulunan Yönetim -> Üye İşyeri Ayarları arayüzündeki "Üye İşyeri Callback Key" alanından ulaşabilirsiniz.

public boolean verifyHash(Map<String, String> callbackParams, String callbackKey) {
String hashValues = Arrays.stream(callbackParams.get("hashParams").split(":"))
.map(callbackParams::get)
.collect(Collectors.joining());

String calculatedHash = DigestUtils.sha256Hex(callbackKey + hashValues);
return calculatedHash.equals(callbackParams.get("hash"));
}

Örnek olarak aşağıdaki callback içeriğinin iletildiğini ve Üye İşyeri Callback Key değerinin merchantDummyCallbackKeySandbox1 olduğunu varsayalım.

sessionId=60351fc9-c5ce-42a8-9332-6e15ebf5bbe8
status=SUCCESS
maskedCardNumber=7599********1920
fingerprint=ca31e9418f907fcfbb50fc7733ed2d93b83b30a05e49e64c83058813827a8426
hashParams=sessionId:status:maskedCardNumber:fingerprint
hash=095eb6428b6fd40543837ce009ede7c7f0a5b6006478e35825d8673fb3716b13

hashParams parametrelerinden null değerleri eleyip String olarak birleştirmelisiniz. Örnekte, hash algoritmasına sokulacak değer şu şekilde oluşmalı:

merchantDummyCallbackKeySandbox160351fc9-c5ce-42a8-9332-6e15ebf5bbe8SUCCESS7599********1920ca31e9418f907fcfbb50fc7733ed2d93b83b30a05e49e64c83058813827a8426

Yukarıdaki algoritma kullanılarak oluşacak hash değeri aşağıdaki gibi olacaktır.

095eb6428b6fd40543837ce009ede7c7f0a5b6006478e35825d8673fb3716b13

Oluşturulan değerin istek içerisinde bulunan "hash" parametresine eşitliği karşılaştılarak validasyon sağlanmalıdır.

Yemek Kartı Saklama Tamamlama İstek Parametreleri

Yemek kartı kaydetme sürecinin tamamlanabilmesi için, init isteği sonucunda dönen sessionId kullanılarak aşağıdaki parametrelerle complete isteği gönderilmelidir.

not

Bu istek sadece APM tipi METROPOL olanlar için gönderilmelidir.

POST/payment/v1/meal-voucher/card-tokenizations/:sessionId/complete
validationCode
string

Doğrulama kodu

Dönüş Parametreleri

sessionId
string

İşleme ait benzersiz değer

maskedCardNumber
string

Maskelenmiş kart numarası

fingerprint
string

Kart parmak izi

balance
decimal

Bakiye

Yemek Kartı Saklama İşleminin Yeniden Başlatılması

Herhangi bir nedenle yemek kartı kaydetme sürecinin yeniden başlatılması gerektiğinde, init isteği sonucunda dönen sessionId değeri kullanılarak süreç yeniden başlatılabilir.

Yeniden başlatma isteğinin ardından yalnızca METROPOL APM tipi için "Yemek Kartı Saklama Tamamlama" isteği gönderilebilir.

POST/card-tokenizations/:sessionId/regenerate
mealVoucherCardTokenizationData
object
zorunlu

Yemek kartı saklama bilgileri.

cardNumber
string

Kart numarası (APM tipi METROPOL ve EDENRED olanlar için gönderilmelidir.)

userReferenceNumber
string

Kullanıcı referans numarası

gsmNumber
string

Telefon numarası (APM tipi METROPOL ve TOKENFLEX olanlar için gönderilmelidir.)

callbackUrl
string

Yemek kartı kaydetme sonucunu, gerekli bilgileri üye işyerine iletmek için kullanılacak adres.(APM tipi SETCARD, TOKENFLEX, MULTINET ve SODEXO olanlar için gönderilmelidir.)

Dönüş Parametreleri

sessionId
string

İşleme ait benzersiz değer

additionalAction
AdditionalAction

Bir sonraki aşamada yapılması gereken adım ile alakalı yönlendirici değerler

Değerler:
CONTINUE_IN_CLIENT
SHOW_HTML_CONTENT
REDIRECT_TO_URL
NONE
htmlContent
string

Ödeme adımı için kullanıcıya gösterilecek HTML içeriği. Bu değer Base64-encoded olarak gönderilmekte olup, gösterimden önce üye işyeri tarafından Base64 decode edilmelidir. (APM Tipi MULTINET ve SETCARD olanlar için dönülecektir.)

redirectUrl
string

Ödeme işleminin devam edeceği URL bilgisi. (APM Tipi SODEXO ve TOKENFLEX olanlar için dönülecektir.)

Örnek Kodlar

Açık kaynak kodlu Craftgate API client'larındaki örnek kodları inceleyebilirsiniz.

Yemek Kartı Saklama Başlatma

Yemek Kartı Saklama Tamamlama

Yemek Kartı Saklama İşleminin Yeniden Başlatılması