Ödeme

E-pin Satış Scriptinde Ödeme Sağlayıcısını Testten Canlıya Alırken Neyi Kaybediyorsun? Sandbox'ın Sana Söylemediği 7 Gerçek

Sandbox'ta yeşil yanan ödeme akışı canlıda neden çöker? E-pin satış scriptinde testten canlıya geçişin anahtar, callback, 3D ve geri dönüş planı rehberi.

E-pin Satış Scriptinde Ödeme Sağlayıcısını Testten Canlıya Alırken Neyi Kaybediyorsun? Sandbox'ın Sana Söylemediği 7 Gerçek

Ödeme entegrasyonunu tamamlayan hemen herkes aynı cümleyi kurar: "Test ortamında sorunsuz çalışıyor, canlıya alıyoruz." Bu cümle, e-pin işinde en pahalı yanlış güven kaynağıdır. Çünkü sandbox bir ödeme sistemi değildir; ödeme sisteminin taklididir. Senaryoları senin iyi niyetine göre kurgular, bankayı devre dışı bırakır, riski hiç hesaba katmaz. Gerçek trafiğin ilk saatinde ise kart sahibi 3D şifresini yanlış girer, banka BIN bazlı reddeder, müşteri ödeme sayfasında geri tuşuna basar ve sandbox'ta hiç görmediğin on farklı durum kodu aynı anda kapına dayanır.

İkinci yanlış varsayım da şu: geçişin tek adımı anahtarları değiştirmek sanılır. Oysa anahtar değişimi işin belki yüzde yirmisi. Geri kalanı; callback adresinin dış dünyadan erişilebilirliği, IP beyaz listeleri, tutar formatı, para birimi kodu, zaman aşımı süreleri, iade yetkisi ve en önemlisi geri dönüş planı. Bu yazı, bir e-pin satış yazılımında testten canlıya geçişi kaza olmadan tamamlaman için sırayla ne yapman gerektiğini anlatıyor.

2 ortamSandbox ve canlı için ayrı yapılandırma şart
48 saatKademeli açılış ve yakın gözlem penceresi
1 kuruşİlk canlı doğrulama işleminin ideal tutarı
5 dkGeri dönüş planının uygulanma süresi hedefi

Sandbox neden gerçeği göstermiyor?

Test ortamları mutlu senaryo için tasarlanır. Sana birkaç sahte kart verir; biri onaylar, biri reddeder, biri 3D akışını simüle eder. Ama gerçek dünyada işin büyük kısmı bu üç sonucun arasındaki gri bölgede geçer: banka tarafında zaman aşımı, 3D sayfasında pencere kapanması, mobil tarayıcının çerez engeli, taksit seçeneğinin karta uygun olmaması, yabancı kartın komisyon farkı.

Bir de sandbox'ta olmayan bir aktör var: risk motoru. Canlı hesabında sağlayıcının dolandırıcılık filtresi devreye girer ve e-pin sektörü doğası gereği yüksek riskli sayılır. İlk günlerde işlemlerinin bir kısmı "kural gereği" reddedilebilir. Bunu bir yazılım hatası sanıp kodda değişiklik yapmaya kalkarsan gerçek sorunu ıskalarsın. Bu yüzden canlıya geçiş bir teknik olay değil, aynı zamanda operasyonel bir süreçtir.

UnsurSandbox davranışıCanlı davranışıAlınacak önlem
Kart reddiTek sahte kart, tek kodOnlarca banka kodu, değişken mesajKod eşleme tablosu ve anlaşılır müşteri mesajı
3D akışıHızlı, hatasız simülasyonSMS gecikmesi, iptal, pencere kapanmasıYarım kalan işlem için zaman aşımı ve temizlik
Risk filtresiYokAktif, sektöre duyarlıSağlayıcıyla iş modelini önceden paylaş
Bildirim gecikmesiAnındaSaniyeler, bazen dakikalarBekleyen durumu ayrı yönet, müşteriye bilgi ver
Komisyon ve net tutarHesaplanmazKarta ve taksite göre değişirKâr hesabını net tutar üzerinden kur
İadeSerbestYetki, süre ve bakiye kısıtlıİade yetkisini panelde rol bazlı kısıtla

Anahtarları nereye koyuyorsun? Bu soru göründüğünden kritik

