BulkSmsClient¶
Toplu SMS göndərilməsi (https://www.sendsms.az).
Tək SMS API-sindən tamamilə ayrıdır: başqa host, tək endpoint, və hər sorğuda
nə edildiyini operation field-i bildirir. Payload iç-içə strukturdadır:
{"request": {"head": { ... }, "body": [ ... ]}}
$client = new BulkSmsClient(LsimConfig::fromEnvironment());
$submission = $client->sendSameMessage(1, ['994501234567', '994551234567'], 'Salam!');
$report = $client->fetchReport($submission->taskId ?? 0);
sendSameMessage()¶
Eyni mesajı bir neçə nömrəyə göndərir.
POST /smxml/api (operation: submit, isbulk: true)
sendSameMessage(int $controlId, list<string> $msisdns, string $message, DateTimeInterface|null $at, ?string $title): BulkSubmission
| Parametr | Tip | Məcburi | Təsvir |
|---|---|---|---|
$controlId |
int |
✅ | Sizin təyin etdiyiniz təkrarlanmayan id. LSIM eyni id ilə ikinci sorğunu Duplicate kimi rədd edir. |
$msisdns |
list<string> |
✅ | Nömrələr. |
$message |
string |
✅ | Hamısına gedəcək mesaj. |
$at |
DateTimeInterface\|null |
Planlaşdırılmış göndərilmə zamanı. | |
$title |
?string |
Atır:
InvalidRequest— Nömrə siyahısı boşdursa.RequestFailed
sendDifferentMessages()¶
Hər nömrəyə öz mesajını göndərir.
POST /smxml/api (operation: submit, isbulk: false)
sendDifferentMessages(int $controlId, list<string> $msisdns, list<string> $messages, ?DateTimeInterface $at, ?string $title): BulkSubmission
| Parametr | Tip | Məcburi | Təsvir |
|---|---|---|---|
$controlId |
int |
✅ | |
$msisdns |
list<string> |
✅ | Nömrələr. |
$messages |
list<string> |
✅ | Nömrələrlə eyni sırada mesajlar. |
$at |
?DateTimeInterface |
||
$title |
?string |
Atır:
InvalidRequest— Siyahılar boşdursa və ya uzunluqları fərqlidirsə.RequestFailed
fetchReport()¶
Tapşırığın yekun hesabatı — hər statusdan neçə SMS olduğu.
POST /smxml/api (operation: report)
fetchReport(int $taskId): BulkReport
| Parametr | Tip | Məcburi | Təsvir |
|---|---|---|---|
$taskId |
int |
✅ |
Atır:
RequestFailed
fetchDetailedReport()¶
Tapşırığın detallı hesabatı — hər SMS üçün bir sətir.
POST /smxml/api (operation: detailedreport)
fetchDetailedReport(int $taskId): BulkDetailedReport
| Parametr | Tip | Məcburi | Təsvir |
|---|---|---|---|
$taskId |
int |
✅ |
Atır:
RequestFailed
fetchDetailedReportWithDates()¶
Detallı hesabat, hər sətirdə çatdırılma tarixi ilə.
POST /smxml/api (operation: detailedreportwithdate)
fetchDetailedReportWithDates(int $taskId): BulkDetailedReport
| Parametr | Tip | Məcburi | Təsvir |
|---|---|---|---|
$taskId |
int |
✅ |
Atır:
RequestFailed
checkBalance()¶
Toplu SMS hesabının balansı.
POST /smxml/api (operation: units)
checkBalance(): BulkBalance
Atır:
RequestFailed
SingleSmsClient¶
Tək SMS göndərilməsi (https://apps.lsim.az).
Toplu göndərilmə ayrı API-dir, ayrı host-dadır — ona görə ayrı klientdir:
BulkSmsClient.
$client = new SingleSmsClient(LsimConfig::fromEnvironment());
$result = $client->sendSms('994501234567', 'Salam!');
$result->isSuccessful(); // bool
$result->obj; // transaction id
sendSms()¶
SMS göndərir.
GET /quicksms/v1/send
sendSms(string $msisdn, string $text, bool $unicode, string|null $sender): SmsResult
| Parametr | Tip | Məcburi | Təsvir |
|---|---|---|---|
$msisdn |
string |
✅ | Nömrə: ölkə kodu + operator kodu + nömrə (994501234567). |
$text |
string |
✅ | Mesajın məzmunu. |
$unicode |
bool |
Mesajda ə, ş, ü kimi simvollar varsa true verin. |
|
$sender |
string\|null |
Göndərən adı; verilməsə konfiqurasiyadakı istifadə olunur. |
Atır:
RequestFailed
scheduleSms()¶
SMS-i göndərir və ya gələcək bir zamana planlaşdırır.
POST /quicksms/v1/smssender
scheduleSms(string $msisdn, string $text, DateTimeInterface|null $at, bool $unicode, ?string $sender): SmsPostResult
| Parametr | Tip | Məcburi | Təsvir |
|---|---|---|---|
$msisdn |
string |
✅ | |
$text |
string |
✅ | |
$at |
DateTimeInterface\|null |
Göndərilmə zamanı. null — indi. |
|
$unicode |
bool |
||
$sender |
?string |
Atır:
RequestFailed
checkBalance()¶
Qalan SMS sayını qaytarır — obj field-ində.
GET /quicksms/v1/balance
checkBalance(): SmsResult
Atır:
RequestFailed
checkStatus()¶
Göndərilmiş SMS-in status kodunu qaytarır.
GET /quicksms/v1/report
Bu endpoint JSON deyil, sadəcə bir ədəd qaytarır (məs., 101), ona görə cavab
DTO-ya hidrasiya olunmur — ReportStatus::fromBody() xam body-ni oxuyur.
Hesabat yalnız son bir həftə üçün əlçatandır.
checkStatus(int $transactionId): ReportStatus
| Parametr | Tip | Məcburi | Təsvir |
|---|---|---|---|
$transactionId |
int |
✅ | Uğurlu göndərilmədə alınan obj dəyəri. |
Atır:
RequestFailed
fetchDeliveryReport()¶
Göndərilmiş SMS-in mətnli çatdırılma hesabatı.
POST /quicksms/v1/smsreporter
fetchDeliveryReport(int $transactionId): DeliveryReport
| Parametr | Tip | Məcburi | Təsvir |
|---|---|---|---|
$transactionId |
int |
✅ | Uğurlu göndərilmədə alınan obj dəyəri. |
Atır:
RequestFailed