Magento 2 Özel Ödeme Ağ Geçidi (Payment Gateway) Geliştirme ve 3D Secure Mimarisi

Magento 2 Payment Provider Gateway mimarisiyle yerel sanal POS, taksit/komisyon kuralları, PCI-DSS uyumu, 3D Secure callback doğrulaması ve idempotent sipariş tamamlama rehberi.

YS
Yılmaz Kadan
Yayın:
Okuma Süresi:9 dk
Magento 2 özel ödeme ağ geçidi ve 3D Secure callback güvenliği yazılım geliştirme ekranı
Yazı Özeti & Uzman NotuYılmaz Soft Kıdemli Mühendislik Değerlendirmesi

Magento 2 Payment Provider Gateway mimarisiyle yerel sanal POS, taksit/komisyon kuralları, PCI-DSS uyumu, 3D Secure callback doğrulaması ve idempotent sipariş tamamlama rehberi.

Uzman Notu: Yılmaz Soft olarak eski şablonlar yerine kıdemli yazılım mühendisliği ile 1 aydan kısa sürede (< 30 gün) organik teklif, telefon ve WhatsApp müşterisi getiren, 1 yıl ücretsiz teknik destek kapsamlı sistemler geliştiriyoruz.

1. Problem: Kırılgan Üçüncü Parti POS Eklentileri, 3DS Kopmaları ve Çift Tahsilat Riski

Türkiye'de e-ticaret ve B2B işletmeleri tek bir ödeme sağlayıcısıyla yetinmeyip banka sanal POS'ları, İyzico, PayTR, Param veya B2B kapalı devre kredi/tahsilat çözümlerini aynı checkout içinde çalıştırmak ister. Piyasadaki amatör ödeme eklentileri kullanıldığında ise en kritik gelir noktasında şu hatalar yaşanır:

  1. 3D Secure Oturum Kopması: Banka 3DS doğrulamasından siteye dönüldüğünde SameSite çerez politikaları nedeniyle müşteri oturumunun kaybolması ve sepetin boşalması.
  2. Callback Race Condition (Yarış Durumu): Hem kullanıcının tarayıcı dönüşü hem de ödeme sağlayıcısının arka plan webhook'u (IPN) aynı milisaniyede ulaştığında siparişin iki kez onaylanması veya faturalanması.
  3. Taksit ve Vade Farkı Uyuşmazlığı: Banka BIN sorgusuna göre oluşan taksit komisyonunun Magento sipariş toplamlarına (Quote / Order total) doğru işlenmemesi yüzünden muhasebe mutabakatının bozulması.
  4. Güvenlik Riskleri: Banka yanıtındaki HMAC/SHA imza doğrulamasının atlanması veya hata loglarına yanlışlıkla kart/token verisi basılması.

2. Mimari Yaklaşım: Magento 2 Payment Provider Gateway Katmanları

Güncel Magento 2 ödeme mimarisi, ödeme iş mantığını bağımlılık enjeksiyonu (di.xml) üzerinden izole parçalara böler. Böylece bir banka API'sinde yapılacak değişiklik tüm sepet/checkout akışını etkilemez.

A. Çekirdek Modül Dosya Yapısı (YilmazSoft_CustomGateway)

app/code/YilmazSoft/CustomGateway/
├── etc/
│   ├── module.xml
│   ├── config.xml
│   ├── payment.xml
│   └── di.xml
├── Gateway/
│   ├── Config/Config.php
│   ├── Http/Client/PaymentClient.php
│   ├── Request/AuthorizeRequestBuilder.php
│   ├── Response/AuthorizeResponseHandler.php
│   └── Validator/SignatureValidator.php
├── Controller/
│   ├── ThreeDS/Start.php
│   └── ThreeDS/Callback.php
└── view/frontend/web/js/view/payment/method-renderer/custom-gateway.js

B. payment.xml ve di.xml Üzerinden Komut Havuzu (Command Pool)

Ödeme yöntemi doğrudan sınıf kalıtımı yerine sanal tip (virtualType) tanımlarıyla yapılandırılır:

<!-- app/code/YilmazSoft/CustomGateway/etc/di.xml (özet mimari) -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <virtualType name="YilmazSoftCustomGatewayFacade" type="Magento\Payment\Model\Method\Adapter">
        <arguments>
            <argument name="code" xsi:type="string">yilmazsoft_gateway</argument>
            <argument name="formBlockType" xsi:type="string">Magento\Payment\Block\Form</argument>
            <argument name="infoBlockType" xsi:type="string">Magento\Payment\Block\Info</argument>
            <argument name="valueHandlerPool" xsi:type="object">YilmazSoftGatewayValueHandlerPool</argument>
            <argument name="commandPool" xsi:type="object">YilmazSoftGatewayCommandPool</argument>
        </arguments>
    </virtualType>