Canlı anahtarı doğrudan PHP dosyasının içine yazan bir kurgu, ilk yedek alışverişinde veya ilk dosya paylaşımında sızar. Doğrusu, ortam değişkeni ya da web kökünün dışındaki bir yapılandırma dosyasıdır. Dijital ürün satış scripti tarafında bir de "ortam bayrağı" bulunmalı: sistem hangi modda olduğunu tek bir değerden okumalı ve sandbox anahtarıyla canlı anahtarı asla aynı alanda tutmamalı.

Burada sık yaşanan bir kaza var: canlı moda geçilir ama test anahtarı yanlışlıkla bir yerde kalır ve ödeme sağlayıcı "geçersiz üye işyeri" hatası verir. Daha kötüsü tersi: test modunda kaldığını fark etmezsin, müşteri ödeme yaptığını sanır, para hiç tahsil edilmez ama script siparişi açar ve e-pin kodunu bedavaya teslim eder. Bu yüzden canlı modda test anahtarı görülürse sistem satışı tamamen durdurup panelde kırmızı uyarı vermelidir. Sessiz kalan bir yapılandırma hatası, en pahalı hatadır.

Mod göstergesini gizleme

Yönetim panelinin üst şeridinde CANLI veya TEST etiketini sürekli görünür tut. Hangi modda olduğunu hatırlamaya çalıştığın her an, bir hata riskidir.

Callback adresi dışarıdan gerçekten erişilebiliyor mu?

Testte callback'i çoğu zaman kendi bilgisayarından tetiklersin, dolayısıyla erişim sorunu hiç çıkmaz. Canlıda ise bildirimi sağlayıcının sunucusu gönderir ve senin bildirimin önünde bazen üç engel durur: güvenlik duvarı, bot koruması ve yönlendirme kuralları. En yaygın vaka, bot korumasının bildirim isteğini insan olmadığı için yakalamasıdır; sağlayıcı 403 alır, ödeme tahsil edilir ama sipariş asla ödendi olmaz.

Geçiş öncesi üç şeyi kanıtlaman gerekir. Birincisi, callback adresine dış bir ağdan yapılan POST isteği HTTP 200 dönüyor mu. İkincisi, o adres istisna listesinde mi, yani bot koruması ve zorunlu giriş kontrolü bypass ediliyor mu. Üçüncüsü, sağlayıcının bildirim gönderdiği IP aralıkları beyaz listede mi ve sen de bu IP'leri doğruluyor musun. E-pin scripti tarafında imza doğrulaması zorunlu; IP kontrolü ise ikinci bir kalkan olarak durmalı.

Canlıya geçişte ilk hafta yaşanan aksaklıkların dağılımı

  • Callback erişimi engellenmiş 40%
  • Yapılandırma ve anahtar karışması 25%
  • Tutar, kuruş ve para birimi formatı 20%
  • Risk filtresi kaynaklı retler 15%

Tutarı hangi formatta gönderiyorsun?

Sandbox genellikle bu konuda affedicidir; yanlış formatı da kabul eder ve sen sorunu görmezsin. Canlıda ise iki kaza tipik. Birincisi kuruş birimi: bazı sağlayıcılar tutarı kuruş cinsinden tam sayı bekler, bazıları noktalı ondalık bekler. 149,90 TL'yi yanlış formatta gönderirsen 14.990 TL çekilir ya da işlem reddedilir. İkincisi ondalık ayırıcı: virgülle gönderilen tutar bazı uçlarda sessizce kırpılır.

Bunun tek güvenli çözümü, tutarı sistemin içinde tek bir kanonik biçimde tutup sağlayıcıya giderken tek bir dönüştürücü fonksiyondan geçirmektir. Yirmi yerde elle biçimlendirme yapan bir epin yazılım kurgusunda, yirmi ayrı hata ihtimali var demektir. Ayrıca canlıda mutlaka gerçek kartla, gerçek 1 kuruşluk veya en düşük tutarlı bir işlem yap ve sağlayıcı panelindeki tutarın senin panelindeki tutarla birebir eşleştiğini gözünle doğrula.

İlk 48 saat: kademeli açılış nasıl yapılır?

Canlıya geçişi bir anahtar çevirme olarak değil, bir vana açma olarak düşün. Önce yalnızca kendi test alışverişlerin geçsin. Sonra tek bir ürün kategorisini aç, tercihen düşük fiyatlı ve stoğu bol olanı. Trafik akmaya başladığında üç metriğe bakılır: başarılı ödeme oranı, bildirim gecikme süresi ve bekleyen durumda kalan sipariş sayısı. Bu üçünden biri bozulursa vanayı kısarsın.

