Geliştirici kaynakları

Örnek Kodlar

Örnek kodlar, sanal POS entegrasyonunda izlenecek adımları sunucu tarafında somut olarak gösterir: ödeme isteğini oluşturmak, sonucu okumak, iade başlatmak ve ödeme bildirimini karşılamak.

  • Ödeme, sorgu, iade ve webhook akışları
  • Test ortamında denenebilir
  • Diller arasında aynı akış

Örnek kodlar ve SDK erişimi, hesabınız açıldıktan sonra iletilir.

Örneklerin kapsamı, paket bilgisi ve adresler çalışılacak ödeme kuruluşunun çözümüne göre değişir.

Kod örnekleri

Entegrasyonu örnekten yürüyerek kurun.

Örnekler ödeme akışının uçtan uca adımlarını gösterir: isteği oluşturma, sonucu okuma, bildirimi karşılama.

Diller

  • PHP sunucu örnekleri
  • Node.js sunucu örnekleri
  • Python sunucu örnekleri

Desteklenen sürümler ve paket adı, hesabınız açıldığında iletilen dokümantasyonda belirtilir.

Kapsanan akışlar

  • Ödeme oluşturma ve 3D yönlendirme
  • Sonuç sorgulama ve iade
  • Webhook bildirimini karşılama

Alan adları ve zorunlu parametreler seçilen çözüme göre değişebilir.

Deneme ve geçiş

  • Test anahtarlarıyla çalıştırma
  • Test kartlarıyla senaryo denemesi
  • Canlı anahtarlara geçiş

Canlıya geçmeden önce başarısız senaryoları da deneyin.

Kod örnekleri ve SDK paketleri, hesabınız açıldıktan sonra dokümantasyonla birlikte iletilir.

Gerçek paket adı, uç noktalar ve anahtarlar hesap açılışında iletilir. Ödemeyi kim alacak?

Ücretsiz Başvuru →Örnekleri denerken gerçek kart ve müşteri verisi kullanmayın. Ayrıntı için: KVKK Aydınlatma Metni.
Sık sorulan sorular

Örnek kodlar hakkında.

Hangi diller için örnek var?

Sunucu tarafı için PHP, Node.js ve Python örnekleri hazırlanır. Dil bazlı ayrıntılar için PHP, Node.js ve Python sayfalarına bakın.

Örnek kodları nasıl edinirim?

Başvurunuz tamamlanıp hesabınız açıldıktan sonra örnekler, SDK paketi ve erişim bilgileri dokümantasyonla birlikte iletilir. Genel çerçeve için API dokümantasyonu sayfasına bakın.

Örnekleri canlıya almadan deneyebilir miyim?

Evet. Örnekler test anahtarlarıyla çalıştırılabilir; ortam ve anahtarlar için test ortamı, kart senaryoları için test kartları sayfasına bakın.

Webhook örneği de var mı?

Ödeme sonucunu kendi sisteminize işlemek için bildirim karşılama örneği yer alır. Alanlar ve imza doğrulama için webhook ve callback sayfasını kullanın.

Örnekteki paket adını olduğu gibi kullanabilir miyim?

Hayır. Sayfadaki paket ve adres yazımları yer tutucudur; gerçek paket adı ve uç nokta adresleri hesabınız açıldığında iletilen dokümantasyonda belirtilir.

Entegrasyona başlayın

Önce başvurunuzu tamamlayalım.

Örnek kodlara ve SDK erişimine hesap açılışıyla ulaşırsınız. Ö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

Hangi Diller İçin Örnek Var

Örnekler sunucu tarafı için PHP, Node.js ve Python dillerinde hazırlanır. Üç dilde de akış aynıdır; değişen yalnızca sözdizimidir. Kart verisi tarayıcıdan doğrudan ödeme sayfasına gittiği için örneklerin tamamı sunucu tarafında çalışır, istemci tarafında kart numarası tutulmaz.

Dil bazlı kurulum ve kullanım ayrıntıları için PHP, Node.js ve Python SDK sayfalarına bakabilirsiniz. Desteklenen sürümler, SDK paket adı ve kurulum komutu hesabınız açıldığında iletilen dokümantasyonda belirtilir; genel çerçeve için API dokümantasyonu sayfasını kullanın.

Örneklerin Kapsadığı Akışlar

Örnek kümesi, bir ödemenin baştan sona izlediği yolu parçalara ayırır:

  • Ödeme oluşturma: Tutar, para birimi, sipariş numarası ve dönüş adresleriyle ödeme isteğinin hazırlanması; 3D Secure kullanılıyorsa kullanıcının doğrulama adımına yönlendirilmesi. Tutarın kuruş mu ondalık mı gideceğini ve örnek istek gövdesini görün: örnek istek →
  • Sonuç alma: Ödeme dönüşünde gelen yanıtın doğrulanması ve sipariş durumunun güncellenmesi; gerektiğinde işlem durumunun sorgulanması.
  • İade ve iptal: Gün içinde iptal ile sonraki günlerde iade arasındaki farkın ele alınması, kısmi iade talebinin gönderilmesi.
  • Webhook karşılama: Ödeme sonucunun sunucunuza bildirildiği isteğin alınması, imzasının doğrulanması ve aynı bildirimin tekrar gelmesine karşı idempotent işlenmesi. İmzanın sunucunuzda doğru hesaplandığını örnek gövdeyle deneyin: imza deneme alanı →

