AliExpress & Lazada API Entegrasyonu: "Incomplete Signature" ve "The Request Signature Does Not Conform to Platform Standards" Hataları ve Çözüm Yolları

"AliExpress & Lazada API Entegrasyonu: "Incomplete Signature" ve "The Request Signature Does Not Conform to Platform Standards" Hataları ve Çözüm Yolları"

AliExpress ve Lazada API’leri ile çalışırken geliştiricilerin sıklıkla karşılaştığı problemlerden bazıları şunlardır:

  • Incomplete Signature

  • The request signature does not conform to platform standards

Bu hatalar genellikle sunucu tarafında görünse de, bazı durumlarda lokal geliştirme ortamında da karşınıza çıkabilir. Bu yazıda bu hataların nedenlerini, çözüm yollarını ve dikkat edilmesi gereken detayları paylaşıyoruz.


✅ 1. App Key, App Secret, Access Token Kontrolü

İlk kontrol etmeniz gereken şey, kullandığınız uygulama bilgileri:

  • app_key

  • app_secret

  • access_token

  • app_code (Lazada için geçerli olabilir)

Bu değerlerin tam ve doğru olduğundan emin olun. Bir harf ya da boşluk hatası bile imzanın geçersiz sayılmasına neden olur.


✅ 2. API Endpoint Doğruluğu: /sync vs /rest

API isteğini attığınız endpoint çok önemlidir. Yanlış endpoint kullanımı hataya yol açar.

  • AliExpress dropshipping API’si kullanıyorsanız büyük ihtimalle /sync ile çalışmalısınız.

  • Affiliate (partner) API’si kullanıyorsanız /rest kullanmanız gerekir.

Örnekler:

  • https://api-sg.aliexpress.com/sync

  • https://api.lazada.com/rest

Hangi kategoriye başvurduysanız (Dropshipper, Affiliate vs), ona uygun olan endpoint'i kullanmanız gerekir.


✅ 3. Timestamp Sorunları ve Saat Dilimi Hataları

Zaman damgası (timestamp) API'nin güvenlik açısından en çok kontrol ettiği değerlerden biridir. Eğer sizin sistem saatiniz ile API sunucusunun saatinde uyuşmazlık varsa, bu durumda imza geçersiz olur.

Öneriler:

  • Sunucunuzun saat dilimini kontrol edin:

    timedatectl
  • Saat dilimini örneğin Bakü zamanı (UTC+4) olarak ayarlamak isterseniz:

    sudo timedatectl set-timezone Asia/Baku
  • Laravel'de now('UTC')->getTimestamp() ya da now('Asia/Baku')->getTimestamp() ile timestamp alın.

  • API’nin istediği zaman formatını kontrol edin. Genellikle milisaniyesiz timestamp istenir (unix timestamp).


✅ 4. Parametrelerin Alfabetik Olmaması

İmza oluşturulurken API parametreleri kesinlikle alfabetik sıralı olmalıdır.

PHP’de kolayca bu işlemi şu şekilde yapabilirsiniz:

ksort($params); // Parametreleri alfabetik sıraya göre sırala

Bu adımı atlamak, imzanın geçersiz sayılmasına neden olur. ksort() hem AliExpress hem de Lazada tarafında en önemli adımlardan biridir.


✅ 5. Hashleme Sorunları: SHA256 ve Ortam Farklılıkları

Bir diğer sık karşılaşılan hata, şifreleme metodunun (örn. SHA256) lokalde doğru çalışırken sunucuda farklı sonuç vermesi.

Bunun nedeni şunlar olabilir:

  • PHP versiyon farkları

  • Ortam değişkenlerinden (.env) veri çekerken trim, encoding gibi işlemler

  • Farklı platformlarda hash_hmac fonksiyonunun farklı davranması

🧪 Test Önerisi:

  • .env yerine doğrudan string verileri kullanarak manuel test yapın:

$testSign = strtoupper(hash_hmac('sha256', 'yourKeyHere', 'yourSecretHere'));
  • Bu şekilde local ve sunucudaki çıktılar aynı mı kontrol edin.

Eğer sadece bir ortamda düzgün çalışıyorsa, oradaki hashleme doğru çalışıyor demektir. Bu hashleme şeklini örnek alarak diğer ortama uygulayabilirsiniz.


🔁 Bonus: Signature’ın Nerede Kırıldığını Anlama

İmzanızın neden geçersiz olduğunu anlamak için:

  • Parametrelerin sıralamasını yazdırın

  • timestamp, app_key, sign_method gibi zorunlu alanları tekrar kontrol edin

  • Oluşan stringToBeSigned değerini loglayarak sunucu ve local karşılaştırmasını yapın


🔚 Sonuç

AliExpress ve Lazada API'leriyle çalışırken yaşanan “Incomplete Signature” veya “Signature does not conform to platform standards” gibi hatalar genellikle aşağıdaki 5 nedenden kaynaklanır:

  1. Yanlış veya eksik app_key, app_secret, access_token

  2. Yanlış endpoint kullanımı (/sync/rest)

  3. Sistem saati / timestamp uyumsuzluğu

  4. Parametrelerin sıralı olmaması (ksort eksikliği)

  5. Hashleme fonksiyonunun ortamdan ortama farklılık göstermesi

Bu maddeleri sistematik bir şekilde kontrol ettiğinizde %90 ihtimalle sorunu çözersiniz. Yine de sorun yaşıyorsan, request detaylarını ve çıktıları loglayarak adım adım takip etmek en doğru yöntem olacaktır.

Aykhan Gasimzade Aykhan Gasimzade verified icon
Full Stack Developer

Merhaba! Ben Aykhan, 1999 doğumlu bir Azerbaycanlıyım ve 2017 yılından bu yana programlamayla ilgileniyorum. Teknolojinin büyülü dünyası beni her zaman etkilemiştir ve bu merakımı kendi blogumda paylaşarak daha geniş bir kitleyle buluşturmayı amaçlıyorum.