Entegrasyon

PHP ile Sanal POS Entegrasyonu

PHP ile geliştirilen projelerde ödeme akışı iki yoldan kurulur: ödeme kuruluşunun REST uç noktalarına doğrudan istek göndererek ya da sağlanan SDK paketini Composer ile projeye ekleyerek. İzlenen sıra her iki yolda da aynıdır; anahtarlar tanımlanır, ödeme isteği sunucudan oluşturulur, kart sahibi 3D Secure doğrulamasına yönlendirilir ve sonuç sunucu tarafında doğrulanır. Aşağıdaki bölümler PHP tarafında bu akışın nasıl kurulduğunu özetler.

  • Eklenti / SDK veya doğrudan API
  • Test ortamında deneyip canlıya geçiş
  • Dokümantasyon hesap açılışında

API anahtarları ve SDK erişimi, hesabınız açıldıktan sonra tanımlanır.

Entegrasyon araçları ve API, hesabınızın açıldığı ödeme kuruluşunun çözümüne aittir; sanalpos.com başvuruyu koordine eder.

PHP entegrasyonunda neredesiniz?

Dört adım

Kurulum Adımları

Başvurudan canlı işleme giden sıra.

01

Başvuru ve hesap açılışı

Önce başvuru formunu doldurursunuz; ön değerlendirme sonrasında hesabınız açılır. Test ve canlı API anahtarlarınız ile dokümantasyon erişiminiz bu aşamada tanımlanır. Anahtarları kod deposuna yazmayın, sunucu ortam değişkeninde tutun.

02

Eklenti veya SDK kurulumu

PHP projenize bağımlılığı Composer ile eklersiniz ya da hazır bir eklenti dosyası kullanırsınız. Paket adı, eklenti veya modül dosyası ve kurulum komutu, hesabınız açıldığında iletilen dokümantasyonda belirtilir; sürüm desteği de seçilen çözüme göre değişir.

03

Ödeme akışı ve ayarlar

Anahtarlarınızı ortam değişkenlerine girer, ödeme başlatma isteğini sunucudan oluşturur, 3D Secure yönlendirmesini ve dönüş adresini tanımlarsınız. Sonucu kendi kaydınıza işlemek için callback ve webhook adreslerinizi de bu adımda belirtirsiniz.

04

Test ve canlıya geçiş

Akışı test anahtarlarıyla uçtan uca çalıştırırsınız: başarılı ödeme, başarısız ödeme ve 3D Secure adımı. Doğruladıktan sonra yalnız ortam ve anahtar değerleri canlıya çevrilir; kod yapısı genelde aynı kalır.

Entegrasyon süresi kendi yazılımınızın yapısına, ödeme akışınızın karmaşıklığına ve seçilen çözüme göre değişir.

Ücretsiz Başvuru →

Başvuru ücretsizdir. Teklifi inceleyip karar verin.

PHP entegrasyonu

PHP tarafında öne çıkan noktalar.

İster hazır bir pakete bağlanın ister doğrudan HTTP isteği gönderin, istek ve yanıt yapısı aynı kalır. Aşağıdaki üç başlık PHP entegrasyonunun ana parçalarını özetler.

Çatı bağımsız kullanım

  • Laravel, Symfony, CodeIgniter
  • Saf PHP ve kendi çatınız
  • MVC yapısına uyumlu kurulum

Desteklenen PHP sürümleri dokümantasyonda belirtilir.

REST çağrısı ya da SDK

  • cURL ile doğrudan istek
  • JSON istek ve yanıt gövdesi
  • Hazır metotlar için SDK paketi

Uç nokta adresleri ve alan adları seçilen çözüme göre değişir.

3D Secure ve bildirim

  • Yönlendirme ve dönüş adresi
  • Callback ile sonuç sayfası
  • Webhook ile sunucu bildirimi

Ödeme sonucunu yalnız sunucudan gelen bildirimle kesinleştirin.

Eklenti veya modül dosyası, paket adı ve kurulum komutu, hesabınız açıldığında iletilen dokümantasyonda belirtilir.

Ücretsiz Başvuru →Test isteklerinde ve günlük kayıtlarında gerçek kart verisi tutmayın. Ayrıntı için: KVKK Aydınlatma Metni.
Sık sorulan sorular

PHP entegrasyonu hakkında.

PHP sanal POS entegrasyonu ne kadar sürer?

Süre kendi yazılımınızın yapısına, ödeme akışınızın karmaşıklığına ve seçilen ödeme kuruluşunun çözümüne göre değişir. Hazır bir SDK paketi kullanan ekipler genellikle daha az kod yazar; REST uç noktalarına doğrudan istek gönderen ekipler istek imzalama ve yanıt ayrıştırmayı kendisi kurar. Adım adım sıra için entegrasyon kılavuzu sayfasına bakın.

