Modtag realtidsbeskeder om hændelser i dit system
Webhooks er HTTP callbacks der giver dig mulighed for at modtage realtidsbeskeder når specifikke hændelser sker i dit Connect2Print system.
Fordele ved Webhooks:
Connect2Print sender webhooks for følgende hændelser:
Modtag beskeder om ordreændringer:
order.created - En ny ordre er blevet oprettetorder.updated - En ordre er blevet opdateretorder.completed - En ordre er blevet færdiggjortorder.cancelled - En ordre er blevet annulleretorder.shipped - En ordre er blevet afsendtinvoice.created - En ny faktura er blevet oprettetinvoice.sent - En faktura er blevet sendtinvoice.paid - En faktura er blevet betaltquote.created - Et nyt tilbud er blevet oprettetquote.accepted - Et tilbud er blevet accepteretquote.rejected - Et tilbud er blevet afvistproduction.job.created - Et nyt produktionsjob er oprettetproduction.job.completed - Et produktionsjob er færdigtcustomer.created - En ny kunde er oprettetshipment.delivered - En forsendelse er blevet leveretstock.low - Lagerbeholdning er lavOpret og konfigurer webhooks fra admin-panelet:
Gem webhook secret sikkert - den bruges til at validere webhook signaturer.
Alle webhooks sender data i følgende format:
Payload Felter:
id - Unikt ID for denne webhook deliveryevent - Event type (f.eks. "order.created")timestamp - ISO 8601 tidsstempeldata - Event specifikke data (varierer efter event type){
"id": "wh_1a2b3c4d5e6f",
"event": "order.created",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"order": {
"id": 123,
"order_number": "ORD-2024-001",
"status": "pending",
"total": 499.00,
"customer": {
"id": 456,
"email": "customer@example.com"
}
}
}
}
Alle webhooks inkluderer en X-Webhook-Signature header som du SKAL validere for at sikre at anmodningen kommer fra Connect2Print.
X-Webhook-Signature// PHP $signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE']; $body = file_get_contents('php://input'); $secret = 'your_webhook_secret'; $calculated = hash_hmac('sha256', $body, $secret); if (!hash_equals($signature, $calculated)) { http_response_code(401); die('Invalid signature'); } // Signature is valid, process the webhook $data = json_decode($body, true);
// Node.js const crypto = require('crypto'); function validateWebhook(body, signature, secret) { const calculated = crypto .createHmac('sha256', secret) .update(body) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(calculated) ); }
# Python import hmac import hashlib def validate_webhook(body, signature, secret): calculated = hmac.new( secret.encode(), body.encode(), hashlib.sha256 ).hexdigest() return hmac.compare_digest(signature, calculated)
Bedste praksis for at håndtere webhooks:
Svar med HTTP 200 status med det samme. Behandl event data asynkront i baggrunden.
Stol aldrig på data uden at validere webhook signaturen først.
Samme event kan sendes flere gange. Brug event id til at deduplicere.
Webhooks sendes ikke nødvendigvis i kronologisk rækkefølge. Brug timestamp til at sortere.
Din endpoint skal svare indenfor 10 sekunder, ellers tælles det som en fejl.
Log indkommende webhooks til debugging og audit trail.
Hvis din endpoint fejler eller ikke svarer, genprøver Connect2Print automatisk:
Retry Schedule:
Du kan se webhook delivery status og retry history i admin-panelet.
Test dine webhooks før produktionsopsætning:
Brug et værktøj som webhook.site til at inspicere webhook payloads.
Brug "Send Test Event" funktionen i admin-panelet til at sende et eksempel payload.
Brug ngrok til at eksponere din lokale server til webhook leveringer.
Send en test webhook programmisk:
POST /api/v1/webhooks/{id}/test Authorization: Bearer YOUR_API_KEY // Example response { "success": true, "message": "Test webhook sent" }
Nu hvor du forstår webhooks, udforsk relaterede emner: