Bu kırmızılı banka beni sanal pos entegrasyonunda bildiğiniz delirtti zaten. Önce eski POS'u vermişler, sağolsunlar ona entegre olduk, sonra da (1 ay bile geçmeden) siz niye eskisini kullanıyorsunuz, yeniyi kullansanıza diyerek yeni POS'u verdiler.
Bunun üzerine bir de yeni POS'a da entegrasyonumuz oldukça sorunlu oldu. Güzide bankamız, AuthCode dönmediği zaman (başarısız işlemlerde örneğin) normalde 6 rakamsal değer gelen bir alanda bize 6 adet boş karakter dönmeyi tercih etmiş. Bildiğiniz " " (Düzeltme: Flarum'un kullandığı MD bile bunu tek boş karaktere çeviriyor düşünün 😅) dönüyorlar yani. Ve hash doğrulamasını da ona göre yapmamızı istiyorlar. Şimdi gelelim Laravel'e, böyle bir değer POST edildiğinde ne yapıyor, direkt temizliyor ve "" yapıyor. Raw input alsam bile temizlendiğini hatırlıyorum tam net olmamakla beraber. Sonuç olarak başarısız işlemlerde banka yanıtına güvenebilmek için hash doğrulaması yaparken aşağıdaki gibi bir şey yapmak durumunda kalıyorum. Sonuç olarak daha Auth bile olamıyorsanız kolaylıklar diliyorum size, başka diyebileceğim bir şey yok.
Ben mail atıyordum, 3-4 gün bekletseler de dönüyorlar bir şekilde.
$params = explode("+", $requestMap["hashParams"]);
$builder = "";
foreach ($params as $param) {
if(isset($requestMap[$param])){
$builder .= $requestMap[$param];
}elseif($param == 'authCode' && ($requestMap[$param] == null || $requestMap[$param] == "")) {
$builder .= " "; // 6 adet boşluk gönderiyorlarmış aslında :P 6 adet 0 koysana...
}
}
Bu konuda en iyisi Paytendi, direkt çağrı merkezleri var, arıyorsunuz, muhattap da var, telefondaki kişi "mail atın" demekten başka bir işe de yarıyor ve telefonda bildiğiniz işlem geçmişlerine bakıp size yardımcı oluyor. Olamıyorsa da (ciddi anlamda uzun konularda mesela) mail atıyorsunuz, gün içerisinde satır satır yanıtlıyorlar.
Şu ana kadar bir çok bankaya entegrasyon yaptım ve hala da yapıyorum. Böyle bir şey görmedim. Bir banka var adı bende kalsın, test ortamında IP sınırlaması yaptıran (sanal POS'ta), Test Kartları verirken CVV vermeyip, CVV 000 olmayınca da işlemi düz reddeden bir banka, test ortamında, evet test ortamında... Hani anlarım test ortamı da olsa sabit CVV istersin de, test ortam bilgilerini verirken niye 000 gönderin demeyip 3 gün kendisinden şüphe ettirirsin adamı?