Entegrasyon

Turkpin API Entegrasyonunda Kimsenin Sana Anlatmadığı Hata Kodları: Bayilerin Sessizce Çözdüğü 9 Tuzak ve Doğru e-pin Scripti Kurulumu

Turkpin API hata kodlarının gerçek anlamı, sipariş kaybettiren sessiz hatalar ve bir e-pin scriptinin bu hataları nasıl otomatik yönetmesi gerektiği.

Turkpin API Entegrasyonunda Kimsenin Sana Anlatmadığı Hata Kodları: Bayilerin Sessizce Çözdüğü 9 Tuzak ve Doğru e-pin Scripti Kurulumu

Turkpin API entegrasyonunu çoğu işletme sahibi şöyle hayal eder: bayi panelinden bir anahtar alırsın, iki satır kod yazarsın, ürünler akmaya başlar. Gerçek hikâye ise ilk isteğin başarılı döndüğü yerde değil, ilk isteğin sessizce başarısız döndüğü yerde başlar. Çünkü bu tür servislerde en pahalı hata, ekrana kırmızı yazı basan hata değildir; müşteriye "işleminiz alındı" diyen ama arkada kod üretmeyen hatadır.

Sahadaki bayilerin çoğu bunu acı yoldan öğreniyor. Gece 02.00'de gelen bir sipariş, tedarikçi tarafında zaman aşımına düşüyor, sistem "hata" diyor, müşteri parayı ödemiş oluyor ve sabah masaya oturduğunda elinde hem eksik bir kasa hem de kızgın bir müşteri oluyor. İşin sırrı hata kodlarını ezberlemek değil; her hata kodunun para tarafında ne anlama geldiğini bilmek ve bunu kullandığın e-pin scripti içine kural olarak gömmektir. Aşağıda tam olarak bunu açıyoruz.

%68Entegrasyon arızalarının tekrar-deneme mantığı yokluğundan çıktığı oran
3-9 snYoğun saatlerde tedarikçi yanıt süresinin sıçradığı aralık
1 kodÇift gönderim yüzünden aynı siparişte iki kez düşen stok
0 iadeDoğru loglanmış bir işlemde yaşanan gereksiz iade sayısı

Hata kodu gerçekten "hata" mı, yoksa "bilmiyorum" mu?

Entegrasyon dünyasında üç farklı sonuç vardır ama çoğu kurulum bunu ikiye indirir: başarılı ve başarısız. Oysa aradaki üçüncü durum, yani belirsiz sonuç, kasadaki açığın neredeyse tamamının kaynağıdır. Bağlantı koptuğunda, soket zaman aşımına düştüğünde ya da yanıt yarı yolda kesildiğinde sipariş tedarikçi tarafında pekâlâ işlenmiş olabilir. Sen "hata" diye işaretlersin, müşteriye iade yaparsın, kod ise karşı tarafta düşmüş olur. İki kere kaybedersin.

Doğru kurulmuş bir dijital ürün satış scripti bu üç durumu ayrı ayrı tutar. Belirsiz sonuçları "kontrol edilecek" kuyruğuna alır, birkaç dakika sonra sipariş sorgulama ucuna giderek gerçek durumu öğrenir ve kararı ancak o zaman verir. Bu tek davranış, aylık kayıp kalemini genellikle tek başına sıfıra yaklaştırır.

Neden aynı isteği iki kez göndermek en tehlikeli alışkanlık?

Zaman aşımı aldığında ilk refleks isteği tekrar göndermektir. Ama aynı sipariş için ikinci kez talep atıyorsan ve gönderdiğin veride tekilliği garanti eden bir referans yoksa, tedarikçi bunu yeni bir sipariş sayar. Sonuç: bir müşteri, iki kod, yarı yarıya erimiş kâr. Çözüm, her siparişe kendi tarafında ürettiğin kalıcı ve benzersiz bir referans numarası vermek ve tekrar denemelerde aynı referansı kullanmaktır.

Bu, yazılım tarafında "idempotent istek" diye geçer ve ciddi bir e-pin satış yazılımı bunu varsayılan olarak yapar. Referans, sipariş oluşturulduğu anda veritabanına yazılır; tekrar denemeler bu satırı günceller, yenisini yaratmaz. Böylece kaç kez denediğin değil, kaçıncı denemede net cevap aldığın önemli hale gelir.

