Gatesms.eu Mobilne Rozwiązania dla biznesu



Podobne dokumenty
Gatesms.eu Mobilne Rozwiązania dla biznesu

Dokumentacja Techniczna 1.2. Webtoken MT. Uruchomienie subskrybcji MT poprzez serwis WWW

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Specyfikacja HTTP API. Wersja 1.6

Specyfikacja wysyłek marketingowych v1.10

Specyfikacja interfejsów usług Jednolitego Pliku Kontrolnego

OPIS TECHNICZNY SYSTEM HOSTED SMS

DOKUMENTACJA TECHNICZNA KurJerzyAPI wersja 1.0

System DiLO. Opis interfejsu dostępowego v. 2.0

Płatności CashBill - SOAP

API transakcyjne BitMarket.pl

Ogólnopolskie Repozytorium Prac Dyplomowych

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

DOKUMENTACJA TECHNICZNA SMS API MT

Dokumentacja techniczna API systemu SimPay.pl

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHNICZNA 1

Implementacja mechanizmu SkyCashClick Wersja 0.1

Podręcznik Integracji

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Automater.pl zdalne tworzenie i zarządzanie transakcjami dokumentacja API wersja 0.1

Dokumentacja Techniczna. Dokumentacja techniczna usługi płatności mobilnych

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Połączenie Partnera z serwisem JustPay poprzez - METODĘ 2

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

DOKUMENTACJA INTERFEJSU API - HTTPS

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Dokumentacja serwera REST do obsługi rezerwacji w systemie SaNAtoRIUm.pro

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Dokumentacja REST API v 3.0. Kraków, 7 marca FreshMail, ul. Fabryczna 20a, Kraków tel , freshmail.

Dokumentacja REST API v 3.0

Specyfikacja techniczna. mprofi Interfejs API

Sesje i logowanie. 1. Wprowadzenie

Dokumentacja techniczna SMS MO

Ministerstwo Finansów

SSL (Secure Socket Layer)

Silne uwierzytelnianie dla klienta indywidualnego

Funkcje dodatkowe. Wersja 1.2.1

BRAMKA HTTP SMS XML Dokumentacja techniczna. wersja 3.32

Spis treści 1. Założenia ogólne 2. Wymagania 3. Typy SMSów 4. Statusy SMSów 5. Wysyłanie SMSów - Web API 6. Wysyłanie SMSów - 7.

Dokumentacja SMS przez FTP

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

DirectBilling dokumentacja techniczna

Dokumentacja smsapi wersja 1.4

Aktualizacja SMSFall v Data publikacji:

Sprawozdanie nr 4. Ewa Wojtanowska

DOKUMENTACJA PROTOKOŁU SMESX. Platforma SMeSKom - instrukcja korzystania z interfejsu HTTPS Protokół w wersji 2.2

DPDInfoServices. Specyfikacja biznesowa. Version DPD Polska Sp. z O.O. Warszawa

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

HttpRequest Aplikacja Czat

Subskrypcje MT (płatność za otrzymany SMS)

Dokumentacja interfejsu MySQL. Platforma BSMS.PL Instrukcja podłączenia po przez mysql

SMS Kod Automatyczny

Specyfikacja Techniczna 2.0. Specyfikacja techniczna usługi dystrybucji kodów dostępowych PayCode

Specyfikacja API bramki SMS/MMS/TTS

API przekazy masowe - Dokumentacja. v 1.1, czerwiec 2014 KIP S.A. ul. Św. Marcin 73/ Poznań.

Ministerstwo Finansów

PolishAPI. Rekomendacje oraz podstawowe założenia do przygotowania interfejsu awaryjnego. Dokument opracowany przez Grupę Projektową ds.

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Systemy internetowe Wykład 3 PHP

INFAKT API - opis (ver. 0.8)

Instrukcja logowania do systemu Rejestru Unii dla nowych użytkowników

Serwery aplikacji. dr Radosław Matusik. radmat

DOKUMENTACJA PROTOKOŁU SMESX. Platforma SMeSKom - instrukcja korzystania z interfejsu HTTPS Protokół w wersji 2.0

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

Terytorialna analiza danych

XML-RPC: Zdalne wykonywanie procedur

Dokumentacja REST API v 3.0


Sprawdzenie stanu opłacenia pakietu Zlecenie sprawdzenia stanu opłacenia... 23

Wybrane działy Informatyki Stosowanej

