api

نظرة عامة على واجهة برمجة التطبيقات (API) والمصادقة

توفر QuantaPay واجهة برمجة تطبيقات (API) بسيطة تشبه REST لإنشاء المدفوعات والاستعلام عن المعاملات وإدارة حسابك برمجيًا.

محدث: 9‏/3‏/2026

توفر QuantaPay واجهة برمجة تطبيقات (API) بسيطة تشبه REST لإنشاء المدفوعات والاستعلام عن المعاملات وإدارة حسابك برمجيًا.

نقطة النهاية

يتم إرسال جميع طلبات API إلى نقطة نهاية واحدة:

POST https://cloud.quantapay.app/api.php

نوع المحتوى

تستخدم الطلباتapplication/x-www-form-urlencoded(ترميز نموذج HTML القياسي).

curl -X POST https://cloud.quantapay.app/api.php \
  -d "function=get-balances" \
  -d "api-key=YOUR_API_KEY"

المصادقة

يجب أن يتضمن كل طلب API الخاص بكمفتاح APIكمعامل POST.

المعاملالنوعمطلوبالوصف
api-keyسلسلة نصيةنعممفتاح API الخاص بك. موجود في الإعدادات ← الحساب.
functionسلسلة نصيةنعماسم دالة API المراد استدعاؤها.

الحصول على مفتاح API الخاص بك

  1. سجل الدخول إلىcloud.quantapay.app
  2. اذهب إلىالإعدادات ← الحساب
  3. انسخ مفتاح API الخاص بك

الأمن: حافظ على سرية مفتاح API الخاص بك. لا تعرضه في التعليمات البرمجية من جانب العميل أو المستودعات العامة.

توقيع HMAC (اختياري)

لـcreate-checkout-session، يمكنك إضافة التحقق من توقيع HMAC-SHA256 لمنع التلاعب بالطلب.

كيف يعمل

  1. قم بإنشاء سلسلة بيانات التوقيع:{السعر}|{العملة}|{رقم_الطلب}|{الطابع_الزمني}
  2. قم بإنشاء HMAC-SHA256 باستخداممفتاح Webhook السري الخاص بكباعتباره السر.
  3. تضمينتوقيعوختم زمنيفي طلبك

مثال (PHP)

$webhook_secret = 'your-webhook-secret-key';
$price = '49.99';
$currency = 'usd';
$order_id = 'ORD-12345';
$timestamp = time();

$sign_data = $price . '|' . $currency . '|' . $order_id . '|' . $timestamp;
$signature = hash_hmac('sha256', $sign_data, $webhook_secret);

// Include in your API request:
// signature={$signature}&timestamp={$timestamp}

مثال (Node.js)

const crypto = require('crypto');

const webhookSecret = 'your-webhook-secret-key';
const price = '49.99';
const currency = 'usd';
const orderId = 'ORD-12345';
const timestamp = Math.floor(Date.now() / 1000);

const signData = `${price}|${currency}|${orderId}|${timestamp}`;
const signature = crypto.createHmac('sha256', webhookSecret).update(signData).digest('hex');

ملاحظة: يجب أن يكون الختم الزمني في غضون 5 دقائق من وقت الخادم، وإلا سيتم رفض الطلب مع ظهور رسالة "انتهت صلاحية الطلب".

تنسيق الاستجابة

نجاح

{
  "success": true,
  "response": { ... }
}

خطأ

{
  "success": false,
  "error_code": "error-code-slug",
  "message": "Human-readable error description"
}

رموز الخطأ

رمز الخطأالوصف
missing-function-nameالمعاملfunctionلم يتم تضمينه في الطلب.
function-not-foundاسم الدالة المحدد غير موجود.
api-key-not-foundالمعاملapi-keyلم يتم تضمين المعامل.
invalid-api-keyمفتاح API المقدم غير صحيح.
missing-argumentمعلمة مطلوبة مفقودة للدالة المحددة.

حدود المعدل

لا توجد حدود صارمة للمعدل، ولكن قد يتم تقييد الطلبات المفرطة. للاستخدام النموذجي (أقل من 100 طلب/دقيقة)، لن يحدث أي تقييد.