Örnekler
Canli Partner RFQ handling ve webhook dogrulamasi icin referans snippetler.
Güncel RFQ oluşturma ve kuruluşa ait tekil RFQ/teklif okuma sözleşmesi /api/v1/marketplace/openapi.json adresinde üretilir. Eski /docs/api/openapi.yaml yayını farklı bir referanstır; iki belgenin eşit olduğunu varsaymayın. Ortam adresini ve etkin yetkileri onboarding sırasında doğrulayın.
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_partner_v2_<issued-key-id>_<secret>" \
-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',
},
body: JSON.stringify({
catalogProductUid: 'ntp:book:a5:softcover:books',
title: 'Spring book 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
// Durable Marketplace delivery only: use a Standard Webhooks-compatible verifier.
// Preserve rawBody bytes and read webhook-id, webhook-timestamp, webhook-signature.
// Verify HMAC over `${id}.${timestamp}.${rawBody}`, check timestamp freshness,
// and compare decoded signatures with a constant-time comparison before parsing.
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 yorumlar bağımsız bir doğrulayıcı uygulaması değildir. Tam imza biçimleri için Webhook rehberini kullanın; XJMF ve /api/v1/webhooks yardımcı teslimi farklı imza sözleşmelerine sahiptir.
RFQ örneğindeki catalogProductUid ve kategoriyi onaylı ortamın yayımlanmış ürününden alın; örnek ID production kaydı kanıtı değildir. Ham HTTP sonucunu ve Content-Type sözleşmesini doğrulamadan başarı varsaymayın.
Bu makale yardımcı oldu mu?