cli.gs
Sign in

Test ve tanılama

Test modu, tanılama bölümü ve tüm hata kodları.

Gerçek müşteriler gelmeden önce entegrasyonunu tıklamadan bildirime kadar bir kez baştan sona çalıştır. Bu sayfada test modunun nasıl çalıştığını, uçtan uca bir testi nasıl yapacağını, entegrasyon sayfasındaki tanılama bölümünün nerede olduğunu ve her hata kodunun ne anlama geldiğini öğrenirsin. Test modu tüm bunları para hareketi yaratmadan yapmanı sağlar.

Kısaca:

  • Bir dönüşüm bildirimine "test": true ekle. Her kontrolden geçer ama asla para hareketi yaratmaz.
  • Bir test gerçek bir ref kodu gerektirir, bu yüzden program yayında olmalı ve bir yayıncı bağlantısına ihtiyacın var.
  • Entegrasyon sayfasındaki Son retler, reddedilen bildirimleri kodları ve ne yapman gerektiğiyle listeler.
  • Reddedilen bir bildirim error içinde bir kodla yanıtlanır: REF_PROGRAM_MISMATCH için 403, diğerleri için 422.

Test modu

Bir dönüşüm bildirimine "test": true ekle. Bildirim, gerçek bir bildirimin geçtiği her kontrolden geçer: API anahtarı, imza, ref kodu, çerez süresi, tutar ve komisyon kuralları. Ardından:

  • asla para hareketi yaratmayan bir test dönüşümü olarak kaydedilir. Bakiye ayrılmaz ve yayıncı hiçbir şey kazanmaz;
  • yanıt, gerçek bir bildirimin kazandıracağı komisyonu "test": true ve REJECTED durumuyla gösterir;
  • entegrasyon sayfasında Test dönüşümleri altında görünür, dönüşüm listende veya istatistiklerinde değil;
  • bir durum bildirimi ayarladıysan uç noktan "test": true ile conversion.recorded alır.

Test dönüşümlerinin kendi sipariş numarası alanı vardır. Bir test, aynı sipariş numarasına sahip gerçek dönüşümü asla engellemez. Aynı orderId ile bir testi tekrarlamak ilk sonucu "duplicate": true ile döndürür. Her çalıştırma için yeni bir sipariş numarası kullan.

Uçtan uca test yap

Bir test, yalnızca gerçek bir tıklamadan sonra var olan gerçek bir ref kodu gerektirir. Bu yüzden program yayında, yani onaylanmış olmalı. Ayrıca program için bir yayıncı bağlantısına ihtiyacın var, örneğin kabul ettiğin bir yayıncıdan.

  1. Yayıncı bağlantısını bir tarayıcıda aç. Adres çubuğunda ?ref=... ile mağazana ulaşırsın.
  2. Mağazanın kodu sakladığını kontrol et. Bkz. ref kodunu yakala.
  3. Bir sipariş ver veya bildirim kodunu test: true ile tetikle.
  4. Yanıtı ve entegrasyon sayfasındaki Test dönüşümleri listesini kontrol et.

API'yi elle dene

Ref kodunu adres çubuğundan kopyala ve cURL ile gönder:

bash
curl -i -X POST https://cli.gs/api/v1/track/conversion \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ref": "PASTE_REF_CODE_HERE",
    "orderId": "TEST-0001",
    "amount": "149.99",
    "currency": "EUR",
    "customerType": "NEW",
    "test": true
  }'

Çalışan bir kurulum 201 Created ile yanıt verir:

json
{ "ok": true, "conversionId": "cmg3x1q2w0001abcd9876efgh", "status": "REJECTED", "commission": 12, "duplicate": false, "confirmed": false, "test": true }

İstekleri imzalıyorsan, İmzasız istekleri reddet seçeneğini açmadan önce İmzalı istekler sayfasındaki imzalı sürümle test et.

Tanılama bölümü

Entegrasyon sayfasının altında dört blok bulursun:

  • Entegrasyon durumu iki kontrol gösterir. Bağlantı kontrolü günde bir kez hedef URL'ni bir ziyaretçi gibi açar. Ref parametresinin yönlendirmelerinden sağ çıktığını kontrol eder. Mağaza bildirimleri, mağazanın bildirdiği dönüşümleri her saat kaydettiğimiz hatalar ve gönderdiğimiz tıklamalarla karşılaştırır.
  • Son retler, mağazandan kabul edemediğimiz bildirimleri en yenisi önce olacak şekilde listeler. Her kayıt kodu, zamanı, ref kodunu ve ne yapman gerektiğini gösterir.
  • Test dönüşümleri, son test bildirimlerini tutar ve komisyonla listeler.
  • Mağazana gönderilen postback'ler, durum bildirimine yapılan teslimatları durumları, denemeleri ve son HTTP koduyla listeler.
