Entegrasyon

Python ile Sanal POS Entegrasyonu

Python uygulamanıza ödeme akışını bağlarken kullanılan araçlar dilin alışıldık araçlarıdır: bir HTTP istemcisi, JSON ve kendi framework'ünüzün yönlendirme katmanı. Ödeme kuruluşunun arayüzü REST tabanlı olduğu için istekler JSON gövdeyle gönderilir, yanıtlar aynı biçimde okunur. Aşağıdaki bölümler Python tarafında izlenen sırayı, örnek bir çağrıyı ve framework seçiminin akışa etkisini anlatır. Uç nokta adresleri, alan adları ve paket bilgileri hesabınız açıldığında iletilen dokümantasyonda yer alır.

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

API anahtarları ve paket 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.

Python 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ğerlendirmenin ardından hesabınız ilgili ödeme kuruluşunda açılır. Test ve canlı API anahtarlarınız ile dokümantasyon erişiminiz bu aşamada tanımlanır.

02

Paketin kurulumu

Python tarafında entegrasyon, sağlanan SDK paketiyle ya da doğrudan REST çağrılarıyla kurulabilir. Paketin adı, kurulum komutu ve desteklenen Python sürümleri hesabınız açıldığında iletilen dokümantasyonda belirtilir.

03

Ödeme akışı ve ayarlar

Anahtarlarınızı ortam değişkenlerine girer, ödeme başlatma isteğini sunucudan gönderir, 3D Secure yönlendirmesini ve dönüş adresini tanımlarsınız. Sonuç bildirimi için callback veya webhook uç noktanızı ayarlarsınız.

04

Test ve canlıya geçiş

Akışı test anahtarlarıyla uçtan uca çalıştırır, başarılı ve başarısız senaryoları denersiniz. Doğruladıktan sonra yalnız ortam ve anahtar değerlerini canlıya çevirirsiniz; kod yapısı aynı kalır.

Entegrasyon süresi kendi yazılımınızın yapısına, kullandığınız framework'e ve seçilen ödeme kuruluşunun çözümüne göre değişir.

Ücretsiz Başvuru →

Başvuru ücretsizdir. Teklifi inceleyip karar verin.

Python tarafında

Entegrasyonun öne çıkan başlıkları.

Python projelerinde ödeme akışı üç parçadan oluşur: paketin ya da HTTP istemcisinin kurulumu, ödeme isteğinin sunucudan gönderilmesi ve sonucun bildirimle kesinleştirilmesi. Aşağıdaki başlıklar bu parçaları özetler.

Paket ve REST çağrısı

  • pip ile bağımlılık kurulumu
  • requests ile doğrudan REST isteği
  • JSON istek ve yanıt yapısı

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

Framework uyumu

  • Django, Flask ve FastAPI projeleri
  • Saf Python arka uçlar
  • Senkron ya da asenkron istemci

Kütüphane REST üzerinden çalıştığı için framework seçimi akışın yapısını değiştirmez.

3D Secure ve bildirim

  • Doğrulama adımına yönlendirme
  • Callback ve webhook uç noktası
  • İmza doğrulama ve idempotent kayıt

Ödeme sonucunu tarayıcıdan dönen yanıtla değil, sunucunuza gelen bildirimle kesinleştirin.

Desteklenen sürümler, metot adları ve alan yapısı seçilen ödeme kuruluşunun çözümüne göre değişir.

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

Python entegrasyonu hakkında.

Python 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 paket kullanan ekipler genellikle daha az kod yazar. Adım adım sıra için entegrasyon kılavuzu sayfasına bakabilirsiniz.

Django ve Flask ile uyumlu mu?

Ödeme arayüzü REST üzerinden çalıştığı için framework bağımsızdır; Django, Flask, FastAPI ya da saf Python projelerinde aynı çağrılar kullanılır. Hazır paketin kapsamı ve örnekleri için Python SDK sayfasına bakın.

Asenkron (async) desteği var mı?

REST çağrıları asyncio ile çalışan bir HTTP istemcisinden de gönderilebilir; bu yönüyle FastAPI ve aiohttp gibi asenkron yapılarla kullanılabilir. Sağlanan paketin asenkron kapsamı, hesabınız açıldığında iletilen dokümantasyonda belirtilir.

Python 2 desteği var mı?

Python 2 güvenlik güncellemesi almadığı için yeni entegrasyonlarda önerilmez. Desteklenen Python sürümlerinin kesin listesi seçilen çözüme göre değişir ve dokümantasyonunuzda yer alır.

Entegrasyona başlayın

Önce başvurunuzu tamamlayalım.

API anahtarları, paket 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 Python ile Ödeme Entegrasyonu?

Python, okunabilir sözdizimi ve geniş kütüphane desteği sayesinde ödeme entegrasyonunu anlaşılır bir işe dönüştürür. Web tarafında Django, Flask ve FastAPI gibi olgun framework'ler bulunur ve üçü de ödeme akışının ihtiyaç duyduğu parçalara sahiptir: sunucudan istek göndermek, kart sahibini doğrulama adımına yönlendirmek, dönen bildirimi karşılayıp kendi kaydınıza işlemek.

Entegrasyonun büyük bölümü birkaç REST çağrısından oluşur. requests gibi bir HTTP istemcisiyle ödeme başlatma isteği birkaç satır kodla yazılır; dönen yanıt sözlük yapısına çevrilip doğrudan kullanılabilir. Bu yalınlık, Django ile kurulmuş kapsamlı bir e-ticaret projesinde de, Flask ile yazılmış hafif bir mikroserviste de akışın aynı kalmasını sağlar.

