Məzmuna keçin

PostaGuverciniClient

Posta Güvercini SMS servisi (https://www.poctgoyercini.com).

$client = new PostaGuverciniClient(PostaGuverciniConfig::fromEnvironment());

$result = $client->sendSms('Salam!', ['994501234567']);

$result->isSuccessful();   // bool
$result->messageIds();     // status sorğusu üçün

Servis uğursuz sorğuya da HTTP 200 qaytarır — nəticə body-dəki StatusCode field-indədir. Yəni RequestFailed atılmaması "göndərildi" demək deyil; hər cavab DTO-sunda isSuccessful() var və ona baxmaq məcburidir.

Bütün sorğular POST-dur və hamısı hesabın adını və parolunu payload-da daşıyır — bax: PostaGuverciniConfig.

sendSms()

Bir mətni bir və ya bir neçə nömrəyə göndərir.

POST /api_json/v1/Sms/Send_1_N

sendSms(string $message, list<string> $receivers, DateTimeInterface|string|null $sendDate, DateTimeInterface|string|null $expireDate, Channel $channel, string|null $originator): SendResult
Parametr Tip Məcburi Təsvir
$message string Göndəriləcək mətn.
$receivers list<string> Alıcı nömrələri (994501234567).
$sendDate DateTimeInterface\|string\|null Göndərilmə vaxtı; null — indi. Sətir veriləcəksə formatı YYYYMMDD HH:MM olmalıdır.
$expireDate DateTimeInterface\|string\|null Etibarlılıq müddəti.
$channel Channel Kanal; default OTP.
$originator string\|null Göndərən adı; verilməsə konfiqurasiyadakı işlənir.

Atır:

  • InvalidRequest — Alıcı siyahısı boşdursa, və ya tarix formatı yanlışdırsa.
  • RequestFailed

sendMessages()

Hər nömrəyə öz mətnini göndərir.

POST /api_json/v1/Sms/Send_N_N

$client->sendMessages([
    new SmsMessage('994501234567', 'Salam, Əli'),
    new SmsMessage('994551234567', 'Salam, Aysel'),
]);

Nömrə və mətn bir DTO-da saxlanılır, iki paralel siyahı kimi yox: fərqli uzunluqlu siyahılar səssizcə qısalır və bir mesaj heç kimə getmir.

sendMessages(list<SmsMessage> $messages, DateTimeInterface|string|null $sendDate, DateTimeInterface|string|null $expireDate, Channel $channel, ?string $originator): SendResult
Parametr Tip Məcburi Təsvir
$messages list<SmsMessage> Nömrə–mətn cütləri.
$sendDate DateTimeInterface\|string\|null
$expireDate DateTimeInterface\|string\|null
$channel Channel
$originator ?string

Atır:

  • InvalidRequest — Siyahı boşdursa, və ya tarix formatı yanlışdırsa.
  • RequestFailed

getStatus()

Göndərilmiş mesajların çatdırılma vəziyyətini soruşur.

POST /api_json/v1/Sms/Status

getStatus(list<string> $messageIds): StatusResult
Parametr Tip Məcburi Təsvir
$messageIds list<string> Göndərmə cavabındakı messageIds() dəyərləri.

Atır:

  • InvalidRequest — Siyahı boşdursa.
  • RequestFailed

checkBalance()

Hesabdakı qalan krediti qaytarır.

POST /api_json/v1/Sms/CreditBalance

checkBalance(): BalanceResult

Atır:

  • RequestFailed