Wszystkie dane powinny być przekazane za pomocą metody POST, zakodowane za pomocą funkcji urlencode().

Funkcje dodatkowe. Wersja 1.2.1

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Proces obsługi deklaracji Intrastat w systemie Celina WebCel

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

System Przydzielenia i Pobierania Numerów Recept. Opis interfejsu dostępowego v. 1.0

DOKUMENTACJA PROTOKOŁU SMESX. Platforma SMeSKom - instrukcja korzystania z interfejsu HTTPS. Autor smeskom@smeskom.pl Data Wersja 1.

Dokumentacja. Wersja: 1.5 Ostatnio zmodyfikowano: Strona 1

Spis treści DOKUMENTACJA TECHNICZNA. STS API wersja 1.1

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

QualitySpy moduł reports

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP

Internetowe bazy danych

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Instrukcja logowania do systemu Rejestru Unii dla nowych użytkowników

Dokumentacja API. SOAP - webservice v

Konspekt pracy inżynierskiej

System obsługi zleceń na zaopatrzenie w wyroby medyczne. Opis interfejsu dostępowego v. 1.0

Karol Gałka. Numer albumu: Inżynieria mechatroniczna

System ewuś. Opis interfejsu dostępowego v. 1.5

Protokoły zdalnego logowania Telnet i SSH

Przelewy24. Specyfikacja techniczna instalacji. Przelewy24 Specyfikacja techniczna instalacji. Data: Wersja: 3.2

Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Transkrypt:

Mobilne Rozwiązania dla biznesu SPECYFIKACJA TECHNICZNA WEB API-USSD GATESMS.EU wersja 0.9 Opracował: Gatesms.eu

Spis Historia wersji dokumentu...3 Bezpieczeństwo...3 Wymagania ogólne...3 Mechanizm zabezpieczenia transmisji HTTP...3 Zasady ogóle...3 Definicja usług zdalnych...4 Zasada działania komunikacji z serwerem USSD...4 Informacje dodatkowe o usłudze...4 Nawiązywanie połączenia z serwerem USSD - rozpoczęcie sesji...4 Przykład żądania parametr body...4 Przykład odpowiedzi serwera...4 Komunikacja z aplikacją klienta...5 Nagłówki...5 Przykłady...5 Klasa obsługująca Web USSD Api...6 2/ 7

Historia wersji dokumentu 0.9 - wersja robocza 25.01.2012 Bezpieczeństwo Wymagania ogólne 1. Komunikacja w obu kierunkach musi uwzględniać zabezpieczenia transmisji HTTP opisane poniżej. Mechanizm zabezpieczenia transmisji HTTP Zabezpieczenia dla usług zdalnych dostępnych przez HTTP są niezależne od metody i formatu przesyłanych wiadomości Zasady ogóle Metody zdalne zwracają status http mniejszy niż 300 w przypadku, gdy operacja się powiedzie. Zwykle będą to statusy 200 lub 204. W przypadku, gdy operacja się nie powiedzie, usługa zwraca status błędu większy bądź równy 400. Dla uściślenia statusy od 400 włącznie do 500 wyłącznie oznaczają błąd w żądaniu (np. złe parametry - 400, błąd uwierzytelniania - 403, zły adres - 404). Statusy powyżej 500 włącznie oznaczają błąd po stronie serwera. Możliwe, że to samo żądanie po usunięciu usterki może zostać obsłużone poprawnie. Oznacza to, że dla statusów błędów poniżej 500 nie ma sensu ponawiać żądania, natomiast dla statusów od 500 włącznie, żądanie można ponawiać. Cele mechanizmu bezpieczeństwa: 1. Uwierzytelnienie klienta i serwera 2. Weryfikacja poprawności i prawdziwości żądania i odpowiedzi Serwer dla każdego klienta przygotowuje parę KeyID i SecretKey, gdzie KeyID jest identyfikatorem (jawnym, login podany w procesie rejestracji) a SecretKey jest kluczem ukrytym (hasło, 10 znaków). Aktualny tajny klucz można odczytać lub wygenerować po zalogowaniu w zakładce DANE UŻYTKOWNIKA. Obie te wartości są znane dla klienta i serwera. Uwierzytelnianie opiera się o dwa nagłówki HTTP dodawane do żądania i odpowiedzi. Dla żądania 1. X-GT-Timestamp - timestamp operacji (unix timestamp) 2. X-GT-Auth - dodatkowy nagłówek do uwierzytelniania. Przykład: X-GT-Auth: [KeyID]:[Hash] gdzie Hash to przygotowany skrót wiadomości opisany poniżej. X-GT-Auth: 1234567:098f6bcd4621d373cade4e832627b4f6. Hash = MD5(HTTP_method + URI_Path_Query + MD5_Body + Accept + X-GT-Timestamp + SecretKey) Gdzie MD5 to funkcja haszująca a '+' oznacza konkatenację łańcuchów znaków oraz: Przykład: 1. HTTP_method to GET, POST, PUT itp. 2. URI_Path_Query to ścieżka i query string czyli część URL'a od pierwszego znaku '/' np: /ussd_api.php 3. MD5_Body - to MD5 z treści żądania o ile jest 4. Accept - nagłówek określający format odpowiedzi (zgodny ze standardem), przyjmuje wartości np. application/xml 5. X-GT-Timestamp - timestamp wykonania operacji (taki jak w nagłówku) 6. SecretKey - klucz klienta MD5(POST/ussd_api.phpZXQW345YULAccept:application/xml12844675753LQBwxTiDnv) 3/ 7

