انتقل إلى المحتوى
WbizTool

أرسل رسائل WhatsApp باستخدام PHP

أرسل نصوص WhatsApp وصورًا وملفات من موقعك أو تطبيقك المكتوب بـ PHP، من رقمك الخاص المربوط بـ WbizTool مثل WhatsApp Web. كل ما تحتاج إليه هو امتداد cURL في PHP وطلب POST واحد إلى نقطة نهاية موثّقة.

فترة تجريبية مجانية: 50 رسالة خلال أي 30 يومًا، دون بطاقة.

كيف يعمل

  1. احصل على مفتاح API واربط رقمك

    سجّل، ثم اربط رقم WhatsApp الخاص بك في صفحة أرقام WhatsApp برمز QR أو رمز الربط، مثل WhatsApp Web. في الإعدادات ← مفاتيح API، أنشئ مفتاحًا وانسخ Client ID (يوضح دليل مفاتيح API أدناه مكانه). المعرّف الظاهر على بطاقة الرقم (مثل ID 678) هو whatsapp_client الخاص بك.

  2. كوّن الطلب

    ضع client_id وapi_key وwhatsapp_client ورقم الهاتف وmsg في مصفوفة. أرسلها بصيغة JSON بامتداد cURL في PHP – أو بأي عميل HTTP تستخدمه بالفعل، بالحقول نفسها.

  3. أرسل الرسالة

    أرسلها بطلب POST إلى https://wbiztool.com/api/v1/send_msg/. الرد الذي يحتوي على "status": 1 وmsg_id يعني أن الرسالة أُضيفت إلى قائمة الانتظار على رقمك.

  4. تحقّق من أنها أُرسلت

    مرّر رابط webhook لتُبلَّغ عند إرسال الرسالة أو فشلها، أو اسأل نقطة النهاية «حالة الرسالة» مع msg_id.

أمثلة شيفرة PHP

إرسال نص
<?php
$payload = [
    'client_id'       => 12345,
    'api_key'         => 'YOUR_API_KEY',
    'whatsapp_client' => 678,
    'msg_type'        => 0,
    'country_code'    => '91',
    'phone'           => '9876543210',
    'msg'             => 'Hi Aman, your order #4821 has shipped and will arrive on Thursday.',
];

$ch = curl_init('https://wbiztool.com/api/v1/send_msg/');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode($payload),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);

if (($result['status'] ?? 0) === 1) {
    echo 'Queued with msg_id ' . $result['msg_id'];
} else {
    echo 'Failed: ' . ($result['message'] ?? 'no response');
}
الرد
{"status": 1, "message": "Created", "msg_id": 9817263}
إرسال صورة من رابط
<?php
$ch = curl_init('https://wbiztool.com/api/v1/send_msg/');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'client_id'       => 12345,
        'api_key'         => 'YOUR_API_KEY',
        'whatsapp_client' => 678,
        'msg_type'        => 1,
        'country_code'    => '91',
        'phone'           => '9876543210',
        'img_url'         => 'https://example.com/offers/diwali-sale.jpg',
        'msg'             => 'Our Diwali sale starts today 🎉',
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch);
curl_close($ch);
إرسال ملف PDF (رفع ملف)
<?php
$ch = curl_init('https://wbiztool.com/api/v1/send_msg/');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    // An array body (not json_encode) makes cURL send multipart/form-data.
    CURLOPT_POSTFIELDS     => [
        'client_id'       => 12345,
        'api_key'         => 'YOUR_API_KEY',
        'whatsapp_client' => 678,
        'msg_type'        => 2,
        'country_code'    => '91',
        'phone'           => '9876543210',
        'msg'             => 'Your invoice for order #4821 is attached.',
        'file_name'       => 'invoice-4821.pdf',
        'file'            => new CURLFile('/path/to/invoice-4821.pdf', 'application/pdf', 'invoice-4821.pdf'),
    ],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 120,
]);
echo curl_exec($ch);
curl_close($ch);
جدولة رسالة
<?php
$payload = [
    'client_id'       => 12345,
    'api_key'         => 'YOUR_API_KEY',
    'whatsapp_client' => 678,
    'msg_type'        => 0,
    'country_code'    => '91',
    'phone'           => '9876543210',
    'msg'             => 'Hi Aman, a reminder that your appointment is today at 11:30 AM.',
    'date'            => '24/12/2026',
    'time'            => '09:00',
    'timezone'        => 'Asia/Kolkata',
];

$ch = curl_init('https://wbiztool.com/api/v1/schedule_msg/');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode($payload),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);

if (($result['status'] ?? 0) === 1) {
    echo 'Scheduled with msg_id ' . $result['msg_id'];
} else {
    echo 'Failed: ' . ($result['message'] ?? 'no message in response');
}
التحقق من حالة الرسالة
<?php
$msgId = 9817263;
$payload = [
    'client_id' => 12345,
    'api_key'   => 'YOUR_API_KEY',
];

$ch = curl_init("https://wbiztool.com/api/v1/message/status/{$msgId}/");
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode($payload),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);

if (($result['message'] ?? '') === 'Unknown message id') {
    echo 'No message with this ID in your workspace';
} elseif (!isset($result['status_text'])) {
    echo 'Request failed: ' . ($result['message'] ?? 'no message in response');
} elseif ($result['status'] === 1) {
    echo 'Sent';
} elseif ($result['status'] === 2) {
    echo 'Failed: ' . $result['error'];
} else {
    echo 'Status: ' . $result['status_text'];
}
استقبال webhook الحالة
<?php
// webhook.php – WbizTool posts form fields, so they arrive in $_POST.
$msgId  = $_POST['msg_id'] ?? '';
$status = $_POST['status'] ?? ''; // SENT, FAILED, CANCELLED or EXPIRED
error_log("WbizTool message $msgId: $status");
http_response_code(200);

