#61022790 · 15 Feb 2024, 00:45 · · პროფილი · პირადი მიმოწერა · ჩატი
გამარჯობათ.ვმუშაობ ერთ-ერთ კომპანიაში დეველოპერად.გვაქვს სმს-ების გაგზავნის აპი.ამჟამად უკან გვიბრუნდება მიუვიდა თუ არა შეტყობინება.ერთი არის მიუვიდა და მეორე SMSC.როგორც ვიცი smsc 24 საათის მანძლზე ამოწმებს მიუვიდა თუ არა სმს და შემდეგ გვიბრუნებს რომ არ მიუვიდა სმს.მაგრამ ვერ გავერკვიე 24 საათის შემდეგ როგორ გავიგო აპიში საბოლოო პასუხი რომ არ მისვლია სმს.ვაგდებ ჩემს სკრიპტს.<?php $username = "test"; $password = "test123"; $client_id = "123"; $service_id = "1"; $to = "995555555555"; // Subscriber MSISDN $text = "Test message"; // functi0n to send the message functi0n sendMessage($username, $password, $client_id, $service_id, $to, $text) { $url = "http://81.95.160.47/mt/oneway"; $params = [ 'username' => $username, 'password' => $password, 'client_id' => $client_id, 'service_id' => $service_id, 'to' => $to, 'text' => $text ]; $queryString = http_build_query($params); $requestUrl = $url . "?" . $queryString; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $requestUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); return $response; } // functi0n to check delivery status functi0n checkDeliveryStatus($username, $password, $client_id, $service_id, $messageId) { $trackingUrl = "http://81.95.160.47/bi/track.php"; $trackParams = [ 'username' => $username, 'password' => $password, 'client_id' => $client_id, 'service_id' => $service_id, 'message_id' => $messageId ]; $trackQueryString = http_build_query($trackParams); $trackRequestUrl = $trackingUrl . "?" . $trackQueryString; $trackResponse = file_get_contents($trackRequestUrl); return $trackResponse; } // Sending the message $response = sendMessage($username, $password, $client_id, $service_id, $to, $text); if ($response) { $responseParts = explode(" - ", $response); $errorCode = $responseParts[0]; if ($errorCode == "0000") { $messageId = $responseParts[1]; echo "Message sent successfully. Message ID: $messageId"; // Check delivery status $deliveryStatus = checkDeliveryStatus($username, $password, $client_id, $service_id, $messageId); echo " Delivery Status: " . $deliveryStatus; // Check if delivery status is "not delivered" if (strpos($deliveryStatus, "not delivered") !== false) { // Wait for 24 hours and check again sleep(24 * 60 * 60); // Sleep for 24 hours $updatedDeliveryStatus = checkDeliveryStatus($username, $password, $client_id, $service_id, $messageId); echo " Updated Delivery Status: " . $updatedDeliveryStatus; } } else { echo "Error: $response"; } } else { echo "Failed to send message."; }
|