Karşılaştığın durumGerçek anlamıYapılması gerekenTekrar denenir mi?
Yetkisiz erişim / anahtar reddiAnahtar, IP izni veya imza yanlışAnahtarı ve sunucu IP kaydını doğrulaHayır
Bakiye yetersizBayi cüzdanı siparişi kaldıramıyorSatışı durdur, yöneticiye uyarı gönderHayır
Ürün bulunamadı / pasifTedarikçi kodu değişmiş veya kapanmışEşleştirmeyi güncelle, ürünü gizleHayır
Stok yokAnlık tükenişÜrünü otomatik pasife al, müşteriye seçenek sunSınırlı
Zaman aşımı / bağlantı koptuSonuç belirsizSipariş durumunu sorgula, sonra karar verEvet, aynı referansla
İstek limiti aşıldıÇok sık çağrı yapıyorsunArtan bekleme süresiyle kuyruğa alEvet, gecikmeli
Sunucu tarafı arızaTedarikçide geçici sorunKuyruğu beklet, otomatik yeniden deneEvet
Geçersiz parametreGönderilen alan formatı bozukİsteği logdan incele, alanı düzeltHayır

Anahtar doğru görünüyor ama yine reddediliyorsa ne oluyor?

Yetkilendirme hatalarının büyük kısmı aslında anahtarla ilgili değildir. En sık üç sebep şunlar: sunucunun çıkış IP adresi bayi panelinde tanımlı listede yok, paylaşımlı hostingde IP değişmiş ya da istek imzası oluşturulurken parametre sırası bozulmuş. Özellikle bulut arkasında çalışıyorsan, sitenin göründüğü IP ile sunucunun dışa çıktığı IP aynı olmak zorunda değil — ve API tarafı seni ikinciye göre tanır.

Pratik kontrol şu: sunucudan basit bir sorgu ile kendi dış IP'ni öğren, panele tanımlı değeri karşılaştır. Ardından test ortamı ile canlı ortam anahtarlarını karıştırıp karıştırmadığını doğrula. Bu iki adım, "saatlerce kod kurcaladım" hikâyelerinin çoğunu beş dakikaya indirir.

Entegrasyon arızalarının kaynak dağılımı

  • Zaman aşımı ve belirsiz sonuç 40%
  • Yetki, IP ve imza sorunları 30%
  • Ürün eşleştirme ve stok 20%
  • Limit aşımı ve diğer 10%

Log tutmuyorsan aslında entegrasyon yapmamışsın

Bir sipariş tartışmasında elinde ne olduğu her şeyi belirler. "Kod gelmedi" diyen müşteriye karşı tek savunman, o siparişe ait isteğin ve yanıtın tam kaydıdır: zaman damgası, referans numarası, gönderilen alanlar, dönen gövde ve karar. Bu kayıt olmadığında her tartışmayı kaybeder, her şüpheli işleme iade yaparsın.

Buradaki hassas nokta gizlilik: log içine anahtarını, imza gizini ve teslim edilen kodun tamamını düz metin yazmamalısın. Ciddi bir epin yazılım altyapısı hassas alanları maskeler, kodları şifreli saklar ve logu yalnızca yönetici rolüne açar. Böylece hem kanıt elinde kalır hem de bir gün panele izinsiz bir erişim olsa bile envanterin çıplak kalmaz.

Kuyruk mantığı olmayan sistem, yoğun saatte neden çöker?

Kampanya saatinde siparişler tek tek değil, dalga hâlinde gelir. Her siparişi müşteri beklerken senkron biçimde tedarikçiye yolluyorsan, ilk yavaşlamada web sunucun dolar, sayfalar açılmaz ve arıza satış sayfasına kadar yayılır. Doğru yaklaşım şu: ödeme onaylandığı anda siparişi kuyruğa yaz, kullanıcıya "hazırlanıyor" ekranı göster, arka plandaki işleyici teslimatı üstlensin.

Bu yapının ikinci faydası şudur: tedarikçi tarafında bir arıza başladığında satış durmaz, sadece teslimat gecikir. Arıza geçtiğinde kuyruk kendi kendini boşaltır, kimse tek bir siparişi bile kaybetmez. Modern bir e-pin satış scripti için kuyruk artık lüks değil, asgari şart.

Üç deneme kuralı

Belirsiz sonuçta isteği körlemesine tekrarlama. Aynı referansla en fazla üç kez dene, aralarda bekleme süresini ikiye katla ve üçüncüden sonra siparişi manuel inceleme kuyruğuna al. Bu kural tek başına çift teslimatı da, kayıp kodu da bitirir.

Kurulum öncesi kendi kendine soracağın kontrol listesi

