Printable Version of Topic
Click here to view this topic in its original format
თბილისის ფორუმი > ვებსკრიპტების გარჩევა > სმს-ს დელივერ სტატუსის გაკეთება მსურს


Posted by: prado 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.";
}

Posted by: Link 15 Feb 2024, 16:02
sleep(24 * 60 * 60); // Sleep for 24 hours
$updatedDeliveryStatus = checkDeliveryStatus($username, $password, $client_id, $service_id, $messageId);

და იმას ამბობ, რომ ყველა გაგზავნილ მესიჯზე (სიტყვაზე 1000 ცალზე) 1000 სლიფია ? და ეს ნორმაა? spy.gif
და ყველაფერი კარგად მუშაობს? eek.gif


ერთი მარტივი ვარიანტია not delivered რაც გიბრუნებდა შეყარო ბაზაში
და მერე ამოწმო როგორც გინდა, როცა გინდა და რამდენჯერაც გინდა

ცოტა უფრო კარგი ვარიანტია ყველა გაგზავნილი შეყარო ბაზაში და ამოწმო რაც გინდა.



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)