خبرة developer

SMS API المغرب: الدليل الكامل للمطورين 2026

دليل تقني شامل لدمج واجهة برمجة تطبيقات الرسائل القصيرة في المغرب: بروتوكولات REST، وcURL، وNode.js، وPHP، وتوقيعات webhooks HMAC وإدارة الإنتاج.

SMS API المغرب: الدليل الكامل للمطورين 2026
محتويات هذا المقال
  1. هندسة التوجيه والبروتوكولات في المغرب
  2. المراقبة في الوقت الحقيقي ومعدلات الكمون
  3. التطبيع والتنسيق E.164 (+212)
  4. أرسل أولاً cURL وNode.js وPHP
  5. DLR Webhooks والتحقق من صحة التوقيع HMAC SHA256
  6. إدارة قائمة الانتظار واسترداد الأخطاء (تحديد المعدل)
  7. الامتثال لـ CNDP والاستضافة السيادية المحلية

هندسة التوجيه والبروتوكولات في المغرب

إن دمج واجهة برمجة تطبيقات SMS احترافية في المغرب لا يقتصر فقط على إطلاق طلب HTTP POST. وللسعي إلى إمكانية تسليم تزيد عن 99% على الشبكات الثلاث الرئيسية في المملكة (اتصالات المغرب، أورانج المغرب، إنوي)، يجب أن يعتمد محرك التوجيه على مسارات محلية مشروعة بمعرّفات مرسل مسجلة، دون المرور عبر المسارات الرمادية الدولية. يوضح هذا الدليل الفني تفاصيل تنفيذ التدفق المرن والقوي والمتوافق مع معايير B2B.

المراقبة في الوقت الحقيقي ومعدلات الكمون

توضح لوحة المعلومات أدناه أهمية التوجيه المحلي المشروع. توضح إحصائيات متوسط ​​زمن الوصول لكل ناقل أن التوجيه المحلي يبقي أوقات التسليم أقل بكثير من عتبة الأربع ثوانٍ الحرجة (عادةً ما بين 2.8 ثانية و3.9 ثانية)، وهو أمر حيوي لرموز المصادقة الثنائية (2FA) وتنبيهات المعاملات الهامة.

المراقبة في الوقت الحقيقي ومعدلات الكمون

التطبيع والتنسيق E.164 (+212)

قبل إرسال طلب إلى واجهة برمجة التطبيقات (API)، يجب على خوادمك التحقق من صحة رقم هاتف المستلم وتطهيره بشكل صارم. التنسيق المطلوب هو المعيار الدولي E.164. بالنسبة للمغرب، يجب أن تبدأ جميع الأرقام برمز البلد +212، متبوعًا برقم الهاتف المحمول بدون الحرف الأول 0. على سبيل المثال، الرقم المحلي "0612345678" يصبح "+212612345678". يؤدي إرسال أرقام منسقة بشكل غير صحيح أو خطوط أرضية غير متوافقة إلى حدوث خطأ فوري قدره 400 طلب سيئ لتجنب إضاعة أرصدة وقت البث الخاصة بك.

أرسل أولاً cURL وNode.js وPHP

للبدء بسرعة، توفر واجهة برمجة التطبيقات EnvoiSMS.ma نقطة نهاية RESTful نظيفة. فيما يلي التطبيقات القياسية الموصى بها لتطبيقاتك.

// Exemple 1 : Requête cURL curl -X POST https://api.envoisms.ma/v1/messages \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": "+212612345678", "body": "Votre code de sécurité EnvoiSMS est 849301", "sender": "EnvoiSMS" }'
// Exemple 2 : Intégration en Node.js (Axios) const axios = require('axios'); async function sendSMS() { try { const response = await axios.post('https://api.envoisms.ma/v1/messages', { to: '+212612345678', body: 'Votre code de sécurité EnvoiSMS est 849301', sender: 'EnvoiSMS' }, { headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' } }); console.log('Message ID:', response.data.id); } catch (error) { console.error('Erreur d\'envoi:', error.response.data); } } sendSMS();
// Exemple 3 : Intégration en PHP (cURL natif) <?php $ch = curl_init('https://api.envoisms.ma/v1/messages'); $payload = json_encode([ "to" => "+212612345678", "body" => "Votre code de sécurité EnvoiSMS est 849301", "sender" => "EnvoiSMS" ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json' ]); $response = curl_exec($ch); if (curl_errno($ch)) { echo 'Erreur : ' . curl_error($ch); } else { $result = json_decode($response, true); echo 'Message ID : ' . $result['id']; } curl_close($ch); ?>

DLR Webhooks والتحقق من صحة التوقيع HMAC SHA256

