WPHizmet

WooCommerce Ödeme Sayfası Hata Veriyor: Sipariş Tamamlanamıyor

Yayınlandı:
Son teknik kontrol:
2 dk okuma
Site erişilemezWooCommerce
“Sipariş ver” butonuna basınca işlem dönüp duruyor, hata mesajı çıkıyor veya ödeme yöntemi görünmüyor

Belirtiler

  • “Sipariş ver” butonu dönüyor ama sonuç gelmiyor
  • Ödeme sayfasında genel bir hata mesajı veya “SyntaxError: Unexpected token” uyarısı
  • Ödeme yöntemi (kart, havale) ödeme sayfasında görünmüyor
  • Bankanın 3D Secure ekranından dönüşte sipariş oluşmuyor veya başarısız görünüyor
  • Sorun yalnızca bazı müşterilerde veya yalnızca oturum açmamış ziyaretçilerde

Kısa cevap

Müşteri “Sipariş ver”e bastığında tarayıcı, siparişi sunucuya bir arka plan isteğiyle gönderir. Bu istek önbellek, JavaScript hatası, güvenlik kuralı veya sunucudaki bir PHP hatası yüzünden bozulursa buton döner durur ya da genel bir hata mesajı çıkar. Ödeme yöntemi hiç görünmüyorsa neden genellikle ödeme eklentisinin ayarı veya blok tabanlı ödeme sayfasıyla uyumsuzluğudur. Teşhis, gizli pencerede müşteri gibi test siparişi verip tarayıcının ağ sekmesindeki cevaba ve WooCommerce günlüklerine bakarak yapılır.

Önemli noktalar

  • Ödeme sayfası sayfa önbelleğine veya CDN önbelleğine asla alınmamalıdır.
  • Asıl hata, tarayıcı ağ sekmesindeki ödeme isteğinin cevabında görünür.
  • Blok tabanlı ödeme sayfasıyla uyumlu olmayan eski bir ödeme eklentisi orada görünmeyebilir.
  • Test ve canlı API anahtarlarının karışması, ödeme sağlayıcısının isteği reddetmesine yol açar.
  • WooCommerce > Durum > Günlükler ekranı hem ölümcül hataları hem ödeme eklentisi kayıtlarını gösterir.

Önce müşteri gibi test edin

  1. Gizli pencerede, oturum açmadan sipariş verin

    Yönetici olarak oturum açıkken önbellek ve bazı kurallar devre dışı kalır; sorunu müşterinin gördüğü gibi görmek için oturum açmayın.

  2. Tarayıcı geliştirici araçlarını açın

    F12 ile Console ve Network (Ağ) sekmelerini açın, ardından “Sipariş ver”e basın.

  3. Ödeme isteğinin cevabına bakın

    Klasik ödeme sayfasında istek adresi “?wc-ajax=checkout” içerir; blok tabanlı ödeme sayfasında “/wp-json/wc/store/v1/checkout”. İsteğin durum koduna ve cevap gövdesine bakın.

  4. Günlükleri kontrol edin

    WooCommerce > Durum > Günlükler ekranında aynı dakikaya ait ölümcül hata ve ödeme eklentisi kayıtlarına bakın.

Belirtiye göre neden