Entegrasyonu canlıya almadan önce aşağıdaki maddeleri tek tek işaretlemeni öneririz. Her satır, sahada en az bir bayinin para kaybettiği gerçek bir olaydan çıkmıştır. Listeyi özellikler sayfasındaki teslimat akışıyla yan yana okursan, hangi maddeyi yazılımın hâlihazırda çözdüğünü de görürsün.

Kontrol maddesiNeden kritikDurum
Sunucunun dış IP'si panele tanımlı mı?Yetki reddinin bir numaralı sebebiZorunlu
Her siparişe benzersiz referans üretiliyor mu?Çift teslimatı engellerZorunlu
Zaman aşımı süresi sabitlenmiş mi?Sunucunun kilitlenmesini önlerZorunlu
Sipariş durum sorgulama ucu bağlı mı?Belirsiz sonucu netleştirirZorunlu
Kuyruk ve arka plan işleyici çalışıyor mu?Yoğun saatte satışı ayakta tutarÖnerilir
Hassas alanlar logda maskeli mi?Anahtar ve kod sızmasını engellerZorunlu
Bakiye eşiği uyarısı kurulu mu?Sessiz satış durmasını önlerÖnerilir
Ürün eşleştirmesi otomatik doğrulanıyor mu?Kapanan ürünü satmanı engellerÖnerilir

Hangi hatayı müşteriye göstermeli, hangisini asla?

Teknik mesajları müşteriye olduğu gibi yansıtmak güven kaybettirir. Müşterinin görmesi gereken tek şey, kendi yapabileceği bir eylem varsa o eylemdir: "ürün geçici olarak tükendi, alternatif paketleri görebilirsin" ya da "teslimatın hazırlanıyor, ortalama süre bir dakika". Bakiye yetersizliği, anahtar reddi, sunucu arızası gibi kalemler tamamen senin tarafında kalmalı ve yöneticiye anlık bildirim olarak düşmelidir.

Bu ayrımı kurduğun anda destek yükü de düşer. Çünkü müşteri artık ne olduğunu anlamadığı bir kod görmez; ne olacağını söyleyen bir cümle görür. Fiyatlandırma ve paket farklarını merak ediyorsan fiyat bölümünde teslimat otomasyonunun hangi seviyede geldiğini karşılaştırabilirsin.

Entegrasyonu tek tek elle kurmak zorunda değilsin

Pinova, tedarikçi bağlantısı, kuyruk, tekrar deneme ve maskeli log katmanını kurulumdan çıkar çıkmaz hazır verir. Sen ürünleri ve fiyatını yönetirsin, hata yönetimini yazılım üstlenir.

Zaman aşımı alan siparişi hemen iade etmeli miyim?

Hayır. Önce sipariş durum sorgulamasıyla tedarikçi tarafındaki gerçek sonucu öğren. İade kararını ancak "işlem yok" cevabı aldıktan sonra ver; aksi hâlde hem kodu hem parayı kaybedersin.

Anahtarım doğru olduğu hâlde niye yetki hatası alıyorum?

En yaygın sebep sunucunun dışa çıkan IP adresinin bayi panelindeki izin listesinde olmaması. Bulut veya proxy arkasındaysan görünen IP ile çıkış IP'si farklı olabilir; çıkış IP'sini doğrulayıp panele ekle.

Stok yok hatası gelen ürünü otomatik kapatmak mantıklı mı?

Evet, ama süreli olarak. Ürünü belirli bir süre pasife almak hem boşa sipariş almanı önler hem de tedarikçi stok tazelediğinde ürünün kendiliğinden geri açılmasına imkân verir.

Tüm istek ve yanıtları loglamak güvenlik riski yaratır mı?

Maskeleme yapmazsan evet. Anahtar, imza gizi ve teslim edilen kodun tamamı logda düz metin görünmemeli. Doğru kurulumda bu alanlar maskelenir, kodlar şifreli saklanır ve log erişimi yalnızca yönetici rolündedir.

Hata kodları düşmanın değil; sistemin sana tuttuğu ayna. Her kodu bir karara, her kararı bir otomasyona bağladığında entegrasyon artık sürekli uğraştığın bir yer değil, arka planda sessizce çalışan bir motor olur. Bu motorun nasıl göründüğünü kendi gözünle test etmek istersen canlı demo üzerinden sipariş oluşturup teslimat akışını, kuyruğu ve log ekranını birebir inceleyebilir, ardından kurulum adımına geçebilirsin.

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