Wysyłka SMS w aplikacjach internetowych

Tworząc aplikacje internetowe często zachodzi potrzeba implementacji modułu do wysyłki SMS.

Może to być informacja o zmianie statusu zamówienia złożonego w sklepie internetowym, może to być jakiś ważny komunikat systemowy dotyczący konta w serwisie, może to być powiadomienie o wystąpieniu jakiegoś zdarzenia, które monitoruje klient (np. pojawienie się oferty spełniającej ustawione kryteria) lub po prostu mechanizm weryfikacji wysyłający kod na telefon. Potrzeby wdrożeń powiadomień SMS’owych z pewnością można mnożyć.

Wdrażając moduł powiadomień SMS należy mieć na uwadze, że komunikacja SMS’owa nadaje przekazywanej wiadomości dużo większy priorytet niż e-mail czy powiadomienie w aplikacji na smartfona, nic bardziej nie irytuje użytkownika niż spam w SMS’ach.

Obecnie w internecie znaleźć można bardzo wiele bramek/serwisów oferujących mniej lub bardziej zaawansowane systemy do obsługi powiadomień sms.

Jak to działa?

Wdrożenie modułu SMS jest na prawdę proste i nieskomplikowane, opiera się na 3 krokach:

  • Rejestrujesz się w serwisie obsługującym wysyłki SMS. Ściągasz klienta API czyli bibliotekę przez którą łączysz się z systemem obsługującym wysyłkę.
  • Wprowadzasz namiary autoryzacyjne (login/hasło/hash autoryzujący) tak aby system mógł zidentyfikować żądanie wysyłki.
  • Wdrażasz wywołanie API do aplikacji.

Należy w tym miejscu rozróżnić bramkę sms od usługi sms api. Zwykła bramka sms jedynie umożliwia ręczne wprowadzenie wiadomości natomiast w aplikacji potrzebujemy mechanizmu automatycznego, czyli dostęp przez API.

Który serwis do wysyłki SMS wybrać?

Jak wspomniałem wcześniej, serwisów do wysyłki SMS jest wiele, zdecydowana większość jest płatna a ceny wahają się w granicach od kilku do kilkunastu groszy za SMS, czyli w budżecie np. 100 zł dostępnych jest 1428 smsów w cenie 0,07 zł każdy. Myślę, że przy takim niskim koszcie wysyłki nie opłaca się szukać na siłę darmowych niekoniecznie sprawdzonych i dobrze działających alternatyw.

Ja w projekcie wybrałem SMSAPI.pl. Dlaczego?

  • Profesjonalnie napisany klient php, dostępny od ręki w composerze.
  • Bardzo dobrze przygotowany dział dla developera (smsapi.pl/dev) z wieloma gotowymi modułami i przykładowymi integracjami.
  • Mnogość opcji wysyłki wiadomości ECO, PRO, ze zdefiniowanym nadawcą lub bez, MMS, VMS, odbiór wiadomości.
  • Szybkość działania, większość wiadomości dostarczane jest w czasie do 10 sekund.
  • Przejrzysty serwis internetowy i panel klienta, możliwość wysyłki bezpośrednio z panelu klienta.

Przykład użycia API

<?php

require_once 'smsapi/Autoload.php';

$client = new \SMSApi\Client('login');
// Ustawiamy hasło, w panelu klienta możemy wygenerować hasło różne od hasła do panelu klienta, wysyłkę można też zabezpieczyć IPkami.
$client->setPasswordHash( 'haslo w md5' );

// Inicjalizujemy klienta API
$smsapi = new \SMSApi\Api\SmsFactory();
$smsapi->setClient($client);

try {

    $actionSend = $smsapi->actionSend();

    $actionSend->setTo('600xxxxxx');
    $actionSend->setText('Hello World!!');
    //Pole nadawcy lub typ wiadomość 'ECO', '2Way'
    $actionSend->setSender('Info');

    $response = $actionSend->execute();

    foreach( $response->getList() as $status ) {
        echo  $status->getNumber() . ' ' . $status->getPoints() . ' ' . $status->getStatus();
    }
}
// Przechwytujemy ewentualne błędy, będą one automatycznie widoczne w panelu klienta.
catch( \SMSApi\Exception\SmsapiException $e ) {
    echo 'ERROR: ' . $e->getMessage();
}