Odesílání SMS pomocí PHP

Pomocí jednoduché API portálu SmsBrana.cz

Ideální řešení pro rozesílání SMS zpráv pomocí PHP bylo u jednoho eshopového řešení vzhledem k četnosti zpráv zvoleno rozhranní od smsbrana.cz, které nabízí garantované odeslání i s informací o doručení od 0.65 Kč za zprávu.

Úvaha o vlastním hardwarové variantě byla vzhledem k ceně za 1 sms bezpředmětná. Eshop své zákazníky informuje jen o stavu objednávek. Pokud chcete pravidelně rozesílat marketingové zprávy na tisíce kontaktů, sáhnete pravděpodobně po jiném řešení.

Implementace

Jedná se o komunikaci s externím systémem = určitě bude vhodné vytvářet frontu zpráv a tu následně pomocí naplánované úlohy postupně kontrolovat/rozesílat.

Proměnné SMS_PROVIDER__LOGIN a SMS_PROVIDER__PASSWORD obdržíte od poskytovatele.

define('SMS_PROVIDER__LOGIN', 'xxxxxxx'); define('SMS_PROVIDER__PASSWORD', 'xxxxxxx'); $salt = 'abrakadabra'; $time = date("Ymd") . "T" . date("His"); $auth = md5(SMS_PROVIDER__PASSWORD . $time . $salt); $url = "http://api.smsbrana.cz/smsconnect/http.php?" . "login=" . SMS_PROVIDER__LOGIN . "&sul=" . $salt . "&time=" . $time . "&hash=" . $auth . "&action=send_sms&number=" . $telefon . "&message=" . urlencode($zprava)"; $return = file_get_contents($url);

V proměnné $return máme uložen návratový status, který si ukládám do databáze k jednotlivým záznamům fronty společně s timestampem odeslání.

Generování řetězce $salt o požadované délce řeší funkce getRandomString().

function getRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return $randomString; }

PHP leden 2018