Resiliente Systemarchitektur

Webhook-Idempotenz & Sichere Wiederholungen

Stellen Sie sicher, dass Ihr Commerce-Stack Zahlungen exakt einmal verarbeitet — selbst wenn Netzwerkverzögerungen automatische Webhook-Wiederholungen auslösen.

Warum Idempotenz bei Web3-Zahlungen entscheidend ist

Da Blockchain-Bestätigungszeiten variieren und Internet-Routing kurzzeitigen Schwankungen unterliegen kann, wiederholt der automatische Dispatcher von XPayr unbestätigte Webhooks bis zu 5 Mal. Ein idempotenter Listener garantiert, dass Ihr Shop niemals eine Bestellung doppelt ausführt.

Spezifikationen der wichtigsten HTTP-Header

  • X-XPayr-Delivery: Eindeutige UUID für jedes Webhook-Ereignis (z. B. deliv_9f8a2c1e4d). Bleibt über alle Wiederholungsversuche desselben Transaktionsereignisses hinweg identisch.
  • X-XPayr-Signature: HMAC-SHA-256-Hash zum Schutz vor Manipulation und Replay-Angriffen.
  • X-XPayr-Event: Ereignisbezeichner (payment.confirmed, payment.failed).

Produktionsreifes Listener-Muster (PHP)

<?php
// Secure Webhook Listener with Idempotency Protection
$rawPayload = file_get_contents('php://input');
$deliveryId = $_SERVER['HTTP_X_XPAYR_DELIVERY'] ?? '';
$signature = $_SERVER['HTTP_X_XPAYR_SIGNATURE'] ?? '';

// 1. Verify HMAC Signature
$expectedSignature = 'sha256=' . hash_hmac('sha256', $rawPayload, $webhookSecret);
if (!hash_equals($expectedSignature, $signature)) {
    http_response_code(401);
    exit('Invalid signature');
}

$event = json_decode($rawPayload, true);
$orderId = $event['data']['order_id'] ?? null;

// 2. Check if this delivery or order was already processed (Atomic DB Lock)
$stmt = $pdo->prepare("INSERT INTO processed_webhooks (delivery_id, order_id, created_at) VALUES (?, ?, NOW())");
try {
    $stmt->execute([$deliveryId, $orderId]);
} catch (PDOException $e) {
    // Duplicate event detected (Unique constraint violation)
    // Return HTTP 200 OK immediately so XPayr stops retrying!
    http_response_code(200);
    echo json_encode(['status' => 'already_processed']);
    exit;
}

// 3. Fulfill Order (Guaranteed to execute exactly ONCE)
fulfillCustomerOrder($orderId, $event['data']);

http_response_code(200);
echo json_encode(['status' => 'success']);
Offizielle NPM-SDKs (v0.2.0) & Remote-MCP-Server

Schneller integrieren mit offiziellen XPayr-Paketen & installationsfreiem MCP

Installieren Sie @xpayr/node-sdk (v0.2.0), @xpayr/payment-evidence (v0.2.0), @xpayr/extension-kit (v0.2.0)oder @xpayr/mcp-server (v1.0.0) über NPM oder führen Sie Live JSON-RPC 2.0 Tool-Aufrufe aus über POST https://xpayr.com/api/mcp.

Live-MCP-Playground (/tools/mcp-playground) ES256-Lizenzprüfer KI-Agenten-Richtliniensimulator HMAC-SHA256-Webhook-Tester mcp.xpayr.com docs.xpayr.com api-docs.xpayr.com