SMS Api
Gotowe sklepy z obsługą SMS Api GOSetti.pl
Jeśli nie jesteś programistą, prawdopodobnie poszukujesz gotowego systemu sklepu SMS do zastosowania na swojej stronie. Udostępni on kompletny zestaw funkcji potrzebnych do automatycznej sprzedaży usług. Systemom sklepów SMS poświęciliśmy osobny rozdział w jednym z naszych artykułów.
Kompatybilność SMS Api GOSetti.pl V2 z SMS Api CSSetti.pl V2
SMS Api GOSetti.pl V2 jest kompatybilne z API SMS CSSetti.pl V2.
Bez zmian:
- Dostępne endpointy (zmianie ulega tylko domena).
- Format wywołania - składnia zapytania i odpowiedzi.
Zmiany:
- Adres bazowy - zmiana domeny na gosetti.pl (dostępne zarówno http, jak i https).
- Treść, numery SMS oraz kwoty. Bez znaczenia dla osób korzystających z wywołania /Api/SmsApiV2GetData.php. Rozwiązania z zaharkodowaną treścią i numerami SMS muszą zmienić te wartości zgodnie z: https://gosetti.pl/Api/SmsApiV2GetData.php.
SMS Api GOSetti.pl V2
Dostępne wywołania
Możliwe zarówno http://, jak i https://:
- https://gosetti.pl/Api/SmsApiV2GetData.php - pobranie informacji o treści sms, numerach sms i adresie do reklamacji.
- https://gosetti.pl/Api/SmsApiV2CheckCode.php - sprawdzenie kodu SMS wraz z doładowaniem konta użytkownika.
GET https://gosetti.pl/Api/SmsApiV2GetData.php
Wywołanie https://gosetti.pl/Api/SmsApiV2GetData.php służy do pobrania istotnych danych SMS, takich jak treść wiadomości, dostępne numery, czy adres url do składania reklamacji.
Format zapytania
HTTP GET, bez danych.
Format odpowiedzi
application/json:
{ "Code": (string) Treść wiadomości jaką musi wpisać płacący "ComplainUrl": (string) Adres URL do składania reklamacji w przypadku problemów z wiadomością "Numbers": [ (array) Tablica dostępnych numerów SMS i odpowiadających im kwot { "Number": (number) Numer na który płacący musi wysłać wiadomość "NettoPrice": (number) Kwota SMS Netto "BruttoPrice" (number) Kwota SMS Brutto (całkowita kwota SMS jaką zostanie obciążone konto płacącego) "TopUpAmount": (number) Kwota jaką zostanie doładowane konto odbiorcy (ta wartość jest zwracana przez https://gosetti.pl/Api/SmsApiV2CheckCode.php) }, { ... } ] }
GET https://gosetti.pl/Api/SmsApiV2CheckCode.php
Wywołanie https://gosetti.pl/Api/SmsApiV2CheckCode.php służy do atomowego sprawdzenia i wykorzystania kodu wraz z doładowaniem wybranego konta w portalu GOSetti.pl
Format zapytania
HTTP GET z parametrami:
- UserId - (int) #ID Użytkownika którego konto zostanie doładowane. Należy podać sam numer, bez znaku #.
- Code - (string) Zwrotny kod SMS który otrzymał płacący po wysłaniu wiadomości.
Format odpowiedzi
application/json:(number) Kod odpowiedzi: -3 - Brakujące dane wejściowe (UserId / Code) -2 - Nieprawidłowe dane wejściowe (nieprawidłowy format UserId / Code) -1 - Użytkownik o podanym UserId nie istnieje 0 - Podany kod SMS nie istnieje (błędny lub wykorzystany kod SMS) >0 - Transakcja zakończona powodzeniem. Kod został wykorzystany, konto doładowane. Zwrócona wartość oznacza kwotę jaką zostało doładowane konto (odpowiednik TopUpAmount z https://gosetti.pl/Api/SmsApiV2GetData.php)
Przykładowe funkcje w języku PHP
Pobranie informacji o treści, numerach sms i adresie reklamacji
/** GOSetti.pl SMS Api V2 Pobranie informacji o treści, numerach sms i adresie reklamacji Wartość zwracana: Zdekodowana do talicy wartość z https://gosetti.pl/Api/SmsApiV2GetData.php. Sprawdź opis wywołania dla dostępnych danych. Przykład użycia: $Data = GOSettiSmsApiV2GetData(); // Wyświetl treść SMS echo '<h1>' . $Data['Code'] . '</h1>' . PHP_EOL; // Wyświetl listę numerów SMS foreach($Data['Numbers'] as $Number) { // Dla każdego dostępnego numeru echo '<h2>Numer: ' . $Number['Number'] . ', Cena: ' . $Number['BruttoPrice'] . ', Doładowanie: ' . $Number['TopUpAmount'] . '</h2>' . PHP_EOL; } */ function GOSettiSmsApiV2GetData() { // Statyczny cache wartości zwracanej static $Data = null; // Jeśli pusty - odśwież dane if($Data === null) { // Pobranie danych $Data = file_get_contents('https://gosetti.pl/Api/SmsApiV2GetData.php'); // Dekodowanie json $Data = @json_decode($Data, true); // Opcjonalnie false, jeśli ma zostać zwrócony obiekt zamiast tablicy } // Zwróć dane return $Data; }
Zakończenie transakcji i próba wykorzystania kodu
/** GOSetti.pl SMS Api V2 Sprawdzenie poprawności kodu i atomowe doładowanie konta Parametry: $UserId - (int) #ID Użytkownika którego konto zostanie doładowane. Należy podać sam numer, bez znaku # $Code - (string) Zwrotny kod SMS który otrzymał płacący po wysłaniu wiadomości Wartość zwracana: false - W przypadku wystąpienia jakiegokolwiek błędu (float) - Wartość doładowania konta (TopUpAmount) w przypadku prawidłowego doładowania konta Przykład użycia: $UserId = ; // ID Użytkownika do doładowania $Price = ; // Koszt usługi do sprawdzenia, np 1.50 $Code = ; // Kod do sprawdzenia $Response = GOSettiSmsApiV2CheckCode($UserId, $Code); if($Response) { // Kod jest prawidłowy, sprawdzamy kwotę if($Response === $Price) { // Kwota się zgadza, przyznajemy usługę echo 'Powodzenie: Usługa zostaje przyznana' . PHP_EOL; } else { // Kwota się nie zgadza, użytkownik wysłał SMS na zły numer echo 'Błąd: Nieprawidłowa kwota SMS' . PHP_EOL; } } else { // Wprowadzony kod jest nieprawidłowy // lub // Błąd zapytania echo 'Błąd: Wystąpił wewnętrzny błąd' . PHP_EOL; } */ function GOSettiSmsApiV2CheckCode($UserId, $Code) { // Sprawdzenie czy kod podany przez użytkownika nie zawiera niedozwolonych znaków if(!ctype_alnum($Code)) return false; // Wysłanie zapytania do serwera i odebranie odpowiedzi $Response = file_get_contents(sprintf('https://gosetti.pl/Api/SmsApiV2CheckCode.php?UserId=%d&Code=%s', $UserId, $Code)); // Dekodowanie JSON $Response = @json_decode($Response); // Sprawdzenie poprawności JSON if($Response === null) return false; // Nieprawidłowa odpowiedź - zwracamy false if($Response <= 0) return false; // Prawidłowa odpowiedź - zwracamy kwotę doładowania return (float) $Response; }