

E-ticaret sitesinde ödeme almak, yalnızca bir ödeme formunu sayfaya eklemekten ibaret değildir. Sipariş bilgilerinin doğru aktarılması, ödeme sonucunun güvenilir biçimde doğrulanması, başarısız işlemlerin yönetilmesi ve müşterinin güvenli bir ödeme ekranına yönlendirilmesi gerekir.
Bu nedenle en iyi sanal POS seçimi kadar, seçilen çözümün siteye nasıl entegre edildiği de önem taşır. Yanlış yapılandırılmış bir entegrasyon; ödemesi alınan siparişin sistemde beklemede kalmasına, başarısız işlemlerin onaylanmasına veya müşterinin ödeme sırasında hata almasına yol açabilir.
Bu rehberde WordPress ve WooCommerce başta olmak üzere e-ticaret sitelerinde sanal POS entegrasyonunun temel adımlarını sade ve uygulamaya dönük biçimde ele alıyoruz.
Sanal POS entegrasyonu, e-ticaret sitenizde oluşturulan sipariş bilgilerinin ödeme kuruluşuna veya bankaya aktarılmasını ve işlem sonucunun tekrar sitenize bildirilmesini sağlayan teknik bağlantıdır.
Entegrasyon sırasında genellikle şu bilgiler kullanılır:
Ödeme kuruluşu, gönderilen verileri işledikten sonra işlemin başarılı, başarısız, iptal edilmiş veya ek doğrulama bekleyen bir durumda olduğunu bildirir. E-ticaret yazılımı da bu sonuca göre siparişi günceller.
Daha fazla bilgi için WooCommerce ödeme geçidi API dokümantasyonu adresindeki resmi kaynağı inceleyebilirsiniz.
Her işletmenin teknik altyapısı aynı değildir. Bu nedenle sanal POS sağlayıcıları genellikle birden fazla entegrasyon yöntemi sunar. Doğru yöntem; kullandığınız e-ticaret platformuna, teknik ekibinize, tasarım beklentinize ve güvenlik sorumluluklarınıza göre belirlenmelidir.
Daha fazla bilgi için PayTR entegrasyon seçenekleri adresindeki resmi kaynağı inceleyebilirsiniz.
WooCommerce, Magento, PrestaShop veya benzeri hazır altyapılar kullanıyorsanız en pratik seçenek, sanal POS sağlayıcısının sunduğu resmi eklenti ya da uyumlu modüldür.
Bu yöntemde çoğu teknik işlem eklenti tarafından gerçekleştirilir. Yönetim panelinden API bilgileri girilir, ödeme yöntemi etkinleştirilir ve başarılı-başarısız dönüş ayarları yapılır.
Avantajları:
Dikkat edilmesi gerekenler:
WooCommerce tarafında ödeme ağ geçitleri; harici ödeme sayfasına yönlendirme, iFrame içinde ödeme formu gösterme veya ödeme alanlarını doğrudan mağaza sayfasında sunma gibi farklı modellerle çalışabilir. Doğrudan ödeme alanı gösteren çözümlerde site güvenliği ve PCI kapsamındaki sorumluluklar daha dikkatli değerlendirilmelidir.
Bu yöntemde müşteri, kart bilgilerini doğrudan sizin sunucunuza göndermek yerine ödeme sağlayıcısının güvenli ödeme ekranında girer. Ödeme formu yeni bir sayfada açılabilir veya sitenizin ödeme sayfası içinde iFrame olarak görüntülenebilir.
Yönlendirmeli modelde müşteri ödeme sağlayıcısının sayfasına gönderilir. İşlem tamamlandığında müşterinin sitenizdeki başarılı veya başarısız sonuç sayfasına dönmesi sağlanır.
iFrame modelinde ise ödeme ekranı sitenizin görünümü içinde yer alır. Ancak iFrame kullanılması, çevresindeki sayfanın güvenlik sorumluluklarını tamamen ortadan kaldırmaz. Ödeme sayfasına eklenen JavaScript kodları, üçüncü taraf eklentiler ve içerik güvenliği politikaları ayrıca kontrol edilmelidir.
PayTR’nin resmi açıklamasında iFrame entegrasyonunun ödeme formundan gerekli bilgilerin gönderilmesi ve ödeme sonucunun bildirileceği Bildirim URL adresinin hazırlanması olmak üzere iki temel adımdan oluştuğu belirtilir.
Direkt API yönteminde ödeme akışının önemli bölümleri sizin yazılımınız tarafından yönetilir. Ödeme formu, doğrulama adımları, API istekleri, hata yönetimi ve sipariş güncelleme süreçleri özel olarak geliştirilir.
Bu yöntem daha fazla kontrol sağlasa da teknik sorumluluğu artırır. Özellikle kart verilerinin hangi sistemlerden geçtiği, verilerin saklanıp saklanmadığı, sunucu güvenliği ve PCI DSS kapsamı dikkatle analiz edilmelidir.
Özel yazılım kullanan işletmeler için direkt API mantığı genel olarak şu şekildedir:
İlk adımda yalnızca komisyon oranına bakmayın. Kullandığınız altyapıyla uyum, 3D Secure desteği, taksit seçenekleri, iade işlemleri, teknik destek kalitesi ve raporlama özelliklerini birlikte değerlendirin.
Örneğin küçük bir WooCommerce mağazası için resmi eklenti ve hosted ödeme formu yeterli olabilir. Yüksek sipariş hacmine sahip, özel yazılım kullanan bir işletme ise API seviyesinde özelleştirme isteyebilir.
Sağlayıcı seçerken işlem hacminize ve teknik ihtiyaçlarınıza göre karşılaştırma yapmak için En İyi Sanal POS Nasıl Seçilir? rehberindeki kriterlerden yararlanabilirsiniz.
Başvurunuz onaylandıktan sonra ödeme kuruluşu veya banka tarafından test ve canlı ortam için gerekli bilgiler paylaşılır. Bunlar sağlayıcıya göre değişebilmekle birlikte genellikle API anahtarı, gizli anahtar, mağaza numarası, kullanıcı adı ve şifre gibi bilgilerden oluşur.
Test ve canlı bilgiler birbirine karıştırılmamalıdır. Test ortamında kullanılan anahtarları canlı sistemde kullanmak veya canlı anahtarları geliştirici ortamına eklemek güvenlik riski oluşturur.
API anahtarlarını doğrudan tema dosyalarına, JavaScript kodlarına veya herkese açık GitHub depolarına yazmayın. Bu bilgileri sunucu tarafında, mümkünse ortam değişkenleri veya güvenli bir gizli bilgi yönetimi yöntemiyle saklayın.
Ödeme almaya başlamadan önce sitenizin HTTPS üzerinden çalıştığından emin olun. SSL kurulumu yalnızca ödeme sayfası için değil, giriş, sepet, üyelik ve sipariş süreçlerinin tamamı için kullanılmalıdır.
Ayrıca sunucunuzun ödeme sağlayıcısının callback veya Bildirim URL adreslerine dışarıdan erişilebilir olması gerekir. Güvenlik duvarı, bakım modu, temel kimlik doğrulama veya IP kısıtlaması bu adreslerin çalışmasını engellememelidir.
Hazır e-ticaret altyapısında resmi eklentiyi kurup etkinleştirin. Ardından yönetim panelinde şu alanları kontrol edin:
WooCommerce ödeme geçidi eklentilerinde ödeme yöntemi; yönetim panelinde görünen başlık, müşteriye gösterilen açıklama ve sipariş işleme fonksiyonlarıyla birlikte çalışır. Ödeme başarılı olduğunda siparişin “ödendi” durumuna alınması ve müşterinin teşekkür sayfasına yönlendirilmesi gerekir.
Her ödeme isteğine benzersiz bir sipariş numarası veya işlem kimliği ekleyin. Ödeme sonucunda gelen bildirim, bu değer üzerinden sisteminizdeki doğru siparişle eşleştirilmelidir.
Bu yaklaşım, müşterinin ödeme sayfasına geri dönüp dönmediğinden bağımsız olarak işlemi takip etmenizi sağlar. Özellikle müşterinin tarayıcıyı kapattığı veya internet bağlantısının kesildiği durumlarda, siparişin kesin durumu callback ya da webhook bildirimiyle belirlenmelidir.
Bildirim URL, ödeme kuruluşunun işlem sonucunu sunucunuza gönderdiği adrestir. Bu adres müşterinin gördüğü başarılı ödeme sayfasından farklıdır ve arka planda çalışır.
Bildirim endpoint’inde şu kontroller yapılmalıdır:
PayTR dokümantasyonunda Bildirim URL adresine POST yöntemiyle ödeme sonucu gönderildiği ve yazılımın siparişi onayladıktan sonra yalnızca beklenen “OK” yanıtını vermesi gerektiği belirtilir. Ayrıca aynı sipariş için birden fazla bildirim gelebileceğinden, tekrar işlemeyi engelleyen kontrollerin uygulanması önerilir.
Başarılı ödeme sayfasında sipariş numarası, ödeme özeti ve teslimat bilgileri gösterilebilir. Başarısız ödeme sayfasında ise müşteriye anlaşılır bir hata mesajı sunulmalı ve yeniden deneme seçeneği verilmelidir.
Ancak siparişi yalnızca müşterinin başarılı dönüş sayfasına gelmesine bakarak tamamlamayın. Tarayıcı yönlendirmesi, ödeme sonucunun kesin kanıtı değildir. Siparişin onaylanması, sağlayıcıdan gelen doğrulanmış sunucu bildirimiyle gerçekleştirilmelidir.
| Kontrol alanı | Yapılması gereken |
|---|---|
| Eklenti | Resmi veya güvenilir geliştirici tarafından sunulan güncel modülü kullanın. |
| API bilgileri | Test ve canlı anahtarları ayrı tutun. |
| HTTPS | Ödeme ve callback adreslerinin HTTPS üzerinden çalıştığını doğrulayın. |
| Sipariş durumu | Başarılı bildirimde siparişin otomatik tamamlandığını test edin. |
| İade | Tam ve kısmi iade işlemlerinin panelden veya API üzerinden çalıştığını kontrol edin. |
| Stok | Başarısız ödemede stok düşülmediğinden emin olun. |
| E-posta | Başarılı ve başarısız işlem bildirimlerinin doğru gönderildiğini test edin. |
| Log kayıtları | Hata ayıklama kayıtlarının hassas kart verisi içermediğini kontrol edin. |
Müşteri başarılı ödeme sayfasına yönlendirilse bile arka plandaki bildirim alınmamış olabilir. Sipariş güncellemesini yalnızca sunucu tarafında doğrulanmış bildirimle gerçekleştirin.
Ödeme sağlayıcısından gelen sunucu bildiriminde müşterinin tarayıcı oturumu bulunmayabilir. Bu nedenle işlem eşleştirmesini session bilgisiyle değil, sipariş numarası ve işlem kimliğiyle yapın.
Ağ sorunları veya yeniden gönderimler nedeniyle aynı ödeme bildirimi tekrarlanabilir. Sipariş tamamlandıysa ikinci bildirimin stok düşme, e-posta gönderme veya fatura oluşturma işlemlerini yeniden tetiklemesini engelleyin.
Canlıya geçişten önce test anahtarlarının kaldırıldığını, canlı API bilgilerinin eklendiğini ve panelde üretim modunun etkinleştirildiğini kontrol edin.
Kart numarası, CVV ve benzeri hassas verileri kendi veri tabanınızda saklamayın. Hosted ödeme formu veya sağlayıcının güvenli tokenizasyon çözümü, kart verisi kapsamını azaltmaya yardımcı olabilir.
PCI Security Standards Council, ödeme sayfasındaki tüm bileşenlerin PCI DSS doğrulaması bulunan bir hizmet sağlayıcıdan gelmesinin SAQ A uygunluğu açısından önemli olduğunu belirtir. Ödeme alanlarının bir kısmı işletmenin kendi sayfasında oluşturuluyorsa farklı güvenlik ve uyumluluk sorumlulukları doğabilir.
Entegrasyonu yalnızca başarılı bir ödeme deneyerek tamamlanmış kabul etmeyin. Aşağıdaki senaryoları ayrı ayrı test edin:
Daha fazla bilgi için iyzico Checkout Form entegrasyonu adresindeki resmi kaynağı inceleyebilirsiniz.
Her testten sonra ödeme kuruluşunun panelini, e-ticaret yönetim panelini, sipariş kaydını, stok hareketini ve müşteriye giden e-postayı birlikte kontrol edin.
Teknik entegrasyonun sorunsuz çalışması kadar ödeme deneyiminin hızlı ve anlaşılır olması da önemlidir. Ödeme sayfasını gereksiz alanlarla doldurmayın, mobil uyumluluğu kontrol edin ve hata mesajlarını teknik kodlar yerine müşterinin anlayacağı ifadelerle gösterin.
Birden fazla ödeme seçeneği sunuyorsanız seçenekleri sade biçimde gruplayın. Taksit bilgilerini, komisyon veya ek ücretleri ödeme öncesinde açıkça belirtin. Ayrıca ödeme butonunun işlem sırasında devre dışı bırakılması, aynı siparişin iki kez gönderilmesini önleyebilir.
İyi bir entegrasyon; müşterinin kart bilgilerini güvenle girdiği, işletmenin sipariş durumunu doğru izlediği ve muhasebe-stok süreçlerinin otomatik ilerlediği bir ödeme akışı oluşturur. Bu nedenle sağlayıcı seçerken fiyat kadar teknik uyumluluğu, güvenlik yaklaşımını ve destek kalitesini de değerlendirmek gerekir.
Doğru yöntemle kurulan sanal POS entegrasyonu, e-ticaret sitesinin yalnızca ödeme almasını değil; siparişten iadeye kadar tüm satış sürecini daha düzenli yönetmesini sağlar.
TeknobooX.com Olarak Türkiye ve Dünya’da gelişen teknoloji haberlerini hızlı ve kolay bir şekilde sizlere ulaştırmayı amaç edinmiştir. Sizlerde gelişen teknoloji haberlerinden haberdar olmak istiyorsanız, sitemizi takip edebilirsiniz.