أدلة
واجهة API لبوابة الدفع بالعملات المشفّرة: الفواتير وwebhooks والصرف والعلامة البيضاء
تتيح واجهة API لبوابة الدفع بالعملات المشفّرة لمنصتك إنشاء الفواتير، وتلقي webhooks موقّعة عند رصد دفعة البلوكتشين وتأكيدها، وإرسال المبالغ المستردة أو الصرف. تنشئ فاتورة بمبلغ بالعملة الورقية، وتعرض العنوان المُرجَع أو الصفحة المستضافة، ولا تعدّ الطلب مدفوعًا إلا بعد أن تبلغ البوابة حالة نهائية. ويلزم التعامل الصريح مع الدفع الناقص وانتهاء الصلاحية وإعادة المحاولة الآمنة (idempotent).
ماذا تفعل واجهة API لبوابة الدفع بالعملات المشفّرة؟
تخفي الواجهة البلوكتشين عن شيفرتك. فبدلًا من تشغيل العقد (nodes) واشتقاق العناوين وعدّ التأكيدات، تستدعي نقطة نهاية لإنشاء فاتورة، وتحفظ معرّف البوابة، وتنتظر الإشعارات. وتحدد البوابة سعر الصرف، وترصد الشبكات، وتطبّق فحوص مكافحة غسل الأموال، وتسوّي إلى رصيدك.
تعرض معظم البوابات اللبنات نفسها بأسماء مختلفة: فواتير أو طلبات للمدفوعات الواردة، وIPN أو callbacks للإشعارات، ونقاط نهاية للتحويل والرصيد، وعمليات صرف أو سحب للتحويلات الصادرة. وتتوفر بيئات تجريبية لدى معظم المزوّدين، مثل مضيف sandbox منفصل لدى CoinGate وحساب sandbox لدى NOWPayments، ويجب استخدامها قبل أي اختبار على الشبكة الرئيسية.
- Invoice API: إنشاء طلبات الدفع وقراءتها وإلغاؤها بسعر بالعملة الورقية والعملات المقبولة ومرجع الطلب وعنوان callback
- الإشعارات: webhooks أو IPN عند كل تغيّر في الحالة، وغالبًا ما تكون موقّعة
- Payouts API: إرسال عملات مشفّرة أو ورقية إلى العملاء أو الشركاء أو محفظتك
- الأسعار والعملات: عرض العملات والشبكات المدعومة والحدود الدنيا والأسعار الحية
- الإضافات وSDKs: وحدات جاهزة لمنصات التجارة الإلكترونية فوق الواجهة نفسها
كيف تعمل دورة حياة الفاتورة؟
لكل بوابة نموذج حالات خاص بها، فحوّلها إلى مجموعة داخلية صغيرة قبل كتابة منطق الأعمال. ولا ينبغي أن تفرج عن البضاعة إلا حالة «مدفوعة» النهائية؛ أما الحالات الوسيطة فموجودة لأن المعاملة قد تظهر على السلسلة قبل وقت طويل من اعتبارها آمنة.
يربط الجدول بين نموذجين منشورين للحالات والحالات التي تحتاجها معظم المنصات. فمثلًا تنهي CoinGate صلاحية الفاتورة غير المدفوعة بعد 20 دقيقة من اختيار المتسوّق للعملة، وتضع الدفعات التي تشير إليها فحوص مكافحة غسل الأموال في حالة invalid.
| الحالة الداخلية | CoinGate API v2 | NOWPayments | الإجراء في نظامك |
|---|---|---|---|
| أُنشئت | new | waiting | اعرض صفحة الدفع وابدأ المؤقت |
| رُصدت | pending, confirming | confirming, confirmed, sending | اعرض شاشة الانتظار ولا تشحن |
| مدفوعة | paid | finished | نفّذ الطلب وسجّل التسوية |
| جزئية | لا توجد حالة منفصلة في القائمة المنشورة | partially_paid | اطلب الفرق أو أعد المبلغ |
| فاشلة | invalid, expired, canceled | failed, expired | حرّر المخزون واسمح بمحاولة جديدة |
| مستردة | refunded, partially_refunded | refunded | حدّث الطلب والمحاسبة |
كيف يجب التحقق من webhooks وIPN للعملات المشفّرة؟
تعامل مع كل إشعار على أنه غير موثوق حتى يُتحقق منه. تستخدم البوابات مخططات مختلفة: فتوقّع NOWPayments متن JSON المرتب بخوارزمية HMAC-SHA512 وترسله في الترويسة x-nowpayments-sig، وترسل CoinGate رمزًا (token) تحدده على الطلب، وتوصي BitPay بجلب الفاتورة من API بعد كل إشعار بدل الوثوق بمتنه.
والنمط الأكثر أمانًا يجمع الاثنين: تحقق من التوقيع، ثم اقرأ الفاتورة من API وتصرّف وفق تلك الاستجابة. وهذا يكلف طلبًا واحدًا لكل تغيّر في الحالة ويحميك من callbacks المزوّرة أو المعاد إرسالها.
- تحقق من التوقيعات بمقارنة ثابتة الزمن (constant-time) وارفض الطلبات غير الموقّعة
- أعد جلب الفاتورة بمعرّف البوابة قبل تغيير حالة الطلب
- أعد HTTP 200 بسرعة وعالج بشكل غير متزامن؛ فالبوابات تعيد المحاولة عند الأخطاء
- خزّن كل إشعار مع حدثه أو حالته حتى تُتجاهل التكرارات
- لا تثق أبدًا بالمبالغ أو العملات المرسلة في إعادة التوجيه عبر المتصفح
كيف تتعامل مع الدفع الناقص والزائد والمتأخر؟
تخصم المحافظ ومنصات التداول رسوم السحب، وينسخ العملاء المبالغ بشكل غير دقيق، لذلك لا يمكن افتراض الدفع المطابق تمامًا. حدّد هامش تسامح وقاعدة لكل حالة قبل الإطلاق، وأتح النتيجة لموظفي الدعم.
| الحالة | ما يحدث على السلسلة | المعالجة المعتادة |
|---|---|---|
| دفع ناقص | يصل أقل من المبلغ المسعّر | القبول ضمن هامش تسامح صغير، أو طلب استكمال، أو الاسترداد |
| دفع زائد | يصل أكثر من المبلغ المسعّر | اعتبره مدفوعًا، وأضف الزيادة رصيدًا أو أعدها عند الطلب |
| دفع متأخر | تصل الأموال بعد انتهاء تثبيت السعر | إعادة التسعير بالسعر الحالي أو الاسترداد |
| شبكة خاطئة | رمز أُرسل على سلسلة غير مدعومة | استرداد يدوي إن أمكن، وغالبًا مقابل رسم |
| احتجاز AML | المحفظة المصدر تشير إليها فحوص التدقيق | تُحتجز الدفعة أو توسم بأنها invalid، ومراجعة امتثال |
كيف تعمل idempotency والمطابقة؟
أنشئ الفواتير بمرجع الطلب الخاص بك واجعل الاستدعاء آمنًا للتكرار: فإذا انتهت مهلة الطلب، فابحث عن الفاتورة بالمرجع قبل إنشاء أخرى، أو استخدم مفتاح idempotency حيث تدعمه البوابة. وتنطبق القاعدة نفسها على الصرف، حيث يرسل الطلب المكرر أموالًا حقيقية مرتين.
وللمطابقة، خزّن معرّف فاتورة البوابة وهاش المعاملة والمبلغ بالعملة الورقية والمبلغ بالعملة المشفّرة وسعر الصرف والرسم. وتعرض تقارير التسوية عمليات الصرف على شكل دفعات، لذلك تجري المطابقة من الطلب إلى الفاتورة إلى الدفعة، لا من الطلب إلى بند الكشف المصرفي.
ماذا تحتاج واجهة الصرف بموجب قاعدة السفر؟
ترسل نقاط نهاية الصرف عملات مشفّرة من رصيدك لدى البوابة إلى عنوان، غالبًا على شكل دفعات لعمولات الشركاء أو بائعي الأسواق الإلكترونية أو سحوبات العملاء. ويتطلب معظمها قائمة عناوين موثوقة أو موافقة بعاملين أو مفتاح API بصلاحيات صرف منفصلة.
وفي الاتحاد الأوروبي تلزم اللائحة (EU) 2023/1113 البوابة بنقل معلومات المنشئ والمستفيد مع كل تحويل والتحقق من ملكية المحافظ ذاتية الاستضافة فوق 1,000 يورو. توقّع أن تتضمن طلبات الصرف اسم المستفيد ونوع العنوان، وخطّط لتحويلات تنتظر هذه البيانات.
ما خيارات بوابة الدفع بالعملات المشفّرة بعلامة بيضاء؟
كثيرًا ما تريد المنصات التي تعيد بيع المدفوعات لتجارها صفحة الدفع بعلامتها. وهناك ثلاثة مستويات، ويرتفع السعر بقدر التحكم. فمثلًا تعلن Plisio عن 0.5% لواجهة API و1.5% للعلامة البيضاء، وتبيع NOWPayments منتج علامة بيضاء منفصلًا.
والعلامة البيضاء الكاملة تنقل المسؤولية لا العلامة التجارية فحسب. فإذا كنت تؤهّل التجار وتحتفظ بأرصدتهم، فقد تحتاج إلى ترخيص MiCA خاص بك؛ أما استخدام نموذج التاجر الفرعي (sub-merchant) لدى بوابة مرخّصة فيُبقي هذا الالتزام على البوابة.
| النموذج | العلامة التجارية | من يؤهّل التجار | الثقل التنظيمي عليك |
|---|---|---|---|
| فاتورة مستضافة بشعارك | صفحة البوابة وشعارك | البوابة | منخفض |
| واجهة خاصة بك فوق API البوابة | لك بالكامل | البوابة، لكل حساب تاجر | من منخفض إلى متوسط |
| منصة بعلامة بيضاء | لك بالكامل، مع لوحة تحكم خاصة | أنت | مرتفع، وقد يتطلب ترخيص CASP |
كيف تربط واجهات API لبوابات العملات المشفّرة عبر OrsunPay
يوحّد OrsunPay حالات بوابات العملات المشفّرة وwebhooks والمبالغ المستردة في API واحدة إلى جانب مزوّدي البطاقات والمدفوعات المصرفية لديك، باستخدام حسابات البوابات الخاصة بك. وهو لا يحتفظ بالعملات المشفّرة ولا ينفّذ الصرف من رصيده؛ بل يوجّه الطلبات إلى البوابة التي تختارها ويعيد أحداثًا موقّعة منزوعة التكرار.
كيف تدمج واجهة API لبوابة دفع بالعملات المشفّرة
- افتح حسابات تجريبية أنشئ حسابين، تجريبيًا وإنتاجيًا، لدى البوابة، وولّد مفاتيح API منفصلة للفواتير والصرف، واضبط السر الخاص بـ IPN.
- حوّل الحالات ترجم حالات البوابة إلى حالاتك الداخلية وحدّد الحالة التي تفرج عن البضاعة.
- أنشئ الفواتير بطريقة idempotent أرسل المبلغ بالعملة الورقية والعملة ومرجع الطلب وعنوان callback؛ وابحث بالمرجع قبل إعادة محاولة استدعاء انتهت مهلته.
- تحقق من الإشعارات افحص التوقيع، وأعد جلب الفاتورة من API، وعالج الحدث مرة واحدة.
- عالج الحالات الحدّية نفّذ مسارات التسامح والاستكمال والاسترداد وانتهاء الصلاحية، واختبر كلًا منها في البيئة التجريبية.
- طابق التسويات خزّن هاش المعاملة وسعر الصرف والرسم لكل فاتورة وطابق دفعات الصرف مع الطلبات يوميًا.
الأسئلة الشائعة
ما واجهة API لبوابة الدفع بالعملات المشفّرة؟
هي مجموعة نقاط نهاية HTTP وwebhooks تتيح لبرمجياتك إنشاء فواتير بالعملات المشفّرة وتلقي تحديثات حالة الدفع وإرسال المبالغ المستردة أو الصرف. وتتولى البوابة العناوين ومراقبة البلوكتشين والتحويل والامتثال.
ما بوابة الدفع بالعملات المشفّرة ذات العلامة البيضاء؟
هي منتج بوابة تقدّمه تحت علامتك التجارية، من شعار على الصفحة المستضافة إلى منصة كاملة بلوحة تحكم خاصة بك. وكلما كانت العلامة البيضاء أعمق، زادت مسؤوليات التأهيل والتنظيم التي تتحملها.
كم تأكيدًا ينبغي أن أنتظر؟
دع البوابة تقرر وتصرّف وفق حالتها النهائية «مدفوعة». تحدد البوابات حدود التأكيد لكل شبكة ومبلغ، موازِنةً بين السرعة ومخاطر إعادة تنظيم الكتلة.
كيف أتحقق من webhook دفعة بالعملات المشفّرة؟
افحص التوقيع أو الرمز الذي تقدمه البوابة، ثم اجلب الفاتورة من API وتصرّف وفق تلك الاستجابة. عالج كل حدث مرة واحدة وأعد HTTP 200 بسرعة.
هل يمكنني بناء بوابة دفع بالعملات المشفّرة خاصة بي؟
يمكنك تشغيل العقد واشتقاق العناوين بنفسك، لكن تحويل العملات المشفّرة أو حفظها أو نقلها للآخرين يجعلك مزوّد خدمات أصول مشفّرة بموجب MiCA. ولذلك تستخدم معظم المنصات API بوابة مرخّصة بدلًا من ذلك.
هل تقدم بوابات العملات المشفّرة بيئة تجريبية؟
معظمها يفعل. فمثلًا توفّر CoinGate وNOWPayments بيئات sandbox ببيانات اعتماد اختبارية لتجري مسار الفاتورة والـ callback كاملًا دون أموال حقيقية.
اكتشف OrsunPay
تحدث إلى فريقناالمصادر
- CoinGate developer documentation: order statuses
- EUR-Lex: Regulation (EU) 2023/1113 on information accompanying transfers of funds and crypto-assets
- EUR-Lex: Regulation (EU) 2023/1114 on markets in crypto-assets (MiCA)
- Plisio: pricing