نظرة عامة على واجهة برمجة التطبيقات (API) والمصادقة
توفر QuantaPay واجهة برمجة تطبيقات (API) بسيطة تشبه REST لإنشاء المدفوعات والاستعلام عن المعاملات وإدارة حسابك برمجيًا.
توفر 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 الخاص بك
- سجل الدخول إلىcloud.quantapay.app
- اذهب إلىالإعدادات ← الحساب
- انسخ مفتاح API الخاص بك
الأمن: حافظ على سرية مفتاح API الخاص بك. لا تعرضه في التعليمات البرمجية من جانب العميل أو المستودعات العامة.
توقيع HMAC (اختياري)
لـcreate-checkout-session، يمكنك إضافة التحقق من توقيع HMAC-SHA256 لمنع التلاعب بالطلب.
كيف يعمل
- قم بإنشاء سلسلة بيانات التوقيع:
{السعر}|{العملة}|{رقم_الطلب}|{الطابع_الزمني} - قم بإنشاء HMAC-SHA256 باستخداممفتاح Webhook السري الخاص بكباعتباره السر.
- تضمين
توقيعوختم زمنيفي طلبك
مثال (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}×tamp={$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 طلب/دقيقة)، لن يحدث أي تقييد.