Entegrasyon durumu ve son retler
Entegrasyon sayfasında Entegrasyon durumu ve Son retler

Programına atfedilemeyen retler orada listelenmez, örneğin hiç var olmayan bir ref kodu. API yanıtı her zaman kodu içerir, bu yüzden mağazanın aldığı yanıtları günlüğe kaydet.

Hata kodları

Reddedilen bir dönüşüm bildirimi error içindeki kodla yanıtlanır: REF_PROGRAM_MISMATCH için HTTP 403, diğerleri için HTTP 422. Aynı kodlar Son retler altında görünür.

KodAnlamıNe yapmalı
BAD_SIGNATURERef kodu yerleşik kontrolünden geçemedi: değiştirilmiş, kesilmiş veya uydurulmuş. Bu, kodla ilgilidir, HMAC imzanla değilKodu ?ref= içinde geldiği haliyle sakla ve gönder
REF_UNKNOWNRef kodu doğru biçimde ama bu kodla bir tıklama yokSaklanan kodu gönderdiğini kontrol et, bir yer tutucu veya eski test değerini değil
REF_PROGRAM_MISMATCHKod başka bir programdaki tıklamaya aitBağlantının ait olduğu programın API anahtarını kullan. Her programın kendi anahtarına ihtiyacı var
INVALID_OCCURRED_AToccurredAt gelecekte veya tıklamadan önceGerçek sipariş zamanını saat dilimiyle gönder; sunucu saatini eşitlenmiş tut
REF_EXPIREDTıklama, programın çerez süresinden daha eski; komisyon hak edilmediSatış gerçekten geç geldiyse düzeltilecek bir şey yok. Geç bildiriyorsan occurredAt gönder
PROGRAM_INACTIVEBildirim geldiğinde program yayında değildiBildirimler program onaylı veya duraklatılmışken kabul edilir
INVALID_BASKETTutar okunamadı, negatif veya makul olmayan derecede büyükOndalık ayırıcı olarak noktayla gönder, ör. 49.90
DUPLICATESipariş numarası olmayan aynı bildirim bir dakika içinde iki kez geldi; ikincisi yok sayıldıHer zaman orderId gönder. Sipariş numarasıyla tekrarlar bunun yerine 200 ve duplicate: true ile yanıtlanır
INVALID_EVENTTakip pikselinde bilinmeyen eventTypeSALE, LEAD veya SIGNUP kullan. API'de bu bir 400 invalid payload hatasıdır
INTERNALBizim tarafımızda bir hataYapman gereken bir şey yok; bize bildirildi. Bildirimi daha sonra yeniden dene

Diğer yanıtlar

Bu yanıtlar Son retler altında görünmez:

HTTPerrorNe yapmalı
400invalid payload (issues ile) veya invalid json bodyİsteği düzelt; issues alanı adlandırır
401missing bearer token, invalid api keyGüncel bir anahtarla Authorization: Bearer <anahtar> gönder
401programme not activeAnahtar bir taslağa, reddedilmiş veya arşivlenmiş bir programa ait
401signature required, invalid signature, stale or missing timestamp, invalid nonce, nonce already usedBkz. İmzalı istekler
404CONVERSION_UNKNOWNDönüşümü olmayan bir sipariş için iptal
409CONVERSION_FINALBir ödeme için zaten kilitlenmiş bir komisyon için iptal
429rate limit exceededAnahtar başına dakikada 600'den fazla istek; yavaşla ve yeniden dene

Yayına almadan önce kontrol listesi

  • Ref kodu her açılış sayfasında yakalanıyor, yönlendirmelerden sağ çıkıyor ve siparişle birlikte kaydediliyor.
  • Sunucun her ödenmiş siparişi orderId, net tutar ve currency ile bildiriyor. 5xx veya zaman aşımında yeniden deniyor.
  • Bir test dönüşümü, Test dönüşümleri altında beklediğin komisyonu gösteriyor.
  • İadeler ve iptaller bir iptal isteği tetikliyor.
  • İstekler imzalı ve İmzasız istekleri reddet açık.
  • Mağazan gerçek siparişlerde "test": true göndermiyor.

Sonraki adımlar

Gerçek dönüşümler gelmeye başladığında bunları Dönüşümler altında incele: bkz. Dönüşümleri incele.