Aynı dönemde otomatik teslimatı bir gün için manuel onaya almak, kulağa geri adım gibi gelse de en akıllı hamledir. Çünkü ilk 48 saat, yapılandırma hatalarının ortaya çıktığı penceredir ve bu pencerede bedavaya giden bir kod stoğu geri gelmez. Bir dijital ürün satış yazılımında bu kademeli açılış anahtarı, panelden tek tuşla açılıp kapanabilmelidir.

Geri dönüş planın var mı, yoksa umut mu ediyorsun?

Canlıya geçişin en çok atlanan adımı budur. Ödeme akışı bozulduğunda ne yapacağını önceden yazılı olarak bilmiyorsan, o anda panik içinde kod değiştirmeye çalışırsın ve zarar büyür. Planın üç maddesi olmalı: ödeme yöntemini panelden anında kapatma, müşteriye gösterilecek dürüst bilgi mesajı, ve yedek ödeme yöntemine geçiş. İkinci bir sağlayıcı tanımlı duruyorsa kesinti bir felaket değil, bir dakikalık aksama olur.

Buna bir de mutabakat alışkanlığı ekle. Her akşam, sağlayıcı panelindeki tahsilat toplamıyla kendi panelindeki ödendi toplamını karşılaştır. Bu iki sayı her gün eşleşiyorsa entegrasyonun sağlıklıdır. Eşleşmiyorsa, aradaki fark küçükken bulunur; bir ay sonra ise hangi günden geldiği belirsiz bir açık olarak karşına çıkar.

Geçiş kontrolüDoğrulama yöntemiGeçme ölçütü
Canlı anahtarlar yerindePanelde mod etiketini kontrol etCANLI yazıyor, test anahtarı yok
Callback erişimiDış ağdan POST testiHTTP 200, imza doğrulandı
IP beyaz listesiSağlayıcı IP aralığını tanımlaYalnızca bu IP'ler kabul
Tutar formatıGerçek düşük tutarlı işlemİki panelde tutar birebir aynı
Yarım kalan işlem3D ekranını kapatarak deneSipariş kilitli kalmıyor, stok serbest
İade akışıTest işlemini canlıda iade etDurum ve stok doğru güncelleniyor
Geri dönüş planıYöntemi kapat, sonra aç5 dakika içinde uygulanabiliyor

Geçişi tahminle değil, kontrol listesiyle yap

Pinova'da ödeme sağlayıcıları ortam ayrımı, mod göstergesi ve tek tuş kapatma ile yönetilir; canlıya geçiş bir gecelik iş olmaktan çıkar.

Canlıya geçmek için sandbox'ta kaç test yeterli?

Sayı değil kapsam önemli. Başarılı, başarısız, iptal, yarım kalan ve iade senaryolarının hepsini en az bir kez geçmeden çıkmamalısın.

Test ve canlı anahtarı aynı alanda tutmak neden tehlikeli?

Çünkü hangi ortamda olduğunu koddan anlamak imkânsızlaşır ve test modunda kalan bir sistem parayı tahsil etmeden kod teslim edebilir.

İlk günlerde ret oranım yüksek, hatayı nerede aramalıyım?

Önce sağlayıcı panelindeki ret kodlarına bak. Kodlar banka kaynaklıysa sorun entegrasyonda değil, risk kurallarında olabilir.

İkinci bir ödeme sağlayıcısı tutmak gerçekten gerekli mi?

Tek yöntemle çalışıyorsan bir kesinti satışını tamamen durdurur. Yedek yöntem, kesintiyi aksamaya indiren en düşük maliyetli sigortadır.

Canlıya geçiş, kodun bittiği yer değil; sorumluluğun başladığı yerdir. Kademeli aç, her akşam mutabakat yap, geri dönüş planını cebinde tut. Bu akışın hazır kurulu hâlini incelemek istersen canlı demo içinden ödeme yöntemleri ekranına girebilir, özellikler bölümündeki sağlayıcı yönetimi maddelerine ve paket seçeneklerine bakabilirsin.

Daha Fazlasını Keşfedin

Dijital ürün satışı ve otomasyon üzerine güncel rehberlere göz atın.

Tüm Yazıları Gör →
Bu yazıyı paylaşın
Bu yazıyı beğendiniz mi?
Teşekkürler!
← Tüm yazılar