E-Ticaret Sitelerinde Sanal POS Entegrasyonu Nasıl Yapılır?

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 nedir?

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:

  • Sipariş numarası
  • Toplam ödeme tutarı ve para birimi
  • Müşteri adı, e-posta adresi ve iletişim bilgileri
  • Ürün veya sepet bilgileri
  • Başarılı ve başarısız dönüş adresleri
  • Bildirim veya callback URL adresi
  • API anahtarı, mağaza numarası ve güvenlik imzası

Ö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.

Sanal POS entegrasyon yöntemleri nelerdir?

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.

1. Hazır eklenti veya modül ile entegrasyon

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ı:

  • Özel yazılım geliştirme ihtiyacını azaltır.
  • Sipariş durumu otomatik olarak güncellenebilir.
  • Taksit, 3D Secure ve iade gibi özellikler hazır gelebilir.
  • Kurulum süresi genellikle daha kısadır.

Dikkat edilmesi gerekenler:

  • Eklentinin güncel WooCommerce veya WordPress sürümüyle uyumlu olması
  • Geliştirici tarafından düzenli güvenlik güncellemesi yayımlanması
  • Sağlayıcının resmi modülünün kullanılması
  • Ödeme dönüşlerinin test ortamında kontrol edilmesi

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.

2. iFrame veya yönlendirmeli ödeme sayfası

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.

3. Direkt API entegrasyonu

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:

  1. Sitede sipariş oluşturulur ve işlem beklemede durumuna alınır.
  2. Sunucu, ödeme sağlayıcısına imzalı bir istek gönderir.
  3. Ödeme ekranı veya 3D Secure adımı başlatılır.
  4. Müşteri doğrulama sürecini tamamlar.
  5. Sağlayıcı, sonucu Bildirim URL veya callback adresine gönderir.
  6. Sunucu gelen bildirimi doğrular ve siparişi günceller.
  7. Müşteri bilgilendirme sayfasına yönlendirilir.

E-ticaret sitesine sanal POS entegrasyonu nasıl yapılır?

1. Uygun ödeme çözümünü seçin

İ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.

2. Mağaza ve API bilgilerini alın

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.

3. SSL sertifikasını ve sunucu ortamını kontrol edin

Ö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.

4. Eklentiyi veya API bağlantısını kurun

Hazır e-ticaret altyapısında resmi eklentiyi kurup etkinleştirin. Ardından yönetim panelinde şu alanları kontrol edin:

  • Test veya canlı çalışma modu
  • API anahtarı ve gizli anahtar
  • Para birimi
  • 3D Secure seçeneği
  • Taksit ayarları
  • Başarılı ödeme dönüş adresi
  • Başarısız ödeme dönüş adresi
  • Bildirim veya webhook adresi
  • Hata kayıtları ve debug ayarları

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.

5. Sipariş numarası ile ödeme kaydını eşleştirin

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.

6. Bildirim URL veya webhook adresini yapılandırın

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:

  1. Gelen isteğin sağlayıcıya ait olup olmadığını imza veya hash değeriyle doğrulayın.
  2. Sipariş numarasını veri tabanından bulun.
  3. Gelen tutarın sipariş tutarıyla eşleştiğini kontrol edin.
  4. İşlem para birimini ve işlem durumunu doğrulayın.
  5. Sipariş daha önce tamamlandıysa aynı bildirimi tekrar işlemeyin.
  6. Başarılı işlemde siparişi onaylayın ve stok düşümünü gerçekleştirin.
  7. Başarısız işlemde siparişi uygun hata durumuna alın.
  8. Sağlayıcının beklediği yanıtı doğru formatta döndürün.

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.

7. Başarılı ve başarısız dönüş sayfalarını ayırın

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.

WooCommerce için sanal POS entegrasyon kontrol listesi

Kontrol alanıYapılması gereken
EklentiResmi veya güvenilir geliştirici tarafından sunulan güncel modülü kullanın.
API bilgileriTest ve canlı anahtarları ayrı tutun.
HTTPSÖdeme ve callback adreslerinin HTTPS üzerinden çalıştığını doğrulayın.
Sipariş durumuBaşarılı bildirimde siparişin otomatik tamamlandığını test edin.
İadeTam ve kısmi iade işlemlerinin panelden veya API üzerinden çalıştığını kontrol edin.
StokBaşarısız ödemede stok düşülmediğinden emin olun.
E-postaBaş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.

Entegrasyon sırasında yapılan yaygın hatalar

Ödeme sonucunu yalnızca dönüş sayfasından almak

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.

Callback adresini oturum bilgisine bağlamak

Ö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.

Aynı bildirimi birden fazla kez işlemek

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.

Test modunu kapatmadan canlıya geçmek

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 bilgilerini gereksiz yere sunucuda tutmak

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.

Canlıya geçmeden önce test senaryoları

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.

  • Başarılı tek çekim işlemi
  • Başarısız kart işlemi
  • 3D Secure doğrulamasının tamamlanmaması
  • Müşterinin ödeme sırasında sayfayı kapatması
  • Yanlış veya eksik callback yanıtı
  • Aynı bildirimin iki kez gönderilmesi
  • Taksitli ödeme
  • Tam ve kısmi iade
  • Farklı para birimi veya yuvarlama senaryoları
  • Mobil cihazdan ödeme

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.

Entegrasyon performansını ve dönüşüm oranını artırma

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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şunları da beğenebilirsin