Files
musadaq-saas/app/Services/WhatsAppProxyService.php
2026-05-06 03:16:32 +03:00

79 lines
2.3 KiB
PHP

<?php
namespace App\Services;
/**
* WhatsApp Proxy Service
*
* Used to send WhatsApp messages (like OTPs) via Intaleq proxy bots.
*/
class WhatsAppProxyService
{
/**
* قائمة السيرفرات المتاحة
*/
private array $servers = [
//"https://botmasa.intaleq.xyz/send", // mayar
//"https://botmasa2.intaleq.xyz/send", // shad
//"https://bootride.intaleq.xyz/send", // ramat bus
// "https://bot3.intaleq.xyz/send", // shahd
"https://bot5.intaleq.xyz/send", // bot5 from postman
//"https://whatsapp.tripz-egypt.com/send" // tripz
];
/**
* إرسال رسالة واتساب
*
* @param string $to رقم الهاتف
* @param string $message نص الرسالة
* @return bool نجاح الإرسال
*/
public function sendMessage(string $to, string $message): array
{
if (empty($this->servers)) {
return ['success' => false, 'error' => 'No servers available.'];
}
// اختيار سيرفر عشوائي من القائمة المتاحة لتوزيع الحمل
$url = $this->servers[array_rand($this->servers)];
$payload = [
"to" => $to,
"message" => [
"text" => $message
]
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
CURLOPT_TIMEOUT => 15, // مهلة 15 ثانية للطلب
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
return ['success' => false, 'error' => $err, 'url' => $url];
}
$responseData = json_decode($response, true);
$isSuccess = isset($responseData['success']) && $responseData['success'] === true;
return [
'success' => $isSuccess,
'response' => $responseData,
'raw_response' => $response,
'url' => $url,
'payload' => $payload
];
}
}