E-ticaret sitesi işletenlerin en sevmediği müşteri mesajlarından biri: “Kartımdan para çekildi ama siparişim görünmüyor.” Panelde sipariş ya hiç yok ya da “ödeme bekleniyor” durumunda duruyor. Ödeme sağlayıcısının panelinde ise işlem başarılı görünüyor.
Bu sorunla çok karşılaştık. İyi haber şu ki sebebi neredeyse her zaman birkaç bilinen şeyden biri. Kötü haber, fark edilmediği sürece her gün birkaç sipariş kaybettirebiliyor.
Önce şunu anlamak lazım: ödeme sonucu siteye nasıl ulaşıyor?
Çoğu ödeme akışında sonuç sitenize iki yoldan gelir. Birincisi, müşterinin tarayıcısı ödeme ve 3D Secure ekranından sonra sitenize geri yönlendirilir. İkincisi, ödeme sağlayıcısı sunucunuza ayrıca bir bildirim (callback, webhook ya da “bildirim URL’si”) gönderir.
Sorunların büyük kısmı, bu iki yoldan birinin çalışmamasından ya da sitenin yalnızca birine güvenmesinden çıkıyor.
1. Sipariş yalnızca tarayıcı dönüşüne bağlı
Site, siparişi ancak müşteri ödeme sonrası siteye geri döndüğünde onaylıyorsa, dönmeyen her müşteri bir kayıp sipariş demek. Müşteri 3D Secure ekranından sonra sekmeyi kapatabilir, telefonu kilitlenebilir, bağlantısı kopabilir. Para çekilmiştir ama site haberdar değildir.
Çözüm: siparişi sağlayıcının sunucudan sunucuya gönderdiği bildirime göre onaylamak. Tarayıcı dönüşü sadece müşteriye “teşekkürler” sayfasını göstermek için kullanılmalı.
2. Bildirim adresi yanlış ya da erişilemiyor
Sağlayıcı panelinde tanımlı bildirim adresi eski bir adresi gösteriyor olabilir. Site HTTP’den HTTPS’e taşındıysa, alan adı değiştiyse ya da test ortamının adresi canlıda unutulduysa bildirimler boşa gider.
Adres doğru olsa bile sunucunuz isteği reddediyor olabilir. Güvenlik eklentileri, Cloudflare gibi bir hizmetteki bot korumaları ya da sunucu güvenlik duvarı, sağlayıcıdan gelen istekleri şüpheli trafik sanıp engelleyebiliyor. Sağlayıcı panelinde bildirimlerin hangi cevabı aldığına bakmak genelde ilk ipucunu verir.
3. Doğrulama hatası
İyi yazılmış bir entegrasyon, gelen bildirimin gerçekten sağlayıcıdan geldiğini imza ya da hash ile kontrol eder. API anahtarı değiştirildiğinde ya da test anahtarı canlı ortamda kaldığında bu doğrulama başarısız olur ve site bildirimi reddeder. Sonuç: ödeme başarılı, sipariş askıda.
Anahtarları değiştirdiyseniz hem sitedeki hem sağlayıcı panelindeki ayarları birlikte kontrol edin.
4. Önbellek ve oturum sorunları
Sayfa önbelleği kullanan sitelerde ödeme dönüş sayfası ya da sepet önbelleğe alınırsa garip sonuçlar çıkıyor: müşteri başkasının boş sepetini görüyor ya da dönüş isteği hiç uygulamaya ulaşmıyor. Ödeme, sepet ve hesap sayfaları ile bildirim adresi önbellekten mutlaka hariç tutulmalı.
Benzer şekilde, bazı tarayıcılar dış bir siteden geri dönüldüğünde oturum çerezini göndermeyebiliyor. Bu da müşterinin dönüşte oturumunun düşmüş görünmesine yol açıyor. Siparişi oturuma değil, sipariş numarasına bağlamak bu sorunu ortadan kaldırıyor.
5. Zaman aşımı ve stok kontrolü
Bazı sistemler sepeti belirli bir süre sonra iptal ediyor ya da ödeme dönüşünde stoğu yeniden kontrol ediyor. Müşteri 3D Secure ekranında uzun süre beklediyse sipariş iptal edilmiş, ürün başka birine satılmış olabiliyor. Bu durumda para çekilmiş ama sipariş oluşturulamamıştır.
Burada iki şey yapılabilir: ödeme süresince stoğu kısa bir süre rezerve etmek ve başarılı ödeme gelip sipariş oluşturulamadığında otomatik iade ya da en azından bir uyarı tetiklemek.
Şu an yaşıyorsanız ne yapmalı?
- Sağlayıcı panelinde başarılı görünen ama sitede karşılığı olmayan işlemleri listeleyin.
- Bu müşterilerle hemen iletişime geçin; siparişi elle oluşturun ya da iade edin.
- Sağlayıcı panelinde bildirimlerin aldığı cevaplara bakın (hata kodu, zaman aşımı, 403 gibi).
- Son yapılan değişiklikleri hatırlayın: eklenti güncellemesi, alan adı ya da SSL değişikliği, yeni bir güvenlik ayarı.
Sorunu kendiniz bulamadıysanız acil destek sayfamızdan ya da iletişim üzerinden bize yazın. Kalıcı çözüm için ödeme entegrasyonunu nasıl kurduğumuzu ödeme altyapısı ve sanal POS sayfamızda anlattık.