Güvenlik

E-pin Satış Scriptin Aynı Kodu İki Kişiye Sattıysa Bu Bir Kaza Değil: Panelinde Sessizce Çalışan O Yarış Durumunu İfşa Ediyorum

E-pin satış scripti aynı kodu iki kişiye gönderiyorsa sebep yarış durumudur. Çift callback, kilit eksikliği ve mükerrer yükleme zincirini kapatmanın yolu.

E-pin Satış Scriptin Aynı Kodu İki Kişiye Sattıysa Bu Bir Kaza Değil: Panelinde Sessizce Çalışan O Yarış Durumunu İfşa Ediyorum

Aynı kodun iki farklı müşteriye gitmesi, satıcıların "bir kere oldu, tesadüf" diye geçiştirdiği ama asla tesadüf olmayan bir olaydır. Çoğu kişi bunu personel hatası ya da müşterinin dolandırıcılığı sanır. Gerçek çok daha teknik: iki istek, aynı saniyenin içinde, aynı stok satırını okumuş ve ikisi de o satırı kendine ait saymıştır. Buna yarış durumu denir ve bir kez ortaya çıktıysa koşullar tekrarlandığında yine çıkar.

Bu yüzden mesele bir siparişi iade etmekle kapanmaz. Kapanması için kodun tek bir siparişe bağlanmasını garanti eden mekanizmanın kurulması gerekir. Aşağıda bu mekanizmanın nerede eksik kaldığını, hangi üç davranışın çift teslimatı ürettiğini ve bunun ticari faturasının neden düşündüğünden büyük olduğunu tek tek açıyorum. Bir e-pin satış scripti için bu konu kozmetik bir iyileştirme değil, doğrudan varlık güvenliği meselesidir.

%50Çift teslimatın kökeni: kilitsiz stok okuması
180 msİki eşzamanlı siparişin aynı satırı okuması için yeterli aralık
1'e 11Bir kötü deneyimin yayıldığı ortalama kişi sayısı
2 katÇift satılan kod başına oluşan net zarar

Aynı Kodun İki Kişiye Gitmesi Bir Tesadüf Değil, Bir Yarış Durumudur

Klasik teslimat kodu şöyle çalışır: önce havuzdan boş bir satır seç, sonra onu siparişe yaz, sonra satılmış işaretle. Tek başına çalışan bir istek için kusursuz görünür. Ama iki istek milisaniyeler arayla geldiğinde ikisi de aynı "boş" satırı görür, ikisi de kendi siparişine yazar ve ikinci yazma birincinin üzerine biner. Sonuçta panelde tek satış görünür, sahada iki müşteri aynı kodu kullanmaya çalışır.

Çözüm mantıksal değil altyapısaldır: seçme ve işaretleme tek ve bölünemez bir işlem olmalıdır. Satır ya bu siparişe kilitlenir ya hiç verilmez. Bu garantiyi kurmayan her epin yazılım kurulumu, trafik arttığı ilk kampanya gününde aynı hatayı üretir. Dikkat çekici olan şu: hata düşük trafikte neredeyse hiç görünmez. Yani sistem aylarca sorunsuz çalışıp tam da en çok sattığın gün seni yakar. Bu da satıcıların "bizde böyle bir sorun yok" demesinin asıl nedenidir.

Eşzamanlı İki Sipariş Aynı Satırı Neden Okur?

Çünkü okuma ve yazma arasında geçen her mikrosaniye bir açık penceredir. O pencerede başka bir istek aynı sorguyu çalıştırabilir. Pencereyi kapatmanın bilinen yolları var: satırı okurken kilitlemek, stok satırına sipariş numarasını koşullu olarak yazmak, ya da sipariş-kod eşleşmesine veritabanı düzeyinde tekillik kısıtı koymak. Üçü de aynı sonuca hizmet eder: ikinci yazma girişimi başarısız olmak zorundadır.

Buradaki en önemli nokta, başarısızlığın sessiz geçmemesi. İkinci sipariş satır bulamadığında bunu bir hata olarak kaydedip yeni bir satır denemeli, hiç satır yoksa siparişi bekletmeli ve seni uyarmalı. Sessizce boş alan göstermek en kötü davranıştır; hem müşteri kodsuz kalır hem sen olaydan haberdar olmazsın. İyi tasarlanmış bir dijital ürün satış scripti için kural basit: kodun iki kez verilmesi imkansız, verilememesi ise görünür olmalı.

