Yetkilendirme

Korunan API yöntemleri HMAC-SHA256 imzası ile yetkilendirme gerektirir.

Required headers

Her istek üç zorunlu başlık içermelidir:

X-Timestamp
Saniye cinsinden Unix timestamp
X-Signature
Hex formatında HMAC-SHA256 istek imzası
X-Client-Id
Satıcı ID'niz

Signature generation

İmza timestamp ve istek gövdesi temel alınarak oluşturulur.

Format:

{timestamp}.{canonicalBody}

Format description

timestamp
Saniye cinsinden geçerli Unix zamanı
canonicalBody
Canonical formata dönüştürülmüş JSON istek gövdesi

İmza algoritması:

  • Saniye cinsinden geçerli Unix zamanını alın
  • İstek gövdesini alın
  • JSON'u canonical formata dönüştürün
  • Şu dizeyi oluşturun: timestamp + "." + canonicalBody
  • Dizeyi api_secret kullanarak HMAC-SHA256 ile imzalayın
  • timestamp ve imzayı istek başlıklarında gönderin

Önemli gereksinimler:

  • api_secret istek içinde gönderilmemelidir
  • api_secret yalnızca satıcının sunucu tarafında saklanmalıdır
  • İmza her istek için ayrı hesaplanmalıdır
  • X-Timestamp imzanın oluşturulduğu zamanla eşleşmelidir
  • API'ye gönderilen istek gövdesi, imzanın hesaplandığı gövdeyle tamamen aynı olmalıdır
  • Gövdesiz isteklerde imzalanan dize şu formattadır: {timestamp}

Örnekler:

Authorization errors

401 Invalid X-Timestamp

{
  "status": 401,
  "message": "Invalid X-Timestamp"
}

401 Expired X-Timestamp

{
  "status": 401,
  "message": "Expired X-Timestamp"
}

401 Invalid X-Signature

{
  "status": 401,
  "message": "Invalid X-Signature"
}

401 Invalid token

{
  "status": 401,
  "message": "Invalid token"
}

401 Merchant secret not configured

{
  "status": 401,
  "message": "Merchant secret not configured"
}

500 Internal Server Error

{
  "status": 500,
  "message": "Internal Server Error"
}