Wspólne konta z:

CSSetti.pl

Logowanie:

Logowanie oznacza akceptację postanowień regulaminu.

Rejestracja:

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;
}