ÇoğaltıcıNasıl TetiklenirGörünen SonuçKapatma Yöntemi
Kilitsiz stok okumasıİki eşzamanlı siparişAynı kod iki siparişteSatır kilidi + tekillik kısıtı
Çift ödeme bildirimiSağlayıcı tekrar denerİkinci teslimat tetiklenirBildirim kimliği tekilleştirme
Müşterinin yenile tuşuTeslim sayfası tekrar yüklenirYeni satır tüketilirİdempotent teslim uç noktası
Mükerrer toplu yüklemeAynı dosya iki kez içe alınırHavuzda ikiz kodlarİçe alımda kod bazlı tekillik
Elle müdahalePanel dışı kopyala-gönderKayıtsız ikinci teslimatPanel dışı teslimatı yasakla

Yenile Tuşu ve Çift Callback: Sessiz Çoğaltıcılar

Yarış durumu tek suçlu değil. İkinci büyük kaynak, aynı teslimat işleminin iki kez çağrılmasıdır. Ödeme sağlayıcıları bildirim aldığına dair beklediği yanıtı alamazsa aynı bildirimi tekrar gönderir; bu normal bir davranıştır. Senin tarafın bu tekrarı ayırt edemiyorsa ikinci bildirim ikinci bir teslimat başlatır ve havuzdan bir kod daha yakar.

Aynı sorun müşteri tarafında da yaşanır: teslim sayfasında yenile tuşuna basmak, tarayıcının sayfayı önceden yüklemesi, ya da kullanıcının iki sekmede aynı siparişi açması. Teslimat uç noktası idempotent değilse her tetikleme yeni satır tüketir. Kural şudur: bir sipariş numarası için teslimat yalnızca bir kez üretilir; sonraki tüm çağrılar aynı sonucu okuyup döner. Bunu sağlamak için bildirim kimliklerini kaydetmek ve teslimat sonucunu siparişe yazıp tekrar üretmemek yeterli. Basit ama atlandığında en pahalıya çıkan önlemlerden biri.

Çift Teslimat Vakalarının Kaynağı

  • Kilitsiz stok okuması 50%
  • Tekrarlanan ödeme bildirimi 25%
  • Mükerrer toplu yükleme 15%
  • Panel dışı elle teslimat 10%

Excel'den Toplu Yükleme Neden Mükerrer Kod Doğurur?

Bu kaynağı neredeyse hiç kimse hesaba katmaz. Tedarikçinden gelen dosyayı panele yüklersin, yükleme yarıda kesilir veya tarayıcı zaman aşımına düşer, sen de dosyayı ikinci kez yüklersin. Havuzda artık aynı kodun iki satırı var. Sistem bunları iki ayrı varlık sanır ve zamanla ikisini iki ayrı müşteriye satar. Aradan haftalar geçtiği için de olayı yarış durumuna bağlayamazsın; halbuki sebep tamamen içe alma aşamasındadır.

Korunmak için tek bir kural yeter: kod değeri havuzda tekil olmalı. İçe alma sırasında var olan bir kod tekrar gelirse atlanmalı ve raporda "şu kadar mükerrer atlandı" diye gösterilmeli. Ayrıca her yükleme kendi parti numarasını almalı ki hangi kodun hangi dosyadan geldiği izlenebilsin. Bu iki ayrıntı, bir dijital ürün satış yazılımı ile elle tutulan bir tablo arasındaki asıl farktır. Tekillik kısıtı olmayan bir havuz, ne kadar düzenli görünse de bomba taşır.

Tekilliği uygulamada değil veritabanında zorla

"Kodu kontrol eden bir fonksiyon yazdım" yeterli değildir; eşzamanlı iki istekte o kontrol de yarışa girer. Tekilliği veritabanı kısıtı olarak tanımla; ikinci kayıt denemesi altyapı düzeyinde reddedilsin.

İtibar Maliyeti: Bir Kodun İki Kez Satılmasının Gerçek Faturası

Hesabı çoğu satıcı yanlış yapar. "Bir kod, bir iade" diye düşünür. Gerçek fatura ise şöyle: kodun maliyetini bir kez ödedin, iadeyi yaptın, ödeme sağlayıcısının kesintisini geri alamadın, destek ekibin yarım saat harcadı ve en önemlisi kodu kullanamayan müşteri bunu forumda, yorumda, oyun topluluğunda anlattı. Dijital ürün satışında güven tek satın alma gerekçesidir; kırıldığında yerine koyacağın bir indirim yoktur.

