Доверие к вебхукам
Проверьте событие, прежде чем обновлять заказ.
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.