PHP'nin hangi versiyonları destekleniyor?

Sürüm desteği ve bağımlılıklar seçilen ödeme kuruluşunun çözümüne göre değişir; kesin liste hesabınız açıldığında iletilen dokümantasyonda yer alır. Bu sayfadaki teknik gereksinimler tablosu genel çerçeveyi gösterir.

Framework bağımlılığı var mı?

Entegrasyon HTTP üzerinden yürüdüğü için belirli bir çatı zorunlu değildir. Laravel, Symfony, CodeIgniter gibi çatılarda da saf PHP projelerinde de aynı akış kurulabilir. Hazır paketin hangi çatılarla birlikte sınandığı dokümantasyonda belirtilir.

SDK kullanmadan doğrudan API ile entegre edebilir miyim?

Evet. REST yapısı sayesinde cURL ya da herhangi bir HTTP istemcisiyle doğrudan çağrı yapabilirsiniz. Uç nokta adresleri, alan adları ve kimlik doğrulama yöntemi için API dokümantasyonu sayfasına bakın.

Webhook bildirimleri nasıl çalışır?

İşlem durumu değiştiğinde, tanımladığınız adrese sunucudan HTTP isteği gönderilir; siz de bu bildirimi doğrulayıp kendi kaydınıza işlersiniz. Sipariş durumunun güncellenmesi ya da iade akışı gibi otomasyonlar seçilen çözüme göre sunulabilir. Olay tipleri, alan yapısı ve imza doğrulama yöntemi için webhook ve callback sayfasını kullanın.

Entegrasyona başlayın

Önce başvurunuzu tamamlayalım.

API anahtarları, SDK erişimi ve dokümantasyon hesap açılışıyla tanımlanır. Ön değerlendirme için başvuru formunu doldurun.

Başvuru ücretsizdir. Teklifi inceleyip karar verin.

Başvuru nasıl ilerler? →

Teknik sorularınız için:0212 909 00 87ya da WhatsApp’tan yazın

Ayrıntılar

Neden PHP ile Sanal POS Entegrasyonu?

Web dünyasının en yaygın dillerinden biriyle ödeme entegrasyonu.

PHP, internet sitelerinin önemli bir bölümünü çalıştıran ve web geliştirme alanında en yaygın kullanılan programlama dillerinden biridir. WordPress, Laravel, Symfony, Magento ve WooCommerce gibi pek çok platform PHP üzerine inşa edilmiştir. Bu yaygınlık, PHP geliştiricilerinin ödeme entegrasyonu konusunda oturmuş bir ekosisteme ve geniş bir örnek birikimine sahip olduğu anlamına gelir.

Laravel ve Symfony gibi modern PHP çatılarıyla çalışan entegrasyon, Composer paket yöneticisi üzerinden bağımlılık olarak kurulabilir. MVC mimarisine ve PSR standartlarına uygun bir yapı, mevcut projelere eklenmeyi kolaylaştırır. Saf PHP projelerinde ise cURL ya da herhangi bir HTTP istemcisi ile doğrudan REST çağrıları yaparak aynı akışı kurabilirsiniz. Çatı bağımlılığı bulunmadığı için CodeIgniter, Yii, Slim veya kendi çatınızla geliştirdiğiniz özel projelerde de aynı yol izlenir.

Desteklenen PHP sürümleri ve bağımlılıklar, hesabınızın açıldığı ödeme kuruluşunun çözümüne göre belirlenir; kesin liste hesap açılışında iletilen dokümantasyonda belirtilir. Genel yetenekler için API ve SDK entegrasyonu sayfasına bakabilirsiniz.

Composer ve SDK Kurulumu

Paketi projeye ekleyin, anahtarları ortam değişkeninde tutun.

SDK kullanmak zorunlu değildir; ancak istek imzalama, oturum ve token yönetimi, yanıt ayrıştırma gibi tekrar eden işleri üstlendiği için çoğu projede yazılacak kod miktarını azaltır. Paket, Composer ile bağımlılık olarak eklenir. Aşağıdaki paket adı yer tutucudur: gerçek paket adı, varsa eklenti veya modül dosyası ve kurulum komutu, hesabınız açıldığında iletilen dokümantasyonda belirtilir.

bash
# Paket adı hesabınız açıldığında iletilen dokümantasyonda yazılıdır.
# Tahmin ettiğiniz bir adla kurulum yapmayın (sahte paket riski).
composer require <saglayici>/<paket-adi>