</config>

Bu yapıda CommandPool içinde authorize, capture, void ve refund komutları birbirinden tamamen ayrılır; her komut kendi Request Builder (veriyi hazırlar), Client (TLS 1.2+ ile sağlayıcıya iletir), Validator (dönen yanıtın tutar ve imzasını doğrular) ve Handler (sipariş statüsünü günceller) zincirini çalıştırır.

C. 3D Secure Dönüşü, İmza Doğrulama ve Idempotency Kilidi

Türkiye'deki bankacılık düzenlemeleri nedeniyle bireysel kart işlemlerinin büyük bölümünde 3D Secure zorunludur. Güvenli dönüş akışı şu dört kurala dayanmalıdır:

  1. CSRF Muafiyeti + Sıkı İmza Kontrolü: Bankadan POST ile dönen Callback controller'ı CsrfAwareActionInterface uygular; buna karşılık gelen isteği mutlaka ödeme sağlayıcısının gizli anahtarıyla (HMAC-SHA256 / SHA-512) hesaplanan imza ve tutar eşitliği üzerinden doğrular. İmza tutmazsa işlem derhal reddedilir (403).
  2. Idempotent Durum Geçişi: Aynı transaction_id veya order_increment_id için hem müşteri yönlendirmesi hem sunucu-sunucu webhook geldiğinde, yalnızca ilk doğrulanan istek siparişi processing durumuna geçirir ve faturayı keser; ikinci istek mevcut sonucu sessizce onaylar.
  3. Bekleyen Siparişlerin Otomatik Temizliği: Müşteri 3DS ekranını kapatıp çıkarsa pending_payment durumunda kalan siparişler için zamanlanmış cron görevi belirli bir dakika sonunda siparişi iptal edip MSI stok rezervini geri bırakır.
  4. PCI-DSS Veri Hijyeni: Kart verisi (PAN, CVV) hiçbir koşulda Magento veritabanına veya var/log/ dosyalarına yazılmaz; ödeme formu mümkünse sağlayıcının Hosted / iFrame SDK'sı üzerinden çalıştırılır ve loglarda yalnızca maskelenmiş son 4 hane tutulur.

Ödeme ve ERP verilerinin uçtan uca bağlanması hakkında daha fazla detay için API Entegrasyonu Rehberi ve Magento 2 Özel Mimari Rehberi yazılarımızı okuyabilirsiniz.


3. Süre ve Bütçe Aralığı (2026)

Proje & Modül Kapsamı Başlangıç Bütçesi Teknik İçerik Teslim Süresi
Sanal POS & Özel E-Ticaret (Basic) ₺24.900+ (Modül) / ₺49.900+ (E-Ticaret) Tekil Sanal POS (₺24.900 – ₺54.900) veya uçtan uca e-ticaret (₺49.900) + PayTR/İyzico/banka POS, 3DS doğrulama ve webhook 4–6 Hafta
Çoklu POS, Pro E-Ticaret & B2B Tahsilat ₺54.900 – ₺129.000 (Cari) / ₺82.900 (Pro) BIN bazlı akıllı POS yönlendirme, taksit/vade farkı modülü, B2B cari tahsilat/bayi portalı (₺74.900 – ₺164.000) ve mutabakat 5–8 Hafta
Kurumsal Magento 2 Özel Ödeme Mimarisi (Enterprise) ₺139.900+ Çoklu mağaza/döviz, Payment Provider Gateway modül geliştirme, otomatik iade/iptal ve yüksek yük dayanıklılığı 6–10 Hafta

4. Sık Sorulan Sorular

Magento 2'de neden eski AbstractMethod yerine Payment Provider Gateway mimarisi kullanılmalıdır?

Eski AbstractMethod sınıfı Magento çekirdeğinde kullanımdan kaldırılmıştır (deprecated). Güncel Payment Provider Gateway mimarisi; di.xml üzerinden CommandPool, RequestBuilder, HttpClient, Validator ve ResponseHandler sınıflarını ayrıştırarak daha test edilebilir, güvenli ve yükseltmeye dayanıklı bir ödeme akışı sağlar.

3D Secure dönüşünde müşterinin oturumu düşerse veya aynı callback iki kez gelirse sipariş nasıl korunur?

Callback controller tek kullanımlık imzalı bir payment_token ve HMAC/hash doğrulamasıyla çalışmalı, veritabanı seviyesinde atomik kilit (idempotency check) uygulayarak aynı işlem numarasının iki kez sipariş onaylamasını veya tahsilat kaydı açmasını önlemelidir.

