Secret key sadece arka uçta kullanılmalı ve asla açıkta olmamalıdır.
Public key’i güvenle mobil ve web uygulamalarınızda kullanabilirsiniz.
Tahsilat.js SDK, herhangi bir backend altyapısı gerektirmeden, doğrudan tarayıcı üzerinden güvenli ödeme işlemleri başlatmanıza olanak tanır. SDK, PCI-DSS uyumlu ödeme formlarını iframe veya redirect yöntemiyle entegre etmenizi sağlar.
Tahsilat.js, modern web uygulamalarında ödeme entegrasyonunu kolaylaştıran güçlü bir JavaScript SDK’dır. Hassas kart bilgilerinin hiçbir zaman sunucularınızdan geçmemesini sağlayarak PCI uyumluluk yükünüzü minimize eder.
Entegrasyon sürecinde hata takibi için tarayıcı konsolunu takip ediniz.
Ödeme tutarı ile ürünler arasındaki toplam tutarın eşleşmesi gerekmektedir. Aksi takdirde, ödeme reddedilir.
Tahsilat JS sadece “Public Key” ile çalışır. Entegrasyon aşamasında isterseniz herhangi bir div elementine ödeme formunu yerleştirebilir ya da redirectToPayment metodu ile direkt ödeme sayfasına yönlendirebilirsiniz. Ödeme formu, Tahsilat.js SDK tarafından sağlanan payment elementi ile oluşturulur.
Önceden oluşturulmuş ürünlerin ID’lerini kullanarak ödeme başlatabilirsiniz bu durumda ürünleriniz hakkında raporlama ve analiz yapabilirsiniz:Ürün oluşturmak için Ürünler sayfasını ziyaret edebilirsiniz.
const tahsilat = new TahsilatSDK('pk_test_wsg...');const elements = tahsilat.elements();const paymentElement = elements.create('payment', { amount: 10000, product_ids: ['11111111111111', '2222222222222'], metadata: [ { key: "order_id", value: "123456" }, { key: "customer_type", value: "premium" } ],});// İlgili element içine ödeme formunu yerleştirinpaymentElement.mount('#payment-element');
Mevcut bir müşteriyi ödeme ile ilişkilendirmek için customer_id parametresini kullanabilirsiniz. Bu durumda ödeme esnasında müşteri bilgileri tekrardan alınmaz:Müşteri oluşturmak için Müşteriler sayfasını ziyaret edebilirsiniz.
const tahsilat = new TahsilatSDK('pk_test_wsg...');const elements = tahsilat.elements();const paymentElement = elements.create('payment', { amount: 10000, customer_id: 123456789, product_ids: ['11111111111111', '2222222222222'], metadata: [ { key: "order_id", value: "123456" }, { key: "customer_type", value: "premium" } ],});// İlgili element içine ödeme formunu yerleştirinpaymentElement.mount('#payment-element');
Ödeme isteği oluşturulurken customer_id gönderilmemesi durumunda her ödeme için müşteri bilgileri tekrar alınır ve yeni bir müşteri oluşturulur. Bu durumda müşteri takibi ve raporlama süreci zorlaşabilir.Üye işyeri arayüzünden ya da Müşteriler sayfasından api aracılığı ile müşteri oluşturarak customer_id parametresini kullanabilirsiniz.
Ödeme sonuçlarını alabilmek için backend tarafında Tahsilat API ile entegre olabilir ya da direkt post message sonuçlarını dinleyebilirsiniz. Webhook olayları en güvenilir yöntemdir.
Tahsilat.js SDK, ödeme işlemlerinin sonuçlarını event listener’lar aracılığıyla yakalamanızı sağlar. Bu sayede ödeme başarılı, başarısız veya iptal edildiğinde kullanıcıya bilgi verebilir ve gerekli aksiyonları alabilirsiniz.
Eğer ödemeyi pre_auth: true ile başlattıysanız, sonuç aldığınızda is_pre_auth değerini kontrol edin. true dönmesi durumunda ödeme başarılıdır ancak tutar karttan çekilmemiş, yalnızca bloke edilmiştir. Bloke edilen tutarı çekmek için ayrıca ön provizyonu kapatma işlemi yapmanız gerekmektedir.
Ödeme ile ilişkilendirilecek ürünlerin bilgilerini içeren JSON string formatında dizi. Eğer product_ids gönderilmiyorsa, bu parametre zorunludur.Format: JSON string olarak gönderilmelidir.Ürün alanları:
product_name (string, zorunlu): Ürün adı
price (integer, zorunlu): Ürün fiyatı (kuruş cinsinden)
description (string, isteğe bağlı): Ürün açıklaması
Ödeme ile ilişkilendirilecek ürünlerin ID’lerini içeren dizi. Eğer products gönderilmiyorsa, bu parametre zorunludur. Her ürün için Tahsilat API’de önceden oluşturulmuş ürün ID’leri kullanılmalıdır.
Ödeme ile ilişkilendirilecek ek verileri içeren dizi. Bu parametre isteğe bağlıdır, ancak ödeme raporlaması için önerilir. Örneğin, müşteri türü gibi bilgiler burada saklanabilir.