دقة التسوية والحالات الاستثنائية
معالجة مدفوعات العملات الرقمية الناقصة والزائدة
عندما يدفع العملاء من منصات التداول المركزية (Binance وOKX وCoinbase)، غالباً ما تخصم المنصة رسوم سحب للشبكة تتراوح بين $0.80 و$1.00 من المبلغ المرسل. تعرّف على كيفية أتمتة محرك التسامح وحالات Webhook في XPayr لمطابقة هذه الحالات.
1. ثلاث نتائج تسوية حتمية
| السيناريو | حدث Webhook | سلوك بوابة الدفع والعقد الذكي |
|---|---|---|
| دفع ناقص ضمن حد التسامح (مثلاً $99 من أصل $100) | payment.underpaid_accepted |
يُقبَل تلقائياً عندما يكون النقص ضمن عتبة التسامح المُعدّة لديك (مثلاً 1%–2%). وتُحتسب عمولة رسوم ثابتة 0.5% الثابتة على المبلغ الفعلي المستلم. |
| دفع ناقص يتجاوز حد التسامح (دفع جزئي) | payment.partial_pending |
تعرض واجهة الدفع الفارق المتبقي بدقة في الوقت الفعلي ليتمكن المشتري من إرسال معاملة تكميلية ثانية قبل انتهاء صلاحية الجلسة، أو يمكن للتاجر قبوله يدوياً من لوحة التحكم. |
| تسوية بدفع زائد (مثلاً $105 بدلاً من $100) | payment.completed (overpaid_delta > 0) |
يُصنَّف الطلب كمكتمل فوراً؛ ويُسجَّل حقل overpaid_amount بدقة في حمولة Webhook وحزمة إثبات الدفع لتتمكن من إضافته إلى رصيد حساب العميل. |
2. نموذج حمولة Webhook للحدث `payment.underpaid_accepted`
يمكنك محاكاة هذا الحدث بالضبط وفحص ترويسات توقيع HMAC-SHA256 مباشرةً في أداة اختبار Webhook التفاعلية:
{
"event": "payment.underpaid_accepted",
"event_id": "evt_01J9XPAYR_UNDERPAID_89A2",
"created_at": "2026-11-10T18:00:00Z",
"data": {
"session_id": "cs_live_98a7b6c5d4e3",
"order_id": "ORD-2026-8841",
"network": "tron-mainnet",
"currency": "USDT",
"expected_amount": "100.000000",
"received_amount": "99.000000",
"shortfall_amount": "1.000000",
"shortfall_percent": 1.0,
"merchant_tolerance_percent": 1.5,
"gateway_fee_amount": "0.495000",
"merchant_net_amount": "98.505000",
"tx_hash": "0x9f8e7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e",
"resolution": "auto_accepted_within_tolerance"
}
}
3. التحقق من إثباتات الدفع الناقص والزائد في Node.js
// Verify underpaid/completed settlement evidence with @xpayr/payment-evidence (v0.2.0)
import { verifyPaymentEvidence } from "@xpayr/payment-evidence";
const verification = await verifyPaymentEvidence(webhookPayload, {
webhookSecret: process.env.XPAYR_WEBHOOK_SECRET,
signatureHeader: req.headers["x-xpayr-signature"],
allowUnderpaidWithinTolerance: true
});
if (verification.valid) {
await fulfillOrder(webhookPayload.data.order_id, {
receivedAmount: webhookPayload.data.received_amount,
txHash: webhookPayload.data.tx_hash
});
}
حزم 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.