Strona odbierająca żądanie ma obowiązek sprawdzenia, czy Hash jest poprawny. Jeśli nie jest to powinien zostać zwrócony status 403. Dla odpowiedzi Hash = MD5(MD5_Body + Content-Type + X-GT-Timestamp + SecretKey) gdzie SecretKey to klucz klienta, od którego otrzymaliśmy wiadomość Przykład MD5(9843f33LQd8xTiDnvGAKoc8n7pQ5qi3CW9SG584ContentType:application/xml12844675753LQBwxTiDnv) Klient otrzymujący odpowiedź od serwera ma obowiązek sprawdzenia, czy odpowiedź jest podpisana poprawnie o ile żądanie zostało poprawnie obsłużone. Odpowiedzi o statusach >= 400 nie muszą być podpisane. W przypadku błędu komunikaty błędów mogę być zamieszczone w odpowiedzi HTTP jako tekst. Definicja usług zdalnych Do transmisji danych wykorzystywany będzie głównie format XML. Obie strony mają obowiązek zapewnić zgodność przesyłanych dokumentów ze standardem XML. Dotyczy to w szczególności zasad używania znaków specjalnych w wiadomościach. Dokument XML przesyłany jest metodą POST. Nagłówki Accept i Content-Type muszą być poprawnie ustawione, np.: Content-Type: application/xml Accept: application/xml Zasada działania komunikacji z serwerem USSD Zainicjowanie sesji z usługą leży po stronie klienta. Klient nawiązując połączenie z serwerem przekazuje podstawowe parametry potrzebne do zainicjowania sesji. Po zainicjowaniu sesji serwer USSD komunikuje się z usługą zdalną za pomocą protokołu HTTP z żądaniem podania listy instrukcji(menu). Usługa zdalna odpowiada a serwer USSD przekazuje informację pod wskazany numer MSISDN. Cała sesja trwa aż do zakończenia przez usługę inicjującą lub przez usługę zdalną. Informacje dodatkowe o usłudze Długość wiadomości przy kodowaniu GSM7 wynosi 182 znaki a wiadomości kodowane w UCS2 mają maksymalną długość 66 znaków. Nawiązywanie połączenia z serwerem USSD - rozpoczęcie sesji Adres usługi : http:///ussd_api.php Metoda : POST Content-Type: application/xml Accept: application/xml Przykład żądania parametr body <?xml version="1.0" encoding="utf-8" standalone="yes"?> <session prefix="index1" msisdn="48505165092" language="gsm-7" >START</session> Przykład odpowiedzi serwera <?xml version="1.0" encoding="utf-8" standalone="yes"?><session>start OK</session> 4/ 7