لتتبع دورة حياة رسائلك دون زيادة تحميل واجهة برمجة التطبيقات (API) بالطلبات المتكررة (الاقتراع)، يجب عليك تكوين خطاف ويب في وحدة التحكم الإدارية الخاصة بك. في كل مرة تتغير حالة الرسالة (تم التسليم، تم التسليم، فشلت)، ترسل بوابتنا حمولة JSON إلى الخادم الخاص بك. لتأمين نقطة النهاية هذه ضد هجمات سرقة الهوية، يقوم EnvoiSMS.ma بتوقيع كل حمولة بمفتاح سري مشترك. يجب أن يتحقق الخادم الخاص بك من صحة التوقيع الموجود في رأس HTTP "X-EnvoiSMS-Signature" عن طريق إعادة حساب HMAC-SHA256 لنص الطلب.

// Validation de signature en Node.js (Express) const crypto = require('crypto'); const express = require('express'); const app = express(); const WEBHOOK_SECRET = 'votre_cle_secrete_partagee'; app.post('/webhook/envoisms', express.raw({ type: 'application/json' }), (req, res) => { const signature = req.headers['x-envoisms-signature']; const payload = req.body.toString(); const computedSignature = crypto .createHmac('sha256', WEBHOOK_SECRET) .update(payload) .digest('hex'); if (computedSignature !== signature) { return res.status(401).send('Signature invalide.'); } const event = JSON.parse(payload); console.log(`Statut du message ${event.messageId} : ${event.status}`); res.status(200).send('Reçu.'); }); app.listen(3000);

إدارة قائمة الانتظار واسترداد الأخطاء (تحديد المعدل)

في مرحلة الإنتاج، قد تواجه خدماتك ذروات حركة مرور كثيفة أو عدم توفر مؤقت لبوابات المشغل. تطبق واجهة برمجة تطبيقات EnvoiSMS حدًا للسعر لكل رمز مميز للحفاظ على استقرار الخدمة. لتجنب خسائر الطلبات، قم بتنفيذ قائمة انتظار الرسائل (على سبيل المثال مع Redis وBullMQ في Node.js، أو قوائم انتظار RabbitMQ في PHP) وقم بتطبيق خوارزمية إعادة المحاولة الأسية (التراجع) مع الارتعاش العشوائي لتوزيع الحمل على المحاولات اللاحقة.

الامتثال لـ CNDP والاستضافة السيادية المحلية

تشكل معالجة أرقام الهواتف تلاعبا بالبيانات الشخصية الخاضعة للقانون 09-08 في المغرب. يضمن EnvoiSMS.ma الامتثال الكامل من خلال تشفير جميع بيانات المشتركين أثناء النقل (TLS 1.3) وفي حالة عدم النشاط (AES-256)، ومن خلال ضمان الاستضافة المحلية السيادية. يجب أن توفر جميع الاتصالات التسويقية أيضًا وسيلة لإلغاء الاشتراك (إلغاء الاشتراك عبر STOP SMS) للامتثال لمتطلبات CNDP.

لماذا تختار EnvoiSMS لشركتك؟

التوصيل نحو المشغلين

مسارات محلية نحو اتصالات المغرب وأورنج وإنوي، مع تحويل تلقائي بين المسارات وإرسال حالة التسليم عبر webhook.

تحسين الميزانية

واجهة برمجة تطبيقات WhatsApp Business ابتداءً من 0.65 درهم لكل رسالة. أفضل عائد على الاستثمار.

سيادة البيانات (CNDP)

استضافة ومعالجة متوافقة تماماً مع لوائح حماية المعطيات ذات الطابع الشخصي CNDP.

ما هو متوسط ​​زمن الوصول لتسليم رمز OTP مع واجهة برمجة التطبيقات؟
عبر مساراتنا المحلية نحو اتصالات المغرب وOrange وInwi، فإن وقت تسليم الرسائل النصية القصيرة لمرة واحدة (OTP) عادة ما يكون أقل من 4 ثوانٍ.
كيفية التحقق من صحة توقيعات webhook في الإنتاج؟
استخدم رأس X-SendSMS-Signature وأعد حساب تجزئة HMAC-SHA256 للنص الأولي للطلب (Raw Body) باستخدام مفتاحك السري للتحقق من صحته.
هل هناك صندوق رمل مجاني؟
نعم، يوفر EnvoiSMS مفاتيح اختبار Sandbox مجانية تحاكي تمامًا سلوك واجهة برمجة التطبيقات (API) وخطافات الويب دون خصم رصيدك.

مقالات مقترحة

Inbound Webhooks: ربط إعلانات تيك توك وفيسبوك مباشرة مع واتساب للتأهيل الفوري
developer

Inbound Webhooks: ربط إعلانات تيك توك وفيسبوك مباشرة مع واتساب للتأهيل الفوري

WhatsApp Flows: استمارات تفاعلية أصلية داخل المحادثة لتأكيد طلبيات الدفع عند الاستلام بالمغرب
developer

WhatsApp Flows: استمارات تفاعلية أصلية داخل المحادثة لتأكيد طلبيات الدفع عند الاستلام بالمغرب

Laravel SMS Morocco: قناة الإشعارات والبرامج التعليمية
developer

Laravel SMS Morocco: قناة الإشعارات والبرامج التعليمية