Ödeme altyapısını açarken öğrendiğim beş şey
TRYazılar Türkçe yayınlanıyor.
Bir platformda ödeme almak, dışarıdan bakınca "bir sayfa ekle bitsin" gibi görünüyor. İçine girince öyle olmadığını anlıyorsunuz. Bu yazı, kendi platformumda ödemeyi açarken öğrendiğim şeylerin listesi.
1. Sanal pos başvurusu teknik bir iş değil, evrak işi
Kod yazmadan önce şirket kaydı, vergi levhası, banka hesabı ve site üzerinde belli metinlerin bulunması isteniyor: mesafeli satış sözleşmesi, iade koşulları, gizlilik metni. Bunlar eksikse başvuru teknik olarak değil, kâğıt üzerinde reddediliyor.
Buradan çıkardığım ders: ödeme entegrasyonuna başlamadan önce bu evrakların tamamlanmış olması gerekiyor. Yoksa kodu yazıp bekliyorsunuz.
2. Test ortamı gerçeği yansıtmıyor
Test kartlarıyla her şey çalışıyordu. Gerçek kartla ilk denemede işlem reddedildi. Sebep koddaki bir hata değildi; hesabın belli bir entegrasyon tipine kapalı olmasıydı. Bunu ancak gerçek bir işlem denediğimde gördüm.
Test ortamı "kodun doğru mu" sorusunu cevaplar, "hesabın açık mı" sorusunu değil.
3. Sessizce kaybolan siparişleri saymazsanız hiç fark etmezsiniz
Beş gün boyunca on iki sipariş denemesi reddedildi. Toplamı dört bin dört yüz liraydı. Bunların hiçbiri bana hata olarak düşmedi, çünkü hata kullanıcı tarafında oluşuyor ve kullanıcı da sessizce çıkıp gidiyor.
Bu yüzden ilk günden itibaren her ödeme denemesini, başarısız olanları da, veritabanına kaydetmek gerekiyor. Başarı oranı düştüğünde haberiniz olsun. Bende bu oran bir dönem yüzde otuz ikiye kadar inmişti ve bunu ancak kayıtlara bakınca gördüm.
4. Anahtarları koda yazmayın
Uzun süre sanal pos anahtarları, veritabanı şifresi ve yapay zekâ anahtarları kodun içinde duruyordu. Kod bir depoya konulduğunda bunların hepsi orada görünüyor. Sonradan hepsini web klasörünün dışına, tek bir dosyaya taşıdım ve tamamını yeniledim.
Doğru düzen şu: anahtarlar sitenin erişilebildiği klasörün dışında dursun, kod oradan okusun. Böylece biri sunucudaki dosyaları görse bile anahtarlara ulaşamaz.
5. Bildirim adresini kimse test etmiyor, sonra bu can yakıyor
Banka ödeme sonucunu size bir adrese haber vererek bildiriyor. O adres çalışmıyorsa para çekiliyor ama sistemde sipariş açılmıyor. Kullanıcı parasını ödemiş oluyor ve karşılığında hiçbir şey görmüyor.
Bu adresi iki şekilde test edin: doğru imzayla gelen bir bildirimi kabul ettiğini, sahte imzayla gelen bir bildirimi ise reddettiğini görün. İkincisi güvenlik açısından en az birincisi kadar önemli.
Sonuç
Ödeme altyapısı, bir projede "çalışıyor" ile "güvenilir" arasındaki farkın en net göründüğü yer. Kod bir günde yazılıyor, ama gerçekten güvenilir hale gelmesi kayıt tutmak, test etmek ve hata çıktığında görebilmekle oluyor.
Bu konuda yardım ister misiniz?
bilocom24@gmail.com