Python'un veri tarafındaki ekosistemi, ödeme kayıtlarınızı sonradan incelemek istediğinizde işe yarar. Panelden ya da raporlama çağrılarından aldığınız işlem kayıtlarını pandas ile filtreleyebilir, matplotlib veya seaborn ile görselleştirebilirsiniz. Hangi raporlama çağrılarının hesabınıza tanımlı olduğu ve dışa aktarım biçimleri seçilen çözüme göre değişir.

Asenkron çalışan projeler için de engel yoktur. asyncio ile çalışan bir HTTP istemcisi kullanıldığında ödeme çağrıları FastAPI veya aiohttp tabanlı bir uygulamanın içinden de gönderilebilir. Hazır paketin senkron ve asenkron kapsamı ile desteklenen Python sürümleri dokümantasyonunuzda belirtilir.

Kod Örneği

Aşağıdaki örnek, Python ve requests kütüphanesi ile REST üzerinden bir ödeme isteğinin nasıl gönderildiğini gösterir. Hazır paket kullanacaksanız kurulum bağımlılık yöneticisiyle yapılır; aşağıdaki paket adı yer tutucudur, gerçek ad ve komut 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).
pip install <dokumantasyondaki-paket-adi>

Paket kullanmak zorunlu değildir. Aynı işlem yalnızca bir HTTP istemcisiyle de yapılabilir; bu durumda imzalama ve hata yönetimini kendi tarafınızda kurarsınız. Aşağıdaki çağrıda adres ve alan adları örnektir.

Kart numarasını kendi formunuzla alıp sunucunuzdan gönderirseniz kart verisi işleyen taraf olursunuz ve PCI DSS yükümlülüğünüz büyür; ödeme kuruluşunun ödeme sayfası ya da iframe’i kullanıldığında kart bilgisi sunucunuza ulaşmaz.

python
import os
import requests

# Anahtarı kod deposuna yazmayın; sunucu ortam değişkeninde tutun
API_KEY = os.environ['SANALPOS_API_KEY']

# adres ve alan adları dokümantasyonunuzda
BASE_URL = 'https://API_ADRESI/v1'

def odeme_baslat(siparis):
    # Kart bilgisi bu isteğe eklenmez; müşteri kartını ödeme kuruluşunun
    # sayfasında ya da iframe'inde girer. Tutarı kendi kaydınızdan alın.
    response = requests.post(
        f'{BASE_URL}/payments',
        headers={'Authorization': f'Bearer {API_KEY}'},
        json={
            'amount': siparis['tutar'],  # tutar biçimi (TL / kuruş) dokümantasyonunuzda
            'currency': 'TRY',
            'orderId': siparis['no'],
            'callbackUrl': 'https://siteadresiniz.com/odeme-sonuc',
        },
        timeout=15,
    )
    response.raise_for_status()
    return response.json()  # 3D Secure / ödeme sayfası yönlendirme adresini içerir

Bu örnek temel bir REST çağrısını gösterir; metot adları, zorunlu alanlar ve dönen durum kodları seçilen çözüme göre değişir. Tutar, para birimi ve sipariş numarası her zaman sunucuda belirlenir, tarayıcıdan gelen değere güvenilmez. Uç nokta ve alan referansı için API dokümantasyonu, Python'a özgü örnekler için Python SDK sayfasına bakın.

Framework Seçimi ve Ödeme Akışı

Akış hangi framework'te olursa olsun aynı sırayı izler. Ödeme isteği sunucudan oluşturulur, kart sahibi 3D Secure doğrulamasına yönlendirilir ve dönüşte sonuç sunucu tarafında doğrulanır. Django'da bu adımlar birer view ile, Flask'ta birer route ile, FastAPI'de birer endpoint ile karşılanır; değişen yalnızca yazım biçimidir.

Bildirim uç noktası ayrı bir adres olarak tanımlanır. Ödeme sonucu değiştiğinde sunucunuza bir istek gönderilir; siz önce imzayı doğrular, sonra sipariş durumunu güncelleyip 200 yanıtı dönersiniz. Aynı bildirim iki kez gelebileceği için kaydın idempotent güncellenmesi, yani ikinci gelişte çift kayıt oluşturmaması beklenir. Alan yapısı ve yeniden deneme davranışı webhook ve callback sayfasında açıklanır.

Anahtarlar kod dosyalarına ya da sürüm deposuna yazılmaz; sunucu ortam değişkenlerinde tutulur. Test ve canlı anahtarlar ayrı tutulur, canlı anahtarla test yapılmaz. Günlük kayıtlarında kart numarası, CVV ve API anahtarı bulunmamalıdır. Test senaryolarının nasıl çalıştırılacağı test ortamı (sandbox) sayfasında, dönen kodların karşılığı POS hata kodları sayfasında yer alır.

Akış test anahtarlarıyla doğrulandıktan sonra yalnız ortam ve anahtar değerleri canlıya çevrilir; kod yapısı aynı kalır. Entegrasyona başlamak için önce başvuru formunu doldurmanız yeterlidir; anahtarlar ve dokümantasyon erişimi hesap açılışıyla tanımlanır.

Teknik gereksinimler

Python entegrasyonu için teknik gereksinimler
Gereksinim Detay
Python Destek süren bir sürüm (python.org destek takvimi)
pip Paket yöneticisi
requests kütüphanesi Örnekteki doğrudan çağrı için (pip install requests)
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 →