Ne görüyorsunuzOlası nedenÇözüm
Cevap HTML veya bir PHP uyarısıyla başlıyor; ekranda “SyntaxError: Unexpected token”Sunucu, JSON cevabının önüne bir PHP uyarısı veya hata sayfası ekliyorGünlükteki PHP hatasını düzeltin; canlı sitede hata gösterimini (WP_DEBUG_DISPLAY) kapatın
İstek 403 dönüyorGüvenlik eklentisi veya sunucu güvenlik duvarı ödeme isteğini engelliyorGüvenlik kaydında engellenen isteği bulun ve ödeme uç noktası için istisna tanımlayın
Oturum veya güvenlik anahtarı süresi doldu uyarısı; sorun rastgele müşterilerdeÖdeme sayfası önbelleğe alınmış, eski güvenlik anahtarları sunuluyorSepet, ödeme ve hesabım sayfalarını önbellek ve CDN kurallarından hariç tutun (sepet güncellenmiyor sayfasında ayrıntılı)
Buton dönüyor, ağ sekmesinde istek hiç gitmiyorSayfadaki bir JavaScript hatası ödeme betiğini durdurmuş; sık neden JS birleştirme/erteleme ayarıKonsoldaki hatayı izleyin; optimizasyon eklentisinde ödeme sayfasını JS birleştirme ve ertelemeden hariç tutun
Ödeme yöntemi görünmüyorYöntem kapalı, para birimi veya ülke kısıtı var ya da eklenti blok ödeme sayfasını desteklemiyorÖdeme ayarlarını kontrol edin; eklenti blok desteği sunmuyorsa geliştiricisine sorun veya klasik ödeme sayfasına dönün
Ödeme sağlayıcısı “yetkisiz” / “geçersiz anahtar” diyorTest ve canlı API anahtarları karışmış veya anahtarlar yenilenmişÖdeme eklentisi ayarlarında ortamı (test/canlı) ve anahtarları sağlayıcı panelindekilerle karşılaştırın
3D Secure sonrası sipariş başarısız veya “beklemede”Bankadan dönüş (callback) adresi engellenmiş, önbelleğe alınmış veya yanlış tanımlıSağlayıcı panelindeki dönüş/bildirim adresini ve bu adrese gelen isteklerin güvenlik kurallarına takılmadığını kontrol edin
Kargo seçeneği bulunamadı uyarısıMüşterinin adresi hiçbir kargo bölgesine uymuyorWooCommerce > Ayarlar > Kargo altında kargo bölgelerini ve yöntemlerini gözden geçirin

Blok tabanlı ödeme sayfası ve eski eklentiler

WooCommerce’te blok tabanlı sepet ve ödeme sayfaları yeni varsayılandır. Bu sayfalar ödeme isteğini farklı bir yoldan (Store API) gönderir; bu yolu desteklemeyen eski bir ödeme, kargo veya ödeme alanı eklentisi burada görünmeyebilir ya da çalışmayabilir. WooCommerce’in önerisi, eklenti geliştiricisinden blok desteği istemektir. Beklerken ödeme sayfasını klasik ödeme kısa koduna döndürmek geçici bir çözümdür; bu değişikliği önce bir kopya sitede deneyin.

Sipariş oluşuyor ama müşteriye veya size e-posta gitmiyorsa sorun ödeme değil e-posta gönderimidir; WooCommerce e-posta gitmiyor rehberine bakın.

Sık sorulan sorular

Sorun yalnızca bazı müşterilerde oluyor.
Rastgele müşterilerde görülen ödeme hataları çoğunlukla önbellekle ilgilidir: bir müşteriye başka bir oturum için üretilmiş sayfa veya süresi dolmuş güvenlik anahtarı sunulur. Belirli bir tarayıcı veya cihazda görülüyorsa tarayıcı eklentileri ve JavaScript hataları öne çıkar.
Para çekildi ama sipariş oluşmadı, ne yapmalıyım?
Önce ödeme sağlayıcısının panelinde işlemi bulun; ödeme gerçekten tamamlandıysa siparişi elle oluşturup ödemeyle eşleştirin ya da iadeyi başlatın. Ardından sağlayıcının siteye geri bildirim gönderdiği adresin engellenip engellenmediğini kontrol edin; bu adres çalışmazsa aynı durum tekrarlanır.
Hangi ödeme sayfasını kullandığımı nasıl anlarım?
Ödeme sayfasını düzenleyicide açın: içerikte “Checkout” (Ödeme) bloğu varsa blok tabanlı ödeme sayfası, [woocommerce_checkout] kısa kodu varsa klasik ödeme sayfası kullanıyorsunuz.

Kaynaklar ve teknik referanslar

Bu hatayı çözemediyseniz

İlgili içerikler