API anahtarları kod dosyalarına ya da sürüm deposuna yazılmaz; sunucu ortam değişkenlerinde tutulur. Test ve canlı anahtarlar ayrı tutulmalı, canlı anahtarla test yapılmamalıdır. Kurulum sonrası sınıf adları, metot adları ve alan yapısı için PHP SDK sayfasını inceleyebilirsiniz.

PHP Kod Örneği

REST API ile ödeme başlatma örneği.

Aşağıdaki örnek, ödeme kuruluşunun REST uç noktasına PHP cURL ile ödeme başlatma isteği göndermeyi göstermektedir. Bu temel yapıyı kullanarak kendi ödeme akışınızı oluşturabilirsiniz. API anahtarınız istek başlığına eklenerek kimlik doğrulaması yapılır ve ödeme bilgileri JSON biçiminde gönderilir. Yanıt olarak işlem sonucu ve gerekiyorsa 3D Secure yönlendirme adresi döner.

Örnekteki adres ve alan adları yer tutucudur; karşılıkları hesabınız açıldığında iletilen dokümantasyonda yer alır. Daha gelişmiş kullanım ve hazır metotlar için PHP SDK dokümantasyonunu inceleyebilirsiniz.

// REST API ile ödeme başlatma örneği
// adres ve alan adları dokümantasyonunuzda

$apiKey = getenv('SANALPOS_API_KEY'); // anahtarı koda yazmayın; ortam değişkeninde tutun
$apiUrl = 'https://API_ADRESI/v1/payments';

$payload = [
    'amount'      => 150.00, // tutar biçimi (TL / kuruş) dokümantasyonunuzda
    'currency'    => 'TRY',
    'locale'      => 'tr',
    'installment' => 1,
    'callbackUrl' => 'https://siteniz.com/odeme/callback',
];

$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => json_encode($payload),
    CURLOPT_TIMEOUT        => 15,
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $apiKey,
    ],
]);

$response = curl_exec($ch);
$httpKodu = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($response === false || $httpKodu < 200 || $httpKodu >= 300) {
    error_log('odeme-baslat: HTTP ' . $httpKodu); // kart verisi ve anahtar günlüğe yazılmaz
    http_response_code(502);
    exit('Ödeme başlatılamadı');
}

$result = json_decode($response, true);

// 3D Secure yönlendirmesi gerekiyorsa
if (($result['status'] ?? null) === 'redirect') {
    header('Location: ' . $result['redirectUrl']);
    exit;
}

Ödeme Akışı ve Ayarlar

Yönlendirme, dönüş adresi ve sonucun kesinleştirilmesi.

Tutar, para birimi ve sipariş numarası her zaman sunucuda belirlenir; tarayıcıdan gelen değere güvenilmez. Ödeme isteği oluşturulduktan sonra kart sahibi bankanın doğrulama adımına yönlendirilir. Bu adımın nasıl işlediğini 3D Secure güvenli ödeme sayfasında bulabilirsiniz. Doğrulama tamamlandığında kullanıcı, projenizde tanımladığınız dönüş adresine geri döner.

Kullanıcının döndüğü sayfa sonucu göstermek için yeterlidir, ancak ödemeyi kesinleştirmek için yeterli değildir. Sonuç yalnızca sunucunuza gelen bildirimle kesinleşir: bildirim uç noktasında önce imza doğrulanır, sonra sipariş durumu güncellenir ve 200 yanıtı döndürülür. Aynı olay iki kez gelebileceğinden kaydın idempotent biçimde işlenmesi gerekir. Alan yapısı ve yeniden deneme davranışı için webhook ve callback sayfasına bakın.

Hata durumlarında kullanıcıya sade bir mesaj gösterilir, teknik ayrıntı yalnız günlüğe yazılır; günlüklerde kart numarası, CVV ve API anahtarı bulunmamalıdır. Akışı canlıya almadan önce test anahtarlarıyla deneyebilirsiniz; ayrıntı için sandbox ortamı ve test ortamı (sandbox) sayfalarını kullanın. Anahtarların tanımlanması için önce başvuru formunu doldurmanız gerekir.

Teknik gereksinimler

PHP entegrasyonu için teknik gereksinimler
Gereksinim Detay
PHP Güvenlik desteği süren bir sürüm (php.net destek takvimi)
Composer Önerilen
cURL Eklentisi Gerekli
JSON Eklentisi Gerekli
SSL Sertifikası Gerekli (HTTPS)
Ödeme kuruluşu hesabı Başvuru sonrası açılır (başvuru ücretsizdir)

Sürüm bilgileri genel çerçevedir; kesin gereksinimler ve desteklenen sürümler, hesabınız açıldığında iletilen dokümantasyonda belirtilir.

Ara WhatsApp Ücretsiz Başvur →