Доверие к вебхукам

Проверьте событие, прежде чем обновлять заказ.

XPayr подписывает содержимое вебхуков вашим секретом. Сохраните сырое тело запроса, проверьте X-XPayr-Signature, затем обработайте событие идемпотентно.

Заголовки для чтения

  • X-XPayr-Signature: Подпись HMAC SHA-256 с префиксом sha256=.
  • X-XPayr-Event: тип события, например payment.completed.
  • X-XPayr-Delivery: идентификатор доставки/события, если доступен.

Примеры проверки подписи на разных языках

import crypto from "node:crypto";

export function verifyXPayrWebhook(rawBody, signatureHeader, secret) {
  const received = String(signatureHeader || "").replace(/^sha256=/, "");
  const expected = crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex");

  return crypto.timingSafeEqual(
    Buffer.from(received, "hex"),
    Buffer.from(expected, "hex")
  );
}

События для обработки

Как минимум обрабатывайте payment.completed, payment.failed, payment.expired, test.webhook. Для сверки используйте ID сессии и собственный ID заказа из метаданных.

Официальные NPM SDK (v0.2.0) и удаленный MCP-сервер

Быстрая интеграция с официальными пакетами XPayr и MCP без установки

Установите @xpayr/node-sdk (v0.2.0), @xpayr/payment-evidence (v0.2.0), @xpayr/extension-kit (v0.2.0)или @xpayr/mcp-server (v1.0.0) из NPM или выполняйте живые вызовы инструментов JSON-RPC 2.0 через POST https://xpayr.com/api/mcp.

Живая песочница MCP (/tools/mcp-playground) Верификатор лицензий ES256 Симулятор политик ИИ-агентов Тестер вебхуков HMAC-SHA256 mcp.xpayr.com docs.xpayr.com api-docs.xpayr.com