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.

"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 danow('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 çekerkentrim
,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:
-
Yanlış veya eksik
app_key
,app_secret
,access_token
-
Yanlış endpoint kullanımı (
/sync
↔/rest
) -
Sistem saati /
timestamp
uyumsuzluğu -
Parametrelerin sıralı olmaması (ksort eksikliği)
-
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.