
الدليل التقني الشامل لتشغيل Vodafone Cash API عبر Whats360: أتمتة الدفع وأوامر USSD برمجياً
بوابة VCash Gateway للمطورين وأصحاب المتاجر
إذا كنت تبني متجرًا إلكترونيًا أو نظام SaaS أو CRM أو منصة تحتاج إلى التعامل برمجيًا مع مدفوعات Vodafone Cash، فإن الفكرة الأساسية في VCash Gateway هي تحويل هاتف Android إلى نقطة اتصال يمكن لنظامك البرمجي التعامل معها من خلال واجهة REST API.
يعتمد المسار على تطبيق VCash Gateway، وربط الجهاز بمنصة Whats360، ثم استخدام واجهات API لإدارة الأجهزة وإرسال SMS وتنفيذ أوامر USSD والاستعلام عن الرصيد وسجل المعاملات.
أتمتة المدفوعات عبر المحافظ الإلكترونية لا تتعلق فقط بإرسال أمر USSD أو قراءة رسالة SMS. التحدي الحقيقي يبدأ عندما تريد تحويل حدث مالي يصل إلى هاتف فعلي إلى بيانات منظمة يمكن لنظامك البرمجي التعامل معها، ثم ربط هذه البيانات بطلب داخل المتجر أو حساب عميل أو عملية محاسبية.
هذا هو الدور الذي يوضحه هذا الدليل في منظومة VCash Gateway التابعة لـ Whats360. فبدلاً من أن يتعامل الموظف مع كل رسالة تحويل يدويًا، يمكن بناء تدفق تقني يبدأ من رسالة المحفظة على الهاتف، ثم تمريرها إلى طبقة التحليل، واستخراج بيانات العملية، ثم استخدامها داخل النظام الخاص بك وفق منطق العمل الذي تحدده.
VCash API هو مجموعة واجهات REST API مرتبطة ببوابة VCash Gateway، وتستخدم Bearer Token للمصادقة، وتوفر نقاط اتصال لإدارة الأجهزة، وإرسال SMS، وتنفيذ أوامر USSD، والاستعلام عن الرصيد، والوصول إلى سجل المعاملات. ويعتمد التشغيل الفعلي للبوابة على جهاز Android متصل بالخدمة وتطبيق Gateway مهيأ بالصلاحيات المطلوبة.
ما هي فكرة VCash Gateway؟
الفكرة الهندسية بسيطة في شكلها، لكنها تتكون من عدة طبقات مترابطة. يوجد هاتف Android يعمل عليه تطبيق VCash Gateway، ويوجد اتصال بين التطبيق ومنصة Whats360، بينما يتعامل نظامك الخارجي مع واجهة REST API.
بهذا الشكل يصبح الهاتف طبقة تنفيذ ميدانية، بينما تعمل منصة Whats360 كطبقة إدارة وربط، ويصبح تطبيقك أو متجرك هو المستهلك البرمجي للبيانات والأوامر.
التدفق المنطقي للبيانات
- هاتف Android يحتوي على تطبيق VCash Gateway.
- شبكة الاتصالات تستقبل رسائل SMS أو تنفذ أوامر USSD.
- تطبيق Gateway يتعامل مع الصلاحيات المطلوبة.
- تصل البيانات إلى طبقة Whats360 السحابية.
- يستطيع النظام الخارجي استدعاء VCash API باستخدام Bearer Token.
- يمكن استخدام بيانات المعاملة داخل المتجر أو النظام الداخلي وفق منطق التطبيق.
لماذا يحتاج النظام إلى هاتف Android؟
الفرق الأساسي بين هذا النوع من البنية وبين API سحابية خالصة هو أن بعض العمليات تعتمد على موارد الهاتف وشريحة الاتصال نفسها. فتنفيذ USSD أو استقبال SMS من رقم محمول يتطلب وجود جهاز قادر على الوصول إلى شبكة الاتصالات والشريحة.
لذلك لا ينبغي النظر إلى VCash Gateway على أنه مجرد عنوان API على الإنترنت. الـ API يمثل طبقة التحكم البرمجي، بينما الهاتف يمثل طبقة التنفيذ المرتبطة بشريحة الاتصال.
استقرار النظام يعتمد على اتصال الجهاز بالشبكة، وحالة الجهاز، وتوافر الشريحة، واستجابة شبكة الاتصالات لأوامر USSD. لذلك يجب تصميم النظام الخارجي بحيث يتعامل مع حالات التأخير أو عدم الاتصال بدلاً من افتراض أن كل طلب سيتم تنفيذه لحظيًا.
الصلاحيات المطلوبة داخل Android
يعتمد تطبيق VCash Gateway على مجموعة من الصلاحيات التي تمنحه القدرة على التعامل مع دورة التشغيل الخاصة بالرسائل وواجهات الهاتف. من أهم هذه الصلاحيات الرسائل والإشعارات وخدمة إمكانية الوصول Accessibility Service.
صلاحية الرسائل
تسمح هذه الطبقة للتطبيق بالتعامل مع رسائل SMS التي تصل إلى الهاتف وفق آلية التشغيل المعتمدة في البوابة. وتصبح هذه الصلاحية مهمة خصوصًا عند وصول إشعار تحويل من المحفظة.
لكن مجرد القدرة على قراءة الرسائل لا يعني أن كل رسالة يجب أن تتحول إلى معاملة. وهنا تأتي أهمية فلتر المرسل ومحرك استخراج البيانات.
صلاحية الإشعارات
الإشعارات جزء من منظومة التشغيل والمتابعة على الجهاز. وجود صلاحية الإشعارات يساعد التطبيق على التعامل مع الحالات التشغيلية التي تحتاج إلى عرضها للمستخدم على الهاتف.
Accessibility Service
خدمة إمكانية الوصول لها دور مختلف عن قراءة SMS. في سيناريوهات USSD التفاعلية، قد تظهر واجهة على الهاتف تحتاج إلى إدخال بيانات في مراحل متعددة. ووفق البنية الموضحة للـ Gateway، تستخدم الخدمة للتعامل مع واجهة USSD وإدخال رمز PIN في الموضع المخصص له.
رمز PIN الخاص بالمحفظة عنصر حساس للغاية. لا ينبغي وضعه داخل أكواد المصدر أو إرسال قيمته ضمن طلبات API أو تسجيله في ملفات Logs. يجب التعامل معه كسر تشغيلي منفصل، مع توفير إمكانية تعطيل التشغيل عند الاشتباه في فقدان الجهاز أو اختراقه.
فلتر المرسل ومحرك استخراج بيانات المعاملة
من أهم أجزاء المعمارية أن رسالة SMS الواردة لا يتم التعامل معها باعتبارها معاملة مالية لمجرد وصولها إلى الهاتف. توجد طبقة لتحديد الرسائل ذات الصلة اعتمادًا على اسم المرسل، ومن الأسماء المذكورة في بنية النظام VodafoneCA و vf-cash.
بعد تحديد الرسالة المناسبة، تأتي مرحلة تحليل النص. وهنا يمكن استخدام Regex لاستخراج البيانات التي يحتاج إليها النظام، مثل قيمة المبلغ ورقم الهاتف ومعرف العملية والاسم عندما تكون هذه البيانات موجودة في نص الرسالة بالشكل المتوقع.
Sender Filter يحدد الرسائل المرشحة للمعالجة، بينما Regex يحول النص غير المنظم إلى حقول منظمة يمكن للتطبيق التعامل معها. الفصل بين المرحلتين يقلل من احتمال تفسير رسائل غير مرتبطة بالمدفوعات على أنها معاملات مالية.
الحقول التي يمكن استخراجها
| الحقل | الدور |
|---|---|
| amount | قيمة المبلغ المستخرجة من نص الرسالة. |
| from_phone | رقم الهاتف المرتبط بالتحويل عندما يكون متاحًا في الرسالة. |
| txn_ref | معرف أو مرجع العملية. |
| name | اسم الطرف المرتبط بالعملية عندما يظهر في الرسالة. |
هذه الحقول يمكن أن تصبح أساسًا لطبقة تحقق داخل المتجر. على سبيل المثال، يمكن للنظام البحث عن طلب ينتظر الدفع، ومطابقة قيمة العملية مع القيمة المتوقعة، ثم استخدام معرف العملية لمنع معالجة نفس المعاملة أكثر من مرة.
هذه الأخيرة ليست وظيفة يجب افتراض أنها تحدث تلقائيًا داخل كل متجر؛ بل هي منطق أعمال يجب على المطور تصميمه في النظام الذي يستقبل البيانات.
المصادقة مع VCash API
تعتمد واجهات VCash API على Bearer Token في ترويسة Authorization. ويجب أن يحتفظ النظام بالتوكن في مكان آمن، وليس داخل JavaScript في الواجهة الأمامية أو داخل مستودع عام للكود.
عنوان الخدمة الأساسي هو:
https://whats360.live
وتكون صيغة الترويسة:
Authorization: Bearer WHATS360_API_TOKEN
استخدم معرفًا مثل WHATS360_API_TOKEN في أمثلة الكود. لا تضع التوكن الحقيقي داخل المقال أو المستودعات العامة أو ملفات الواجهة الأمامية. وفي بيئة الإنتاج يفضل تحميله من Secret أو Environment Variable مناسب للبنية التي تعمل عليها.
إدارة أجهزة VCash المتصلة
يوفر endpoint الأجهزة نقطة بداية مهمة قبل تنفيذ العمليات. فمن المنطقي أن يعرف النظام الأجهزة المتاحة وحالة الاتصال قبل إرسال أمر يعتمد على جهاز محدد.
طلب GET للأجهزة
curl -X GET "https://whats360.live/api/v1/vcash/devices" \ -H "Authorization: Bearer WHATS360_API_TOKEN" \ -H "Accept: application/json"
الاستدعاء هو:
GET /api/v1/vcash/devices
يمكن استخدام نتيجة هذا الاستدعاء لمعرفة الأجهزة التي يمكن للنظام التعامل معها، ثم اختيار device_id المناسب للطلبات التالية.
لا تجعل تطبيق المتجر يفترض أن device_id ثابت أو أن الجهاز متاح دائمًا. من الأفضل أن يحتوي منطق التكامل على طبقة للتحقق من الجهاز قبل العمليات التي تعتمد على الهاتف.
إرسال SMS عبر API
يمكن استخدام endpoint الخاص بإرسال SMS عندما يحتاج النظام إلى إرسال رسالة نصية من جهاز محدد. الطلب يحتاج إلى device_id ورقم المستلم ونص الرسالة ورقم الشريحة sim_slot.
صيغة الطلب
curl -X POST "https://whats360.live/api/v1/vcash/sms/send" \
-H "Authorization: Bearer WHATS360_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"device_id": "DEVICE_ID",
"recipient": "RECIPIENT_PHONE",
"message": "MESSAGE_TEXT",
"sim_slot": 1
}'
الـ endpoint المستخدم هو:
POST /api/v1/vcash/sms/send
يجب عدم اعتبار إرسال SMS دليلًا بحد ذاته على نجاح عملية مالية. SMS هو قناة اتصال، بينما إثبات الدفع يحتاج إلى منطق تحقق مناسب يعتمد على بيانات المعاملة.
تنفيذ أوامر USSD برمجياً
واجهة USSD هي الجزء الذي يمنح النظام قدرة أكبر على التفاعل مع خدمات الهاتف والمحفظة. يرسل النظام الأمر إلى جهاز محدد، ثم يتولى الهاتف تنفيذ الأمر عبر شريحة الاتصال.
في السيناريوهات البسيطة يمكن أن يكون الأمر مباشرًا، بينما قد تتطلب بعض الخدمات حوارًا متعدد المراحل. وهنا تظهر أهمية Accessibility Service في التعامل مع الواجهة التفاعلية على الهاتف.
استدعاء USSD API
curl -X POST "https://whats360.live/api/v1/vcash/ussd/execute" \
-H "Authorization: Bearer WHATS360_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"device_id": "DEVICE_ID",
"command": "USSD_COMMAND",
"sim_slot": 1
}'
الـ endpoint:
POST /api/v1/vcash/ussd/execute
الـ API يرسل الأمر إلى طبقة الجهاز، لكن التنفيذ الفعلي مرتبط بالشريحة وشبكة الهاتف وواجهة USSD. لذلك يجب التعامل مع العملية باعتبارها Workflow موزعًا بين السيرفر والهاتف وشبكة الاتصالات.
التعامل مع PIN في أوامر USSD
عندما تتطلب عملية USSD إدخال PIN، فإن أهم نقطة أمنية هي ألا يصبح الـ PIN جزءًا من السجل البرمجي العادي. وفق البنية الموضحة للـ Gateway، تقوم خدمة Accessibility بالتعامل مع نافذة الإدخال على الهاتف وحقن رمز PIN في الموضع المطلوب.
هذا يختلف عن وضع PIN داخل رسالة SMS أو تضمينه في طلب API كنص ظاهر. وفي تصميم آمن، يجب فصل بيانات الاعتماد الحساسة عن Payloads العادية، ومنع ظهورها في Logs أو رسائل الأخطاء أو أدوات مراقبة الطلبات.
مبدأ العزل
التطبيق الخارجي يرسل أمر USSD، بينما تظل آلية التعامل مع PIN ضمن طبقة الجهاز. لا تضع PIN الحقيقي في كود PHP أو Node.js أو Python، ولا في قاعدة بيانات الطلبات، ولا في سجل طلبات HTTP.
الاستعلام عن الرصيد
يقدم VCash API endpoint مخصصًا للاستعلام عن بيانات الرصيد المرتبطة بالجهاز. ويحتاج الطلب إلى device_id مع Bearer Token.
curl -G "https://whats360.live/api/v1/vcash/balance" \ -H "Authorization: Bearer WHATS360_API_TOKEN" \ -H "Accept: application/json" \ --data-urlencode "device_id=DEVICE_ID"
الـ endpoint هو:
GET /api/v1/vcash/balance
يمكن استخدام هذه الطبقة ضمن نظام مراقبة داخلي يساعد على معرفة حالة الرصيد قبل تنفيذ عمليات تحتاج إلى توفر رصيد مناسب، بحسب منطق التطبيق الذي يبنيه المطور.
الوصول إلى سجل المعاملات
من أكثر الواجهات أهمية للمتاجر والأنظمة المالية endpoint الخاص بالمعاملات. فهو يسمح بطلب سجل العمليات مع إمكانية استخدام device_id وtype وlimit وoffset كمعايير للطلب.
curl -G "https://whats360.live/api/v1/vcash/transactions" \ -H "Authorization: Bearer WHATS360_API_TOKEN" \ -H "Accept: application/json" \ --data-urlencode "device_id=DEVICE_ID" \ --data-urlencode "type=TRANSACTION_TYPE" \ --data-urlencode "limit=50" \ --data-urlencode "offset=0"
الـ endpoint:
GET /api/v1/vcash/transactions
هذه الواجهة مفيدة عندما يريد النظام الخارجي قراءة العمليات ومقارنتها بسجلاته الداخلية. ويجب على المطور وضع قواعد تمنع تكرار معالجة نفس المعاملة، خصوصًا عندما تكون المعاملة مرتبطة بتفعيل طلب أو تسليم منتج رقمي.
من الرسالة إلى الطلب المدفوع
يمكن بناء دورة تشغيل منطقية تبدأ برسالة SMS من المرسل المعتمد، ثم تمر عبر فلتر المرسل، ثم استخراج المبلغ ورقم الهاتف ومعرف العملية، ثم مطابقة البيانات مع طلب ينتظر الدفع، ثم تحديث حالة الطلب، ثم إرسال إشعار للعميل عبر قناة التواصل المناسبة.
هذا السيناريو يمثل منطق تكامل يمكن للمطور تنفيذه وفق بنية متجره وقواعده، وليس ادعاءً بأن كل خطوة تتم تلقائيًا دون إعداد من النظام الخارجي.
مصفوفة نقاط الاتصال الأساسية
| Method | Endpoint | الغرض |
|---|---|---|
| GET | /api/v1/vcash/devices | إدارة الأجهزة ومعرفة status. |
| POST | /api/v1/vcash/sms/send | إرسال SMS عبر الجهاز. |
| POST | /api/v1/vcash/ussd/execute | تنفيذ أوامر USSD. |
| GET | /api/v1/vcash/balance | الاستعلام عن الرصيد. |
| GET | /api/v1/vcash/transactions | قراءة سجل المعاملات. |
التعامل مع أخطاء API
أي تكامل حقيقي يحتاج إلى التعامل مع حالات الخطأ. أكواد الاستجابة الأساسية المذكورة في بنية VCash API هي 400 و401 و403 و404 و500.
| الكود | المعنى العام | التعامل البرمجي |
|---|---|---|
| 400 | طلب غير صحيح. | راجع الحقول والقيم المرسلة. |
| 401 | فشل المصادقة. | راجع Bearer Token. |
| 403 | الطلب غير مسموح به وفق حالة الصلاحيات أو الحدود المطبقة. | راجع صلاحية الحساب والعملية المطلوبة. |
| 404 | المورد غير موجود. | راجع endpoint أو device_id. |
| 500 | خطأ داخلي في الخادم. | تعامل مع الخطأ كحالة فشل مؤقتة وراجع سجل النظام قبل إعادة المحاولة. |
لماذا يجب الفصل بين الدفع والطلب؟
من الأخطاء الشائعة في تصميم أنظمة الدفع أن يعتبر المطور وصول رسالة معينة كافيًا لتغيير حالة الطلب مباشرة. التصميم الأكثر قابلية للتدقيق يفصل بين استقبال الحدث المالي وبين قرار تحديث الطلب.
يمكن أن تمر البيانات عبر طبقات منطقية مثل: استقبال الرسالة، تحديد المرسل، استخراج البيانات، التحقق من الحقول، البحث عن الطلب، مطابقة المبلغ، التحقق من عدم تكرار معرف العملية، ثم تنفيذ الإجراء التجاري.
عند فصل طبقة الدفع عن طبقة الطلب، يصبح من السهل تسجيل كل عملية ومراجعتها وإعادة معالجة الحالات التي تحتاج إلى تدخل، بدلًا من ربط حدث SMS مباشرة بإجراء تجاري لا يمكن التراجع عنه.
تصميم Workflow لأتمتة تأكيد الدفع
يمكن تحويل دورة التحقق من التحويل إلى Workflow متعدد المراحل. الفكرة ليست أن الذكاء الاصطناعي يجب أن يقرر ما إذا كانت العملية صحيحة، بل أن كل مرحلة تؤدي وظيفة واضحة ويمكن مراقبتها.
Vodafone Cash Verification Pipeline
- Input: رسالة SMS من مرسل معتمد.
- Extraction: استخراج البيانات المطلوبة باستخدام قواعد التحليل.
- Validation: مقارنة بيانات العملية بطلب ينتظر الدفع.
- Deduplication: منع معالجة معرف العملية نفسه أكثر من مرة.
- Action: تحديث حالة الطلب بعد اجتياز قواعد التحقق.
- Notification: إرسال إشعار للعميل من قناة التواصل المناسبة.
يمكن تنفيذ هذا النوع من العمليات برمجيًا باستخدام Backend تقليدي، أو يمكن تحويل أجزاء منه إلى Workflow عندما تكون المهمة متكررة ومكونة من عدة مراحل.
طبقة التنفيذ بالذكاء الاصطناعي وWorkflows
عندما تكون عملية التحقق والتنسيق بين الأنظمة متعددة الخطوات ومتكررة، يمكن دراسة تحويلها إلى Workflow باستخدام بيئة Beincode Workflows. القيمة هنا ليست في إضافة الذكاء الاصطناعي لمجرد وجوده، وإنما في تنظيم مراحل الإدخال والتحليل والتحقق والإجراء في مسار قابل لإعادة الاستخدام.
أين يدخل WhatsApp في دورة الدفع؟
بعد نجاح عملية التحقق داخل النظام، يمكن استخدام قناة WhatsApp لإرسال رسالة للعميل تفيد بتحديث حالة الطلب. وهنا يصبح الربط بين VCash Gateway وWhatsApp Automation مفيدًا في التجارة الإلكترونية.
الفكرة العملية هي أن نظام المتجر لا يحتاج إلى مطالبة الموظف بمراجعة كل تحويل ثم إرسال رسالة تأكيد يدويًا. إذا كانت قواعد النظام قد أكدت العملية، يمكن أن ينتقل التنفيذ إلى مرحلة الإشعار.
من الدفع إلى إشعار العميل
تسلسل منطقي قابل للتطبيق: VCash Gateway → استخراج المعاملة → مطابقة الطلب → تحديث الحالة → إرسال إشعار عبر WhatsApp. ويمكن تنفيذ طبقة التواصل باستخدام إمكانات Whats360 عندما تكون متطلبات المشروع متوافقة معها.
حماية PIN والتوكن
الأمان هنا ليس طبقة تجميلية تضاف بعد اكتمال النظام. وجود محفظة مالية يجعل حماية بيانات الاعتماد جزءًا من تصميم المعمارية نفسها.
هناك فرق بين API Token المستخدم للوصول إلى الخدمة وبين PIN الخاص بالمحفظة. الأول مفتاح مصادقة برمجي، والثاني رمز حساس مرتبط بالمحفظة. لا ينبغي دمجهما في نفس آلية التخزين أو تمريرهما عبر نفس السجلات.
- استخدم WHATS360_API_TOKEN كمعرف عام في الأكواد المنشورة.
- لا تضع التوكن الحقيقي داخل HTML أو JavaScript أو المستودعات العامة.
- لا تضع PIN الحقيقي داخل أمثلة cURL.
- لا تسجل PIN داخل Logs.
- لا تجعل واجهة Frontend تصل مباشرة إلى بيانات الاعتماد الحساسة.
- طبّق مبدأ أقل صلاحية ممكنة على كل طبقة من طبقات النظام.
Kill Switch وتعطيل الجهاز
وجود الهاتف كطبقة تنفيذ يعني أن فقدان الجهاز أو الاشتباه في مشكلة أمنية يجب أن يقابله إجراء سريع. لذلك تمثل إمكانية تعطيل الجهاز من لوحة التحكم طبقة مهمة في إدارة المخاطر التشغيلية.
Kill Switch
في حالة فقدان الهاتف أو الاشتباه في وصول غير مصرح به، يجب أن تكون الأولوية لإيقاف الجهاز عن تنفيذ العمليات قبل الانشغال بالتحليل. وجود آلية تعطيل فورية يقلل نافذة التعرض للمخاطر ويمنح المشغل وسيلة للتحكم في الجهاز من طبقة الإدارة.
كيف تبني تكاملًا قابلًا للتوسع؟
إذا كان المشروع صغيرًا، قد يبدأ التكامل باستدعاء واحد للتحقق من الأجهزة واستدعاء آخر لقراءة المعاملات. لكن عندما يزيد حجم العمليات، يصبح من الضروري فصل المكونات.
يمكن أن تتكون البنية من API Client، وطبقة Queue، وTransaction Processor، وOrder Matcher، وNotification Service، وAudit Log. هذا الفصل يساعد على التعامل مع حالات الفشل دون إيقاف بقية النظام.
طبقات مقترحة
متى تستخدم VCash API داخل مشروعك؟
يصبح هذا النوع من التكامل منطقيًا عندما يكون المشروع بحاجة فعلية إلى ربط عمليات الهاتف والمحفظة بمنطق برمجي. ومن أمثلة ذلك المتاجر التي تحتاج إلى معالجة المدفوعات محليًا، الأنظمة التي تحتاج إلى مراقبة المعاملات، والمنصات التي تحتاج إلى تنفيذ عمليات USSD من خلال جهاز محدد.
أما إذا كان المشروع يحتاج فقط إلى إرسال رسالة نصية أو إدارة محادثات العملاء، فقد لا تكون طبقة VCash هي الجزء الأساسي من البنية. اختيار الأداة يجب أن يبدأ من العملية المطلوبة وليس من اسم التقنية.
متى يكون التكامل مناسبًا؟
- عندما تحتاج إلى قراءة معاملات المحفظة برمجيًا.
- عندما تحتاج إلى تنفيذ أوامر USSD من نظام خارجي.
- عندما تريد ربط الدفع بحالة طلب داخل متجر أو SaaS.
- عندما تحتاج إلى إرسال SMS من جهاز محدد.
- عندما تريد بناء طبقة أتمتة تعتمد على جهاز Android متصل بالشريحة.
القيود التي يجب أن يعرفها المطور
المعمارية المعتمدة على Android تختلف عن API سحابية لا تعتمد على جهاز. ولذلك يجب أن تدخل حالة الجهاز والاتصال والشريحة في حسابات التصميم.
كما يجب أن يتعامل التطبيق مع حالات عدم توفر الجهاز، أو انقطاع الإنترنت، أو فشل أمر USSD، أو وصول رسالة لا تطابق نمط التحليل المتوقع. وجود Queue أو Retry Policy مناسب يمكن أن يساعد، لكن يجب عدم تنفيذ Retry أعمى للعمليات المالية دون تصميم يمنع تكرار العملية.
لا تجعل Retry سببًا في تكرار العملية
في الأنظمة المالية، إعادة إرسال الطلب تلقائيًا دون معرفة حالته السابقة قد يؤدي إلى تنفيذ عملية أكثر من مرة. لذلك يجب أن يكون لكل عملية معرف أو حالة يمكن استخدامها قبل إعادة التنفيذ.
اختبار التكامل قبل الإنتاج
يجب أن يبدأ التكامل ببيئة اختبار منفصلة عن الحساب التشغيلي الأساسي قدر الإمكان. الهدف هو اختبار كل طبقة منفردة قبل ربطها بعملية تجارية لا يمكن عكسها بسهولة.
- اختبار المصادقة باستخدام توكن مخصص للاختبار.
- اختبار اكتشاف الجهاز.
- اختبار إرسال SMS.
- اختبار تنفيذ USSD.
- اختبار قراءة الرصيد.
- اختبار قراءة المعاملات.
- اختبار رسائل المرسل المحدد.
- اختبار حالات Regex غير المطابقة.
- اختبار منع التكرار.
- اختبار تعطيل الجهاز.
دمج VCash مع المتاجر الإلكترونية
في متجر إلكتروني، لا ينبغي أن تكون عملية الدفع معزولة عن دورة الطلب. الهدف الحقيقي من التكامل هو تحويل بيانات المعاملة إلى قرار تجاري قابل للتتبع.
على سبيل المثال، يمكن أن يكون للطلب حالة “بانتظار الدفع”. عندما تصل المعاملة ويستخرج النظام المبلغ ومعرف العملية ورقم الهاتف، يبحث النظام عن الطلب المناسب. إذا تطابقت الشروط المحددة مسبقًا، يمكن تحديث حالة الطلب إلى الحالة المناسبة ثم تشغيل إجراءات ما بعد الدفع.
يمكن أن تشمل إجراءات ما بعد الدفع إرسال إشعار للعميل، أو إنشاء سجل محاسبي، أو إطلاق عملية تجهيز الطلب، بحسب طبيعة النظام.
الفكرة التجارية
القيمة ليست في قراءة رسالة Vodafone Cash بحد ذاتها، وإنما في تحويل الحدث المالي إلى عملية رقمية منظمة تقلل العمل اليدوي وتربط الدفع ببقية دورة العميل.
أسئلة شائعة حول Vodafone Cash API عبر Whats360
هل أحتاج إلى Root لتشغيل VCash Gateway؟
وفق آلية التشغيل الموضحة للبوابة، تعتمد على أذونات Android المطلوبة مثل الرسائل والإشعارات وخدمة Accessibility، ولا تستند الفكرة إلى Root أو كسر حماية الهاتف.
هل تتم معالجة جميع رسائل الهاتف؟
المنظومة تعتمد على فلتر المرسل لتحديد الرسائل التي يجب التعامل معها، ومن أمثلة المرسلين المذكورين VodafoneCA وvf-cash. الهدف هو عدم اعتبار الرسائل الأخرى معاملات مالية لمجرد وصولها إلى الجهاز.
كيف يتم استخراج بيانات التحويل؟
بعد تحديد الرسالة المناسبة بواسطة فلتر المرسل، يمكن لمحرك Regex تحليل نص الرسالة واستخراج الحقول التي يتوافق معها النمط، مثل المبلغ ورقم الهاتف ومعرف العملية والاسم عندما تكون البيانات موجودة في الرسالة.
هل يمكن تنفيذ USSD برمجيًا؟
نعم، توجد واجهة POST مخصصة لتنفيذ أوامر USSD، وتحتاج إلى device_id وcommand وsim_slot. التنفيذ النهائي يعتمد على الجهاز والشريحة وشبكة الاتصالات وواجهة USSD نفسها.
هل يمكن استخدام أكثر من شريحة؟
تتضمن طلبات SMS وUSSD معامل sim_slot، ما يسمح بتحديد الشريحة التي يستهدفها الطلب في الأجهزة التي تدعم أكثر من شريحة وفق إعداد الجهاز.
هل يمكن معرفة الرصيد عبر API؟
نعم، يوجد endpoint مخصص للرصيد ويستخدم device_id لتحديد الجهاز المطلوب الاستعلام عنه.
هل يمكن ربط النظام بالمتجر أو نظام الطلبات؟
نعم، يمكن بناء التكامل من خلال API بحيث يرسل النظام الخارجي الطلبات إلى الواجهة المناسبة، ثم يستقبل النتيجة ويعالجها وفق منطق التطبيق، مثل تحديث حالة الدفع أو تسجيل بيانات العملية أو إرسال إشعار للعميل.
هل يمكن استخدام API للرسائل الواردة؟
يعتمد ذلك على الوظائف المتاحة في إصدار النظام وطريقة التكامل المستخدمة. عند توفر Webhook أو آلية إشعارات مناسبة، يمكن للنظام الخارجي استقبال الأحداث ومعالجتها وربطها بسيناريوهات العمل المطلوبة.
ما أهمية device_id في التكامل؟
يعمل device_id كمعرف للجهاز الذي يجب أن ينفذ عليه الطلب. لذلك يجب على التطبيق الاحتفاظ بالمعرف الصحيح وربطه بالجهاز الفعلي المستخدم في تنفيذ العمليات، خصوصًا عند وجود أكثر من جهاز أو أكثر من شريحة.
اعتبارات مهمة قبل بناء التكامل
نجاح التكامل لا يعتمد على إرسال طلب HTTP فقط، وإنما يحتاج إلى تصميم دورة العمل بالكامل. يجب أن يعرف التطبيق متى يرسل الطلب، وما البيانات المطلوبة، وكيف يتعامل مع الاستجابة، وماذا يفعل في حالة الخطأ أو انتهاء المهلة أو عدم توفر الجهاز.
كما يجب عدم وضع مفاتيح الوصول أو رموز المصادقة الحقيقية داخل الواجهة الأمامية أو داخل كود JavaScript مكشوف. يجب التعامل مع بيانات الاعتماد باعتبارها معلومات سرية، وحفظها في الخادم أو في متغيرات بيئة آمنة عند بناء التكامل الفعلي.
تنبيه أمني
لا تضع API Key أو Token حقيقيًا داخل ملفات HTML أو JavaScript أو أمثلة منشورة للعامة. في الأمثلة البرمجية استخدم معرفات عامة مثل WHATS360_API_TOKEN بدلًا من بيانات الوصول الحقيقية.
التعامل مع الأخطاء والاستجابات
من الأفضل أن يتعامل التطبيق مع كل طلب باعتباره عملية يمكن أن تنجح أو تفشل. لذلك يجب تسجيل حالة الطلب، والتحقق من الاستجابة، والتأكد من أن الجهاز متاح قبل الاعتماد على النتيجة في تنفيذ عملية تجارية أخرى.
{
"device_id": "DEVICE_ID",
"status": "success",
"message": "Operation completed"
}
القيمة الفعلية للاستجابة تعتمد على endpoint المستخدم وبنية API والإصدار المتاح، لذلك يجب أن يعتمد التطبيق على التوثيق الفعلي للواجهة التي يتم استخدامها بدلًا من افتراض شكل موحد لجميع الطلبات.
بناء التكامل بصورة قابلة للتوسع
إذا كان الهدف هو ربط API مع متجر أو CRM أو نظام محاسبي، فمن الأفضل إنشاء طبقة تكامل مستقلة تتولى المصادقة، وإرسال الطلبات، والتحقق من الاستجابات، وتسجيل العمليات، وإدارة الأخطاء بدلًا من توزيع هذه الوظائف داخل أجزاء النظام المختلفة.
- فصل بيانات المصادقة عن واجهة المستخدم.
- تسجيل العمليات المهمة لمراجعتها لاحقًا.
- إدارة حالات فشل الاتصال وإعادة المحاولة عند الحاجة.
- ربط النتائج بمنطق الطلبات والفواتير والعملاء.
الخلاصة
توفر واجهات API وسيلة عملية لربط الأجهزة والعمليات المختلفة بالأنظمة البرمجية، سواء كان الهدف إرسال SMS أو تنفيذ USSD أو الاستعلام عن الرصيد أو إدارة الأجهزة. وتزداد قيمة التكامل عندما يتم ربط هذه العمليات بسير عمل واضح داخل المتجر أو نظام CRM أو النظام المالي.
الأهم هو بناء التكامل على أساس التوثيق الفعلي للواجهة، واستخدام معرفات الأجهزة الصحيحة، وحماية بيانات المصادقة، والتحقق من كل استجابة قبل اتخاذ إجراء تجاري بناءً عليها.
جاهز لتحويل API إلى أتمتة فعلية؟
إذا كان لديك متجر أو CRM أو نظام محاسبي وتحتاج إلى ربطه بخدمات الرسائل أو الأجهزة أو عمليات الدفع، يمكن تصميم سيناريو التكامل بحيث تنتقل البيانات بين الأنظمة بصورة منظمة وقابلة للتوسع.
الكلمات المفتاحية
WhatsApp API، Whats360، VCash API، SMS API، USSD API، إدارة الأجهزة، device_id، SIM slot، API integration، Webhook، أتمتة الدفع، ربط المتجر، ربط CRM، API للرسائل، تنفيذ USSD، الاستعلام عن الرصيد، تكامل الأنظمة، أتمتة العمليات.
الأسئلة الشائعة التي يجيب عنها المقال
ما هي API؟
هي واجهة برمجية تسمح لنظام برمجي بالتواصل مع نظام أو خدمة أخرى من خلال طلبات منظمة واستجابات يمكن للتطبيق معالجتها.
هل يمكن إرسال SMS باستخدام API؟
نعم، يمكن استخدام endpoint مخصص لإرسال SMS مع تحديد الجهاز والشريحة والبيانات المطلوبة وفق الواجهة المتاحة.
هل يمكن تنفيذ USSD من خلال API؟
نعم، توجد واجهة مخصصة لتنفيذ أوامر USSD، ويعتمد التنفيذ على الجهاز والشريحة وشبكة الاتصالات والخدمة المطلوبة.
هل يمكن استخدام أكثر من جهاز؟
يمكن تحديد الجهاز المطلوب من خلال device_id، وبذلك يستطيع النظام توجيه الطلب إلى الجهاز المقصود وفق إعدادات التكامل.
هل يمكن تحديد الشريحة المستخدمة؟
تتضمن طلبات SMS وUSSD معامل sim_slot، ويمكن استخدامه لتحديد الشريحة المستهدفة في الأجهزة التي تدعم أكثر من شريحة.
هل يمكن ربط API بالمتجر الإلكتروني؟
نعم، يمكن إنشاء طبقة تكامل تربط API بالمتجر لمعالجة العمليات وإرسال الإشعارات وتحديث البيانات وفق منطق النظام.
مقالات ذات صلة
دليل التكامل البرمجي وربط الأنظمة
هل لديك مشروع يحتاج إلى تكامل API؟
حدد النظام الذي تريد ربطه والعمليات التي تريد أتمتتها، ثم ابدأ بتصميم التكامل حول API وWebhook وسير العمل المناسب لمشروعك.
Vodafone Cash API عبر Whats360: أهم الأسئلة والكيانات التقنية
بعد استعراض طريقة تشغيل VCash Gateway وربط الهاتف بواجهات REST API،
يجمع هذا القسم أهم المصطلحات والأسئلة المرتبطة بتكامل Vodafone Cash
مع الأنظمة والمتاجر الإلكترونية، ليساعد المطور على الوصول إلى
المعلومة المناسبة وفهم العلاقة بين مكونات المنظومة التقنية.
ما هو Vodafone Cash API عبر Whats360؟
هو واجهة REST API مرتبطة بمنظومة VCash Gateway في Whats360، تسمح
بالتعامل برمجياً مع الجهاز المرتبط بالمحفظة لتنفيذ وظائف مثل إدارة
الأجهزة، إرسال SMS، تنفيذ أوامر USSD، والاستعلام عن الرصيد وسجل
المعاملات، باستخدام Bearer Token للمصادقة.
أسئلة البحث المرتبطة بـ Vodafone Cash API
كيف يتم ربط Vodafone Cash API مع Whats360؟
يبدأ التكامل بربط جهاز Android يعمل عليه VCash Gateway،
ثم استخدام بيانات المصادقة واستدعاء Endpoints الخاصة
بالأجهزة وSMS وUSSD والرصيد والمعاملات من النظام البرمجي.
ما هي Endpoints الخاصة بـ VCash API؟
تشمل الواجهات الأساسية إدارة الأجهزة، إرسال الرسائل،
تنفيذ أوامر USSD، الاستعلام عن الرصيد، واسترجاع سجل
المعاملات المالية.
كيف تتم المصادقة في VCash API؟
تعتمد واجهات API على Bearer Token يتم تمريره داخل ترويسة
Authorization عند إرسال طلبات REST API.
كيف يعمل VCash Gateway على Android؟
يعمل التطبيق كحلقة اتصال بين شريحة الهاتف والمنصة السحابية،
مع الاعتماد على صلاحيات Android اللازمة للتعامل مع الرسائل
والإشعارات وAccessibility Service في سيناريوهات USSD.
كيف يتم تنفيذ أوامر USSD برمجياً؟
يمكن إرسال أمر USSD من النظام الخارجي إلى Endpoint التنفيذ،
ليتم تمريره إلى الجهاز المحدد والشريحة المطلوبة وفق إعدادات
VCash Gateway.
ما دور Accessibility Service في أوامر USSD؟
تستخدم خدمة إمكانية الوصول للتعامل مع واجهة USSD التفاعلية
على الهاتف، بما في ذلك سيناريوهات إدخال رمز PIN عندما تكون
هذه الوظيفة مفعلة ومهيأة على الجهاز.
كيف يتم استخراج بيانات تحويل Vodafone Cash؟
يعتمد النظام على تحليل الرسائل الواردة من المرسلين المحددين
مثل VodafoneCA وvf-cash، ثم استخدام أنماط Regex لاستخراج
البيانات المطلوبة مثل المبلغ ورقم الهاتف ومعرف العملية
والاسم وفق صيغة الرسالة المعتمدة.
كيف يمكن أتمتة تأكيد تحويلات Vodafone Cash؟
يمكن بناء مسار آلي يبدأ باستقبال بيانات المعاملة، ثم تحليلها
ومطابقتها مع الطلب المعلق في المتجر، وبعد التحقق يمكن تحديث
حالة الطلب وإرسال إشعار للعميل عبر قناة الاتصال المناسبة.
هل يمكن ربط Vodafone Cash بمتجر إلكتروني؟
نعم، يمكن للنظام الخارجي استهلاك REST API وربط بيانات
المعاملات بمنطق الطلبات والدفع داخل متجر إلكتروني أو تطبيق
مخصص، بحسب معمارية النظام الذي يتم تطويره.
هل يحتاج VCash Gateway إلى Root؟
لا يعتمد تشغيل VCash Gateway على Root، وإنما على صلاحيات
Android المطلوبة للتعامل مع الرسائل والإشعارات وخدمة
Accessibility.
ما هي أكواد أخطاء VCash API الأساسية؟
تشمل حالات الأخطاء الأساسية 400 للطلب غير الصحيح، و401
لمشكلة المصادقة، و403 لحالة الرفض أو تجاوز الحد المسموح،
و404 للمورد غير الموجود، و500 لخطأ الخادم.
كيف يمكن الاستفادة من بيانات المعاملات في الأتمتة؟
يمكن استخدام بيانات المعاملة كمدخل إلى Workflow يربط بين
التحقق من الدفع وقاعدة بيانات المتجر وتحديث حالة الطلب ثم
إرسال إشعار للعميل.
الكيانات والمصطلحات التقنية المرتبطة بالمقال
المنصات والخدمات
تقنيات التكامل
البيانات والمعاملات
الكيانات المرتبطة بالرسائل
المفاهيم المرتبطة بالتكامل
يجمع تكامل Vodafone Cash عبر Whats360 بين عدة طبقات تقنية مترابطة:
Vodafone Cash كمصدر للمعاملات، و
VCash Gateway كحلقة اتصال على جهاز Android،
وSMS وUSSD كقنوات تشغيل، و
REST API كواجهة برمجية، و
Bearer Token للمصادقة، بينما يمكن استخدام
Regex لتحليل الرسائل واستخراج بيانات المعاملة
المطلوبة للأتمتة.
وعند ربط هذه المكونات بنظام متجر إلكتروني أو تطبيق مخصص، يصبح من
الممكن بناء مسار آلي لمعالجة بيانات الدفع وربطها بمنطق الطلبات
والإشعارات، مع إمكانية توسيع سير العمل باستخدام
AI Workflows عندما تكون هناك عملية متعددة المراحل
تستفيد فعلياً من الأتمتة.
مصطلحات البحث الأساسية
Vodafone Cash API، Whats360، VCash Gateway، ربط Vodafone Cash API،
أتمتة الدفع، تأكيد تحويلات Vodafone Cash،
أوامر USSD، إرسال SMS برمجياً، إدارة المعاملات، API للمطورين،
E-commerce Payment Automation، Payment Verification.