Aşağıdaki şema, örneklerin izlediği çağrı sırasını özetler. Buradaki paket adı ve alan adları yer tutucudur; gerçek paket adı, uç nokta adresleri ve parametre adları hesabınız açıldığında iletilen dokümantasyonda belirtilir.

// Paket adı ve uç nokta adresi yer tutucudur.
istemci = SanalPosIstemci(anahtar: TEST_ANAHTARI)

// 1) Ödeme oluştur
odeme = istemci.odemeOlustur(tutar, paraBirimi, siparisNo, donusAdresi)
kullaniciyiYonlendir(odeme.odemeAdresi)

// 2) Dönüşte sonucu doğrula
sonuc = istemci.odemeSorgula(odeme.islemNo)

// 3) Gerekirse iade
istemci.iadeOlustur(odeme.islemNo, iadeTutari)

Dönen hata kodlarının karşılığı için POS hata kodları, bildirim alanları ve imza doğrulaması için webhook ve callback sayfasına bakın.

İmza doğrulama örnekleri

Örnekler, imzanın ham gövdenin tamamından HMAC-SHA256 ile üretildiği yöntem içindir; bazı kuruluşlar imzayı belirli alanları birleştirerek üretir. X-Imza yer tutucudur. Başlık adı ve kodlama dokümantasyonunuzda yazar.

PHP
$govde = file_get_contents('php://input');
$gelen = $_SERVER['HTTP_X_IMZA'] ?? '';
$anahtar = getenv('ODEME_GIZLI_ANAHTAR') ?: ''; // boşsa yapılandırma hatası: isteği reddedin
$beklenen = hash_hmac('sha256', $govde, $anahtar);
if ($anahtar === '' || !hash_equals($beklenen, $gelen)) { http_response_code(401); exit; }
// olay kimliğini kaydedin, işi kuyruğa alın
http_response_code(200);
// base64 için: base64_encode(hash_hmac('sha256', $govde, $anahtar, true))
Node.js (Express)
app.post('/odeme-bildirimi', express.raw({ type: 'application/json' }), (req, res) => {
  const k = process.env.ODEME_GIZLI_ANAHTAR || ''; // boşsa yapılandırma hatası: isteği reddedin
  const beklenen = crypto.createHmac('sha256', k).update(req.body).digest('hex');
  const a = Buffer.from(beklenen), b = Buffer.from(req.get('X-Imza') || '');
  if (!k || a.length !== b.length || !crypto.timingSafeEqual(a, b)) return res.sendStatus(401);
  res.sendStatus(200);
});
// base64 için: digest('base64')
Python (Flask)
govde = request.get_data()
anahtar = os.environ.get('ODEME_GIZLI_ANAHTAR', '')  # boşsa yapılandırma hatası: isteği reddedin
beklenen = hmac.new(anahtar.encode(), govde, hashlib.sha256).hexdigest()
if not anahtar or not hmac.compare_digest(beklenen, request.headers.get('X-Imza', '')): abort(401)
return '', 200
# base64 için: base64.b64encode(hmac.new(...).digest()).decode()

Test Ortamında Deneme

Örnekleri önce test anahtarlarıyla çalıştırın. Test ortamında istek ve yanıt yapısı canlıyla aynıdır, ancak gerçek para hareketi oluşmaz; böylece başarılı akışın yanında yetersiz bakiye, hatalı CVV ve süresi dolmuş kart gibi başarısız senaryoları da güvenle denersiniz.

Ortam erişimi ve anahtarlar için test ortamı, senaryo kartları için test kartları sayfasını kullanın. Test verilerinde gerçek müşteri bilgisi kullanmayın; test ve canlı anahtarları ayrı tutun, anahtarları kod deposuna yazmayın.

Canlıya Geçiş

Test ortamında akış doğrulandıktan sonra yapılandırmadaki test anahtarları canlı anahtarlarla değiştirilir ve dönüş adresleri canlı alan adınıza çevrilir. Geçişten önce webhook adresinizin dışarıdan erişilebilir olduğunu, hata durumlarında siparişin doğru duruma düştüğünü ve iade akışının çalıştığını gözden geçirin.

Adım adım kurulum için entegrasyon kılavuzu, API tarafının genel görünümü için API ve SDK entegrasyonu sayfalarına bakabilirsiniz. Örnek kodlara ve SDK erişimine, başvurunuz tamamlanıp hesabınız açıldıktan sonra ulaşırsınız.

Ara WhatsApp Ücretsiz Başvur →