Appearance
5. Body'yi Hazırlayın ve Sabit Tutun
Body Nedir?
Body, API'ye gönderilecek olan JSON veri gövdesinin ham ve değişmeyen halidir. Bu veri, signature (imza) üretiminde ve HTTP isteğinde birebir aynı şekilde kullanılmalıdır.
Kritik Nokta
Body'nin tek bir karakteri bile değişirse (boşluk, satır sonu, tab, property sırası vs.) imza doğrulama başarısız olur.
Nasıl Kullanılmalıdır?
✅ Doğru Uygulama
- Body'yi bir değişkende saklayın.
- Signature oluştururken de HTTP POST isteğinde de aynı değişkeni kullanın.
- JSON'u yeniden serialize etmeyin, formatlamayın.
❌ Yanlış Uygulamalar
JSON.stringifyile tekrar serialize etmek (özellikle JavaScript'te).- Body'yi tek satır yapıp göndermek.
- JSON formatter ile yeniden biçimlendirmek.
- Editör kaynaklı fazladan boşluk veya satır sonu eklemek.
- JSON property sırasının otomatik değişmesi.
Önemli Noktalar
Karakterler → Nokta, boşluk, tab, satır sonu dahil her şey korunmalı.
Property Sırası → JSON içindeki alanların sırası değişmemelidir.
Satır Sonları → Platform bağımlı farklılıklar olabilir:
- Windows →
CRLF (\r\n) - Unix/Linux →
LF (\n) - Mac →
CR (\r)
Signature üretiminde ve gönderimde mutlaka aynı satır sonu karakteri kullanılmalıdır.
- Windows →
Özet
| Alan | Açıklama |
|---|---|
| Body | API'ye gönderilecek ham JSON veri gövdesi |
| Kritik Nokta | Signature üretimi ve HTTP isteğinde birebir aynı olmalı |
| Değiştirilemez | Satır sonları, boşluklar, tab'lar, property sırası |
| Yanlış Kullanım | Tekrar serialize, formatter, otomatik JSON sıralaması |
| Doğru Kullanım | Tek bir değişkende sakla → Hem signature hem de API isteğinde aynı kullan |
Bu nedenle, Body'nin hazırlanışı ve korunması, Signature doğrulama sürecinin en hassas adımıdır.
Örnek Body
Aşağıdaki body örneğinde CRLF satır sonları kullanılmıştır:
json
{
"orderId": "9f51af45-aab3-4c30-aeb9-f3fb2fc4e775",
"cardNo": "{creditCardPattern_1}",
"expiry": 3312,
"cvv2": "000",
"amount": 100,
"currency": 949
}