Özel ödeme modülü geliştirirken PCI-DSS uyumluluğu nasıl sağlanır?

Kart numarası (PAN) ve CVV verileri kesinlikle sunucu loglarına, veritabanına veya session dosyalarına yazılmamalıdır. Mümkün olan her senaryoda ödeme sağlayıcısının iFrame/Hosted form akışı tercih edilmeli; doğrudan API kullanılıyorsa yalnızca tokenize edilmiş referanslar saklanmalıdır.

Özel ödeme geçidi veya B2B/E-Ticaret ödeme altyapısı geliştirme bütçesi nedir?

Tekil Sanal POS & Ödeme Entegrasyonu ₺24.900 – ₺54.900 aralığından başlar. Ödeme modülü dahil uçtan uca e-ticaret altyapısı Basic ₺49.900 / Pro ₺82.900, çoklu banka POS ve B2B cari tahsilat sistemleri ₺54.900 – ₺129.000 (B2B Bayi Portalı ₺74.900 – ₺164.000), kurumsal Enterprise Magento 2 mimarileri ise ₺139.900+ bütçe aralığındadır.


5. Sonraki Adım: Güvenli ve Kesintisiz Ödeme Altyapısı Kurun

İlgili hizmetlerimiz ve rehberlerimiz:

Özel ödeme geçidi veya e-ticaret tahsilat mimarisi için teknik görüşme planlayın:

Sıkça Sorulan Sorular

Konu Hakkında Merak Edilenler

Eski AbstractMethod sınıfı Magento çekirdeğinde kullanımdan kaldırılmıştır (deprecated). Güncel Payment Provider Gateway mimarisi; di.xml üzerinden CommandPool, RequestBuilder, HttpClient, Validator ve ResponseHandler sınıflarını ayrıştırarak daha test edilebilir, güvenli ve yükseltmeye dayanıklı bir ödeme akışı sağlar.
1 Yıl Ücretsiz Teknik Destek & Next.js 16 + GEO Standardı

Projeniz İçin Ücretsiz Fiyat & SEO Analizi Alın (0543 256 97 07)

Kurumsal web sitesi yaptırma (₺24.900'den başlayan), ölçeklenebilir e-ticaret sistemi (₺49.900'den başlayan), masaüstü/ERP yazılımı (₺66.900'den başlayan), iOS & Android mobil uygulama (₺89.900'den başlayan) veya Google & yapay zeka arama görünürlüğü sağlayan Kurumsal SEO & GEO danışmanlığı (₺16.900/ay'dan başlayan) ile yayından sonraki < 30 gün içinde organik müşteri kazanımı için kıdemli yazılım ekibimizden kapsam ve bütçe değerlendirmesi alın.

Tüm Yazılar
B2B toptancı sipariş portalı, bayi iskonto matrisi ve depo ERP senkronizasyonu
E-Ticaret ve B2B

B2B Toptancı & Bayi Sipariş Portalı Mimarisi (2026): Cari Limit, İskonto ve ERP Sync

Üretici ve toptancı işletmeler için B2B bayi sipariş portalı mimarisi: bayi bazlı fiyat ve iskonto matrisi, cari risk limiti, asorti/matris sipariş ekranı, sanal POS tahsilat ve ERP senkronizasyonu.

28 Nisan 202610 dk okuma
Magento 2 özel mimari, modül geliştirme ve kurumsal e-ticaret operasyon merkezi
E-Ticaret ve B2B

Magento 2 Özel Mimari, Eklenti Geliştirme ve Yüksek Performans Rehberi (2026)

Büyük ürün katalogları, çoklu mağaza ve B2B operasyonları için Magento 2 (Adobe Commerce) özel modül geliştirme, Varnish/Redis önbellekleme, Hyvä/Next.js headless mimari ve 2026 maliyet rehberi.

12 Nisan 202612 dk okuma
Magento 2 ile Logo, Mikro, Netsis ve SAP ERP çift yönlü veri entegrasyonu mimarisi
E-Ticaret ve B2B

Magento 2 ERP ve Muhasebe Entegrasyon Rehberi: Logo, Mikro, Netsis ve SAP Mimarisi

Magento 2 mağazalarını Logo, Mikro, Netsis veya SAP ERP sistemleriyle çift yönlü, asenkron kuyruk (RabbitMQ) ve idempotent stok/sipariş/cari senkronizasyonu üzerinden entegre etme mimarisi.

28 Şubat 202610 dk okuma
Hemen AraWhatsApp