Ö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.
Örnek kodlar ve SDK erişimi, hesabınız açıldıktan sonra iletilir.
iÖ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ş
iCanlı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?
Test ve canlı anahtarlar, dokümantasyon ve test ortamı erişimi işletme adına açılan hesapla tanımlanır. Başvuru ücretsizdir; ilk formda belge istenmez. Kapsam ve varsa ücretler teklifinizde yazılı olur.
Başvuruyu ödemeyi alacak işletme yapar; anahtarlar ve dokümantasyon işletmenin hesabına tanımlanır, entegrasyonu o hesapla kurarsınız. İşletmeye şu mesajı iletebilirsiniz:
Müşterinize gönderin
Merhaba, sitede ya da uygulamada kartla ödeme alabilmek için sanal POS başvurusunun işletme adına yapılması gerekiyor. Başvuru ücretsiz, ilk adım kısa bir form; belgeler sonraki aşamada istenir: https://www.sanalpos.com/sanal-pos-basvuru?utm_source=gelistirici&utm_medium=mesaj&utm_campaign=gok#basvuru-formu — Hesap açılınca test ve canlı anahtarlar tanımlanıyor; entegrasyonu oradan tamamlayabilirim.
Sanal POS başvurusu için vergi mükellefi olmak gerekir; şahıs şirketleri ve serbest meslek erbabı da başvurabilir. Şirket kurmayı ya da mükellefiyeti düşünüyorsanız mali müşavirinize danışın. Bazı ödeme kuruluşları geliştiricilerin canlı sözleşme olmadan test hesabı açmasına izin verir; bunu kuruluşun geliştirici sayfasından kontrol edebilirsiniz. Akışı öğrenmek için: örnek kodlar · imza deneme alanı · test senaryoları.
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.
Ö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)
Ö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.
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.