Geliştirici kaynakları

PHP SDK

PHP projelerinde ödeme akışını kurarken SDK, istek imzalama, oturum ve token yönetimi, yanıt ayrıştırma gibi tekrar eden işleri üstlenir. Aşağıdaki bölümler kurulumdan canlıya geçişe kadar izlenen sırayı özetler.

  • Composer ile kurulum
  • Test ve canlı anahtarlar ayrı
  • Webhook ve hata yönetimi örnekleri

SDK paketi ve anahtarlar, hesabınız açıldıktan sonra tanımlanır.

Paket adı, sürüm desteği ve kapsam, çalışılacak ödeme kuruluşunun çözümüne ve hesabınız açıldığında iletilen dokümantasyona göre belirlenir.

PHP entegrasyonu

Ödeme akışını PHP tarafında kurun.

Kurulumdan canlıya geçişe kadar adımlar aynı: paketi ekleyin, test anahtarlarıyla akışı doğrulayın, sonucu webhook ile kendi sisteminize işleyin.

Kurulum ve anahtarlar

  • Composer ile bağımlılık
  • Anahtarlar ortam değişkeninde
  • Test ve canlı anahtar ayrımı

Anahtarları kod deposuna yazmayın; sunucu ortam değişkeninde tutun.

Ödeme ve iade

  • Ödeme başlatma isteği
  • 3D Secure yönlendirmesi
  • İade ve iptal çağrıları

Metot adları ve alanlar seçilen çözüme göre değişebilir.

Webhook ve hatalar

  • İmza doğrulama
  • Idempotent kayıt
  • Hata kodu eşleme

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

SDK paketinin adı ve kurulum komutu, hesabınız açıldığında iletilen dokümantasyonda belirtilir.

Ücretsiz Başvuru →Test 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 SDK hakkında.

SDK paketini nereden kurarım?

Paket adı ve kurulum komutu, hesabınız açıldığında iletilen dokümantasyonda belirtilir. Uç nokta ve alan yapısı için API dokümantasyonu sayfasına bakın.

Hangi PHP sürümleriyle çalışır?

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.

Kodumu canlıya almadan deneyebilir miyim?

Evet. Test anahtarlarıyla akışı uçtan uca çalıştırabilirsiniz; ayrıntılar için test ortamı (sandbox) ve test kartları sayfalarına bakın.

Ödeme sonucunu nasıl kesinleştiririm?

Tarayıcıdan dönen yanıtla değil, sunucunuza gelen bildirimle. Alanlar ve imza doğrulaması için webhook ve callback sayfasını kullanın.

Hata kodlarının karşılığını nerede bulurum?

Dönen kodların açıklamaları için POS hata kodları sayfasına, adım adım kurulum için entegrasyon kılavuzu sayfasına bakın.

Entegrasyona başlayın

Önce başvurunuzu tamamlayalım.

SDK erişimi ve anahtarlar 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

Kurulum ve Anahtar Yönetimi

SDK, Composer ile projeye bağımlılık olarak eklenir. Aşağıdaki paket adı yer tutucudur; gerçek paket adı ve kurulum komutu, hesabınız açıldığında iletilen dokümantasyonda belirtilir. Desteklenen PHP sürümleri ve bağımlılıklar da seçilen ödeme kuruluşunun çözümüne göre değişir.

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>

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.

php
<?php
require __DIR__ . '/vendor/autoload.php';

// Sınıf ve metot adları örnektir; karşılıkları dokümantasyonunuzdadır
$istemci = new Saglayici\SanalPos\Client([
    'api_key'    => getenv('SANALPOS_API_KEY'),
    'api_secret' => getenv('SANALPOS_API_SECRET'),
    'ortam'      => getenv('SANALPOS_ORTAM'), // test | canli
]);

Temel Ödeme Akışı

Tipik akış üç adımdır: ödeme isteğinin sunucudan oluşturulması, kart sahibinin 3D Secure doğrulamasına yönlendirilmesi ve dönüşte sonucun sunucu tarafında doğrulanması. Tutar, para birimi ve sipariş numarası her zaman sunucuda belirlenir; tarayıcıdan gelen değere güvenilmez.

php
<?php
$sonuc = $istemci->odeme()->baslat([
    'siparis_no'  => 'SIP-10245',
    'tutar'       => 149.90,
    'para_birimi' => 'TRY',
    'donus_url'   => 'https://ornek-site.com/odeme/donus',
]);

// 3D Secure doğrulaması için kart sahibi yönlendirilir
header('Location: ' . $sonuc->yonlendirmeUrl);

Aynı sipariş için istek tekrarlanabildiğinden sipariş numarası benzersiz üretilmeli, kayıt çift oluşmayacak biçimde işlenmelidir. Alan adları ile desteklenen işlemler (iade, iptal, taksit) seçilen çözüme göre değişir.

Webhook ve Hata Yönetimi

Ödemenin başarılı sayılması, tarayıcının döndüğü sayfaya değil sunucunuza gelen bildirime bağlıdır. Bildirim uç noktasında önce imza doğrulanır, sonra sipariş durumu güncellenir ve 200 yanıtı döndürülür; aksi hâlde bildirim yeniden gönderilebilir.

php
<?php
$govde = file_get_contents('php://input');
$imza  = $_SERVER['HTTP_X_SIGNATURE'] ?? '';

if (!$istemci->webhook()->imzaDogrula($govde, $imza)) {
    http_response_code(400);
    exit;
}

$olay = json_decode($govde, true);
// Aynı olay iki kez gelebilir: durumu idempotent güncelleyin
siparisDurumunuGuncelle($olay['siparis_no'], $olay['durum']);
http_response_code(200);

Hata durumlarında SDK'nın fırlattığı istisnalar yakalanır, 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. Dönen kodların karşılığı için POS hata kodları sayfasına bakın; bildirim alanları ve yeniden deneme davranışı webhook ve callback sayfasında açıklanır.

Test ve Canlıya Geçiş

Entegrasyon önce test anahtarlarıyla doğrulanır: başarılı ödeme, yetersiz bakiye, CVV hatası ve 3D Secure adımı denenir. Ayrıntılar test ortamı (sandbox) ve test kartları sayfalarındadır.

Akış doğrulandıktan sonra yalnız ortam ve anahtar değerleri canlıya çevrilir; kod yapısı aynı kalır. Adım adım kurulum için entegrasyon kılavuzu, uç nokta ve alan referansı için API dokümantasyonu, hazır örnekler için örnek kodlar sayfalarını kullanın. Diğer diller için Node.js ve Python SDK sayfalarına, genel yetenekler için API ve SDK entegrasyonu sayfasına bakabilirsiniz.

Ara WhatsApp Ücretsiz Başvur →