Örnekler
Canli Partner RFQ handling ve webhook dogrulamasi icin referans snippetler.
Örnekler
Bu snippet'leri başlangıç noktası olarak kullanın, ancak payload ve response handling'i her zaman
/docs/api/openapi.yaml adresindeki yayınlanmış sözleşmeye göre
doğrulayın.
cURL: disabled estimate sinirini kontrol et
curl -X POST https://api.nowtoprint.com/api/v1/estimate \
-H "Authorization: Bearer ntp_test_your_key" \
-H "Content-Type: application/json" \
-d '{
"category": "brochure",
"quantity": 500,
"specifications": {
"pageCount": 16
}
}'
Node.js: canlı RFQ oluşturma
const response = await fetch('https://api.nowtoprint.com/api/v1/rfq', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.NOWTOPRINT_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
catalogProductUid: 'ntp:book:a5:softcover:books',
title: 'Spring brochure batch',
category: 'book',
quantity: 2500,
deliveryCity: 'Istanbul',
}),
});
if (!response.ok) {
const problem = await response.json();
throw new Error(`RFQ creation failed: ${problem.code ?? response.status}`);
}
const created = await response.json();
console.log(created.id, created.trackingCode);
RFQ, quote ve order readiness
RFQ create, organizasyona ait RFQ detail ve o RFQ'nun supplier quote okumaları canlıdır. Teklif
kabulü ve order launch-disabled kalır. İstemciyi yalnız yayımlanmış sözleşmeden üretin; 422, 429
ve katalog-bağlamı 503 yanıtlarını tipli RFQ sonuçları olarak işleyin.
Node.js: webhook imza doğrulama
import crypto from 'node:crypto';
export function verifyWebhookSignature(payload: string, signature: string, secret: string) {
const digest = crypto.createHmac('sha256', secret).update(payload).digest('hex');
return signature === `sha256=${digest}`;
}
JSON parse etmeden önce raw request body ile doğrulama yapın. Webhook event delivery pilot/rollout kontrollü kalır; quote veya order event'lerinin public-current production enablement olduğunu varsaymayın.
Production notları
- anahtarları ve webhook secret'larını managed server-side secrets içinde tutun
- doğrudan live credentials kullanan client-side entegrasyonlara güvenmeyin
- credentials yerine request ID'leri loglayın
- webhook consumer'larını onaylı pilotlar için idempotent worker olarak tasarlayın
- API key'leri Master Data data-product GA access switch'i olarak yorumlamayın
Bu makale yardımcı oldu mu?
İlgili makaleler
Last updated on