ما يمكنك فعله

  • لا مكتبة لتثبيتها

    لا تستخدم الأمثلة إلا امتداد cURL في PHP. يقبل API ‏JSON أو حقول نموذج أو بيانات نموذج multipart عند رفع ملف.

  • نصوص وصور وملفات

    اضبط msg_type على 0 للنص، أو 1 للصورة، أو 2 للملف. أعطِ img_url أو file_url عامًا، أو ارفع الملف باستخدام CURLFile.

  • الجدولة لوقت لاحق

    أرسل POST إلى /api/v1/schedule_msg/ مع date (dd/mm/yyyy) وtime (HH:MM) وtimezone مثل Asia/Kolkata أو America/New_York.

  • Webhooks لكل حالة

    مرّر webhook وسيتلقى السكربت طلب POST بترميز النموذج – اقرأ $_POST['msg_id'] و$_POST['status'] ‏(SENT أو FAILED أو CANCELLED أو EXPIRED).

  • تستخدم WordPress؟ استخدم الإضافة

    ترسل إضافة WbizTool لـ WordPress رسائل WhatsApp لطلبات WooCommerce وحجوزات WP Amelia ونماذج Contact Form 7 دون برمجة.

من المفيد معرفته

  • "status": 1 يعني أن الرسالة أُضيفت إلى قائمة الانتظار، لا أنها سُلّمت. «مُرسَلة» هي حالة النجاح النهائية؛ ولا يُبلغ API عما إذا كانت الرسالة قد سُلّمت أو قُرئت.
  • تعود أخطاء «إرسال رسالة» مع HTTP 400 (و429 عند بلوغ الحد اليومي)؛ أما أخطاء «جدولة رسالة» فتعود عادةً مع HTTP 200 و"status": 0، لذا فكّ ترميز الجسم دائمًا وتحقّق من status.
  • لرفع ملف، مرّر مصفوفة إلى CURLOPT_POSTFIELDS، لا json_encode، ليرسل cURL ‏multipart/form-data مع الملف في حقل اسمه file.
  • احتفظ بمفتاح API على خادمك، مثلًا في متغير بيئة. يمكن لأي شخص يملكه أن يرسل من أرقامك، فلا تضعه أبدًا في JavaScript المتصفح أو في تطبيق جوال أو في شيفرة تنشرها.
  • تتضمن الفترة التجريبية المجانية 50 رسالة خلال أي 30 يومًا ورقمًا واحدًا، دون بطاقة. تبدأ الباقات المدفوعة من $25 شهريًا في الولايات المتحدة (سعرك في صفحة الأسعار) وترسل رسائل غير محدودة في إطار الاستخدام العادل: حتى 1,000 رسالة يوميًا لكل رقم.
  • تُرسل الرسائل من رقم WhatsApp الخاص بك، لذا تنطبق قواعد WhatsApp نفسها: راسل من يتوقعون رسائلك.

أسئلة

هل توجد SDK لـ PHP؟
لا توجد حزمة PHP رسمية، ولا تحتاج إليها: كل استدعاء هو طلب POST واحد بامتداد cURL، كما هو موضح أعلاه. يعمل أي عميل HTTP في PHP بالرابط والحقول نفسها.
كيف أرسل فاتورة PDF من PHP؟
استخدم msg_type بالقيمة 2. إما أن تعطي file_url عامًا، أو ترفع الملف باستخدام new CURLFile(...) في حقل اسمه file. اضبط file_name مع امتداده، مثل invoice-4821.pdf.
كيف أعرف أن الرسالة أُرسلت؟
الرد الذي يحتوي على "status": 1 وmsg_id يعني أنها في قائمة الانتظار. مرّر رابط webhook لتتلقى POST مع SENT أو FAILED أو CANCELLED أو EXPIRED، أو استدعِ نقطة النهاية «حالة الرسالة» مع msg_id. «مُرسَلة» هي الحالة النهائية: لا يُبلغ API عن التسليم أو القراءة.
ما صيغة رقم الهاتف التي يجب أن أرسلها؟
أرسل الرقم مع رمز الدولة (919876543210)، أو دونه (9876543210) مع country_code ‏(91). تُحذف المسافات و+ والشرطات والأقواس تلقائيًا، فيعمل ‎+91 98765-43210 أيضًا.
هل أحتاج إلى WhatsApp Business API أو موافقة Meta؟
لا. يرسل WbizTool من رقم WhatsApp أو WhatsApp Business الخاص بك، المربوط مثل WhatsApp Web. لا توجد موافقة من Meta، ولا قوالب رسائل تحتاج إلى اعتماد.
هل هناك تكلفة على كل رسالة؟
لا. تتضمن الفترة التجريبية المجانية 50 رسالة خلال أي 30 يومًا. ترسل الباقات المدفوعة رسائل غير محدودة في إطار الاستخدام العادل، حتى 1,000 رسالة يوميًا لكل رقم: Lite بسعر $25، وStandard بسعر $59، وAdvanced بسعر $149 شهريًا في الولايات المتحدة؛ وتعرض صفحة الأسعار سعر بلدك.

اقرأ الأدلة

ذات صلة

أرسل أول رسالة WhatsApp تلقائية اليوم

أنشئ حسابًا، وامسح رمز QR، وأرسل رسالة في أقل من خمس دقائق.

ابدأ مجانًا

تبدأ الباقات المدفوعة من $25 شهريًا في الولايات المتحدة. الأسعار