iSMS.uz API orqali Android qurilmangiz yordamida SMS xabarlar yuborish, qabul qilish va boshqarishingiz mumkin. Barcha so'rovlar HTTPS orqali, POST yoki GET metodlari bilan amalga oshiriladi.
https://isms.uz/gateway
Barcha endpointlar ushbu URL ga qo'shilib chaqiriladi. Masalan:
/services/send.php
{
"success": true,
"messages": [
{
"ID": "1",
"number": "+998901234567",
"message": "Sizning OTP: 123456",
"deviceID": "1",
"simSlot": "0",
"status": "Pending",
"type": "sms",
"sentDate": "2024-04-14T10:30:00+05:00",
"deliveredDate": null
}
]
}
Barcha so'rovlarda key parametri sifatida API kalitingizni yuboring.
Bitta raqamga SMS xabar yuborish uchun ishlatiladi. OTP, bildirishnoma, tasdiqlash kodlari uchun ideal.
| Parametr | Tur | Holat | Tavsif |
|---|---|---|---|
| number | string | Majburiy | SMS yuboriladigan telefon raqam. Masalan: +998901234567 |
| message | string | Majburiy | SMS matni. Unicode belgilar ham qo'llab-quvvatlanadi. |
| key | string | Majburiy | API kalitingiz |
| devices | int|string | Ixtiyoriy | Qurilma ID. 0 = belgilangan qurilma |
| schedule | timestamp | Ixtiyoriy | Rejalashtirilgan yuborish vaqti (Unix timestamp) |
| type | string | Ixtiyoriy | sms (default) yoki mms |
| prioritize | bool | Ixtiyoriy | 1 = ustuvor yuborish |
curl -X POST "https://isms.uz/gateway/services/send.php" \
-d "number=+998901234567" \
-d "message=Sizning OTP kodingiz: 847291" \
-d "key=YOUR_API_KEY" \
-d "devices=1" \
-d "prioritize=1"
Bir nechta raqamlarga bir vaqtda turli xabarlar yuborish. Marketing kampaniyalari va bildirishnomalar uchun.
| Parametr | Tur | Holat | Tavsif |
|---|---|---|---|
| messages | JSON | Majburiy | JSON array: [{"number":"+998...","message":"..."}] |
| key | string | Majburiy | API kalitingiz |
| devices | JSON | Ixtiyoriy | Qurilmalar ID ro'yxati: [1,2,3] |
| option | int | Ixtiyoriy | 0=belgilangan, 1=barcha qurilma, 2=barcha SIM |
| useRandomDevice | bool | Ixtiyoriy | Tasodifiy qurilma tanlash |
| schedule | timestamp | Ixtiyoriy | Rejalashtirilgan vaqt |
curl -X POST "https://isms.uz/gateway/services/send.php" \
-d 'messages=[{"number":"+998901234567","message":"Salom Jasur!"},{"number":"+998991234567","message":"Salom Ali!"}]' \
-d "key=YOUR_API_KEY" \
-d "option=1"
Panelda saqlangan kontaktlar guruhiga bir xabar yuborish.
| Parametr | Tur | Holat | Tavsif |
|---|---|---|---|
| listID | int | Majburiy | Kontaktlar ro'yxati ID (Paneldan topasiz) |
| message | string | Majburiy | Yuboriluvchi xabar matni |
| key | string | Majburiy | API kalitingiz |
| devices | JSON | Ixtiyoriy | Qurilmalar ID ro'yxati |
| option | int | Ixtiyoriy | 0, 1 yoki 2 |
curl -X POST "https://isms.uz/gateway/services/send.php" \
-d "listID=5" \
-d "message=Yangi aksiya! -30% barcha mahsulotlarga!" \
-d "key=YOUR_API_KEY" \
-d "option=1"
Yuborilgan SMS ning joriy holatini tekshirish: Pending, Sent, Delivered yoki Failed.
| Parametr | Tur | Holat | Tavsif |
|---|---|---|---|
| id | int | Majburiy | SMS ID (yuborishda qaytariladi) |
| key | string | Majburiy | API kalitingiz |
curl -X POST "https://isms.uz/gateway/services/send.php" \
-d "id=1234" \
-d "key=YOUR_API_KEY"
# SMS holatlari:
# Pending — navbatda kutmoqda
# Sent — qurilmadan yuborildi
# Delivered — qabul qilindi (tasdiqlanmagan)
# Failed — yuborishda xato
Akkauntingizga ulangan barcha qurilmalar va ularning holatini olish.
| Parametr | Tur | Holat | Tavsif |
|---|---|---|---|
| key | string | Majburiy | API kalitingiz |
curl -X POST "https://isms.uz/gateway/services/send.php" \
-d "key=YOUR_API_KEY"
# Javob:
{
"success": true,
"devices": [
{ "id": 1, "name": "Samsung A54", "battery": 87, "signal": 4, "active": true },
{ "id": 2, "name": "Redmi Note 12", "battery": 63, "signal": 5, "active": true }
]
}
Qurilmangizga SMS kelganda yoki SMS holati o'zgarganda, iSMS.uz sizning serveringizga avtomatik POST so'rov yuboradi.
// POST body (form-encoded)
messages = [
{
"ID": "1",
"number": "+998901234567",
"message": "Salom! Sizning buyurtmangiz tayyor.",
"deviceID": "1",
"simSlot": "0",
"userID": "1",
"status": "Received",
"sentDate": "2024-04-14T10:30:00+05:00",
"deliveredDate": "2024-04-14T10:30:02+05:00",
"groupID": null
}
]
// Header
HTTP_X_SG_SIGNATURE: "base64_encoded_hmac_sha256_signature"
Serveringizda quyidagi PHP faylni yarating va URL ini Panelga kiriting.
<?php
define("API_KEY", "YOUR_API_KEY"); // ← API kalitingiz
try {
if (isset($_SERVER["HTTP_X_SG_SIGNATURE"])) {
// ── Kiruvchi SMS ──
if (isset($_POST["messages"])) {
$hash = base64_encode(hash_hmac(
'sha256',
$_POST["messages"],
API_KEY,
true
));
if ($hash === $_SERVER["HTTP_X_SG_SIGNATURE"]) {
$messages = json_decode($_POST["messages"], true);
foreach ($messages as $msg) {
/**
* $msg['ID'] — SMS ID
* $msg['number'] — Yuboruvchi raqam
* $msg['message'] — Xabar matni
* $msg['deviceID'] — Qurilma ID
* $msg['simSlot'] — SIM slot (0 yoki 1)
* $msg['status'] — Holat
* $msg['sentDate'] — Yuborilgan vaqt
* $msg['deliveredDate'] — Yetkazilgan vaqt
*/
// Misol: OTP javobini qayta ishlash
if (strtolower($msg["message"]) === "hi") {
// Javob yuborish yoki boshqa amal bajarish
}
}
} else {
throw new Exception("Signature mos kelmadi!");
}
}
// ── USSD so'rovi ──
if (isset($_POST["ussdRequest"])) {
$ussd = json_decode($_POST["ussdRequest"]);
$deviceID = $ussd->deviceID;
$request = $ussd->request;
$response = $ussd->response;
// USSD javobini qayta ishlash
}
} else {
http_response_code(400);
error_log("Signature topilmadi!");
}
} catch (Exception $e) {
http_response_code(401);
error_log($e->getMessage());
}
PHP faylingizga quyidagi kodni qo'shing va darhol SMS yuborishni boshlang.
<?php
define("SERVER", "https://isms.uz/gateway");
define("API_KEY", "YOUR_API_KEY"); // ← o'zgartiring
define("USE_SPECIFIED", 0);
define("USE_ALL_DEVICES",1);
define("USE_ALL_SIMS", 2);
/**
* Bitta SMS yuborish
* @param string $number — Telefon raqam (+998...)
* @param string $message — SMS matni
* @param int $device — Qurilma ID (0 = default)
* @param int $schedule — Unix timestamp (null = hozir)
* @param bool $isMMS — MMS yuborish?
* @param string $attachments— MMS uchun rasm URL lari
* @param bool $prioritize — Ustuvor yuborish?
*/
function sendSingleMessage($number, $message, $device=0,
$schedule=null, $isMMS=false, $attachments=null, $prioritize=false)
{
$url = SERVER . "/services/send.php";
$data = [
'number' => $number,
'message' => $message,
'key' => API_KEY,
'devices' => $device,
'schedule' => $schedule,
'type' => $isMMS ? "mms" : "sms",
'attachments' => $attachments,
'prioritize' => $prioritize ? 1 : 0
];
return sendRequest($url, $data)["messages"][0];
}
/**
* Ommaviy SMS yuborish
* @param array $messages — [["number"=>"+998...", "message"=>"..."], ...]
* @param int $option — USE_SPECIFIED | USE_ALL_DEVICES | USE_ALL_SIMS
* @param array $devices — Qurilmalar ID ro'yxati
* @param int $schedule — Unix timestamp
* @param bool $useRandomDevice — Tasodifiy qurilma
*/
function sendMessages($messages, $option=USE_SPECIFIED,
$devices=[], $schedule=null, $useRandomDevice=false)
{
$url = SERVER . "/services/send.php";
$data = [
'messages' => json_encode($messages),
'key' => API_KEY,
'devices' => json_encode($devices),
'option' => $option,
'schedule' => $schedule,
'useRandomDevice' => $useRandomDevice
];
return sendRequest($url, $data)["messages"];
}
// ── HTTP helper ──
function sendRequest($url, $data) {
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_TIMEOUT => 30
]);
$response = curl_exec($ch);
if (curl_errno($ch)) throw new Exception(curl_error($ch));
curl_close($ch);
return json_decode($response, true);
}
Terminaldan to'g'ridan-to'g'ri sinab ko'rish uchun.
OTP=$(shuf -i 100000-999999 -n 1)
curl -X POST "https://isms.uz/gateway/services/send.php" \
-d "number=+998901234567" \
-d "message=iSMS.uz: Tasdiqlash kodi: ${OTP}" \
-d "key=YOUR_API_KEY" \
-d "prioritize=1"
curl -X POST "https://isms.uz/gateway/services/send.php" \
-d 'messages=[
{"number":"+998901234567","message":"Yangi aksiya! -30%"},
{"number":"+998991234567","message":"Yangi aksiya! -30%"},
{"number":"+998971234567","message":"Yangi aksiya! -30%"}
]' \
-d "key=YOUR_API_KEY" \
-d "option=2"