Daha ince bir zarar da var: çift teslimat yaşayan satıcılar refleks olarak otomatik teslimatı kapatıp her siparişi elle onaylamaya geçer. Böylece bir teknik eksiği, tüm operasyonu yavaşlatan kalıcı bir sürece dönüştürürler. Doğru tepki otomasyondan kaçmak değil, otomasyonu garantili hale getirmektir. Tek-satış garantisi kurulduğunda hem hız hem güven aynı anda elde edilir; ikisinden birini seçmek zorunda değilsin.

KontrolNerede TanımlanırTest YöntemiDurum
Kod değeri tekilliğiVeritabanı kısıtıAynı kodu iki kez yüklemeyi deneZorunlu
Sipariş-kod eşleşmesi tekilliğiVeritabanı kısıtıİkinci bağlama reddedilmeliZorunlu
Satır kilidiTeslimat işlemiEşzamanlı 20 sipariş testiZorunlu
Bildirim kimliği kaydıÖdeme uç noktasıAynı bildirimi tekrar gönderZorunlu
İdempotent teslim sayfasıSipariş detayıSayfayı 10 kez yenileZorunlu
Panel dışı teslimat yasağıOperasyon kuralıKayıtsız teslimat var mı denetleÖnerilir

Pinova Tarafında Tek-Satış Garantisi Nasıl Kurulur?

Pinova e-pin satmaz; e-pin satan işletmelerin satış ve teslimat süreçlerini yönettiği lisanslı bir yazılımdır. Güvenlik tarafındaki temel duruşu da bu yazının çekirdeğiyle aynı: bir kodun iki kez satılması bir ihtimal olarak bile bırakılmamalı. Stok satırı bir siparişe bağlanırken kilitlenir, eşleşme veritabanı düzeyinde tekil tutulur, aynı sipariş için ikinci teslimat girişimi yeni satır tüketmek yerine mevcut sonucu döner.

İçe alma tarafında da aynı mantık sürer: mükerrer kod sessizce havuza girmez, atlanır ve raporda gösterilir; her parti izlenebilir kalır. Ödeme bildirimleri kimlikleriyle kaydedildiği için sağlayıcının tekrar denemeleri ikinci teslimat başlatmaz. Sonuç olarak hem otomatik teslimatın hızını korursun hem "acaba aynı kodu iki kez mi sattım" endişesini masadan kaldırırsın. Mimarinin ayrıntılarına özellikler bölümünden, hangi paketin hangi güvenlik katmanını kapsadığına fiyat bölümünden bakabilirsin.

Tek kod, tek müşteri: bunu şansa bırakma

Pinova stok kilidi, tekillik kısıtı ve idempotent teslimatla çift satışı teknik olarak imkansız kılar.

Aynı kodu iki kişiye sattığımı nasıl anlarım?

Sipariş-kod eşleşme tablosunda aynı kod değerinin birden fazla siparişle ilişkilendirilip ilişkilendirilmediğini sorgula. Havuzda aynı kod değerinin iki satır halinde durup durmadığını da ayrıca kontrol et.

Yarış durumunu test etmenin pratik bir yolu var mı?

Var. Test ortamında tek stoklu bir ürün oluştur ve aynı anda yirmi sipariş tetikle. Sağlam kurulumda bir sipariş teslim alır, kalanı görünür biçimde bekler; sorunlu kurulumda birden fazla sipariş aynı kodu alır.

Çift teslimat yaşadım, müşterilerden hangisine kod kalmalı?

Kaydı daha önce oluşan siparişe. İkinci müşteriye yeni ve geçerli bir kod ya da tam iade sun, ardından kök nedeni kapat; yoksa aynı durum tekrar eder.

Otomatik teslimatı kapatmak bu riski çözer mi?

Hayır, sadece gizler. Elle teslimatta insan hatası yüzünden aynı kod yine iki kez gönderilebilir ve kayıt daha da zayıf olur. Doğru çözüm otomasyonu kilit ve tekillik kısıtlarıyla garantili hale getirmektir.

Aynı kodun iki kez satılması, dışarıdan küçük bir aksaklık gibi görünür ama aslında altyapının en temel sözünü bozar: sattığın şeyin gerçekten tek sahibi olduğu sözünü. Bu sözü koruyan şey dikkatli olmak değil, ikinci teslimatı teknik olarak imkansız kılan kilitler ve kısıtlardır. Pinova'nın stok kilidi davranışını, tekillik kontrollerini ve eşzamanlı sipariş testini kendi senaryonla denemek istersen canlı demo ortamında tek stoklu bir ürün oluşturup üzerine yüklen; sonucu gördükten sonra kurulum adımına geçmek çok daha rahat olacak.

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