Element session: Atrybuty obowiązkowe prefix - unikalny identyfikator usługi klienta msisdn - numer komórkowy z którym będzie prowadzona korespondencja language - kodowanie, może przyjąć wartości GSM-7 lub UCS-2 Komunikacja z aplikacją klienta Po poprawnym nawiązaniu sesji z serwerem USSD, serwer nawiązuje połączenie z aplikacją kliencką wysyłając do niej żądania podania instrukcji (menu). Definicja adresu zdalnej usługi konfigurowana jest po zalogowaniu do systemu w zakładce SMS -> USSD. Należy podać prefix oraz adres do usługi. Serwer USSD komunikuje się z usługą zdalną (klient) wysyłając nagłówki oraz treść dokumentu xml. Metoda: POST Content-Type: application/x-www-form-urlencoded Accept: application/xml Nagłówki X-GT-Session: (String) - identyfikator sesji X-GT-Action: (String) start - wysyłany przy inicjowaniu sesji, wysyłany jako pierwszy komunikat reponse - wysyłany w trakcie trwania sesji stop - wysyłany do klienta aby zakończył sesję. Przykłady Nagłówek: X-GT-Action: start <?xml version="1.0" encoding="utf-8" standalone="yes"?><session msisdn="48787646535">abcd1234</session> <?xml version="1.0" encoding="utf-8" standalone="yes"?> <ussdmenu shouldclose="false" msisdn="48787646535">dobry program\n1 - TAK\n2 - NIE</ussdmenu> Element ussdmenu: Atrybuty obowiązkowe shouldclose - atrybut informuje czy nadawany komunikat jest ostatnim i transmisja powinna zosta ć zakończna msisdn - numer komórkowy Nagłówek: X-GT-Action: status <?xml version="1.0" encoding="utf-8" standalone="yes"?><session msisdn="48787646535">abcd1234</session> <?xml version="1.0" encoding="utf-8" standalone="yes"?><session isactive="true" msisdn=" 48787646535">abcd1234</session> Element session: Atrybuty obowiązkowe isactive - atrybut informuje czy aktualna sesja nadal jest potrzymywana przez aplikacj ę klienta msisdn - numer komórkowy Nagłówek: X-GT-Action: response <?xml version="1.0" encoding="utf-8" standalone="yes"?> <session msisdn="48787646535"><text>1</text></session> <?xml version="1.0" encoding="utf-8" standalone="yes"?> <ussdmenu shouldclose="true" msisdn="48787646535">do zobaczenia.</ussdmenu> 5/ 7

Nagłówek: X-GT-Action: stop <?xml version="1.0" encoding="utf-8" standalone="yes"?><session>end</session> <?xml version="1.0" encoding="utf-8" standalone="yes"?><session>end OK</session> Dodatek A Klasa obsługująca Web USSD Api Przykład obsługi klasy USSD_CLIENT z pliku ussd_client.php Przykładowy plik workflow.php Struktura plików źródłowych ussd/ ->session/ ->Session.php ->data/ ->http_request.php ->sms_xmlsender.php -> ussd_client.php ->workflow/ ->workflow1.php ->client/ ->trigger.php <? include '../session/session.php'; include '../data/ussd_client.php'; include '../data/sms_xmlsender.php'; include '../data/http_request.php'; //REQUEST $http_request = new http_request(); //SESJA $sessionid=$http_request->headers["x-gt-session"]; //ID SESJI $session = new Session($sessionID); $Workflow=$session->getWorkflow( $sessionid ); if($workflow) { $ussd=$workflow; } else { //Konstruktor klasy, oraz parametry $ussd = new USSD_CLIENT; $ussd->login="48603172099"; $ussd->pass="0c27ab3d03"; $ussd->debug=0; //LOGOWANIE $Hash_serv=$ussd->serverLogin($http_request); //ZADANIA $XML=$ussd->parserXML($http_request->body); //---------------------------------------------------------- if($http_request->headers["x-gt-action"]=='status') { $Workflow=$session->getWorkflow( $sessionid ); $isactive = ($Workflow)? 'true' : 'false'; $out=$ussd->getstats($isactive,$sessionid); } 6/ 7

?> if($http_request->headers["x-gt-action"]=='start') { $ussd->shouldclose='false'; $ussd->requestcount=1; $ussd->menu="twoje pierwsze menu testowe.\\n1 - Zakoncz"; $out=$ussd->getmenu(); $session->savesession( $sessionid, $ussd ); if($http_request->headers["x-gt-action"]=='response') { if($ussd->text=='1' && $ussd->requestcount==1) { $ussd->shouldclose='true'; $ussd->requestcount++; $ussd->menu="usluga dziala poprawnie"; $out=$ussd->getmenu(); } $session->savesession( $sessionid, $ussd ); if($http_request->headers["x-gt-action"]=='stop') { $out=$ussd->closesession(); $session->removeworkflow( $sessionid ); $ussd->toout($out); exit; 7/ 7