Wprowadzenie
MMSC API jest skierowane do użytkowników chcących rozbudować swoje aplikacje o system komunikacji z platformą MMSC Metroportu. Aplikacja ta w prosty sposób umożliwia integrację dowolnego serwisu z usługą MVNO Metroportu. Interfejs został zaprojektowany w standardzie REST API. Żądania i odpowiedzi są kodowane jako UTF-8.
Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded. Dodatkowe parametry dla żądań typu GET podawanie są w URL za ?.
Lista zmian
- 2023-09-20
POST /mvno/mobiles
dodano parametrysubservices
,subservices_params
,fup
- 2023-09-29
GET /mvno/mobiles
polausercode
,usertype
,UserData
oznaczone jako DEPRECATED, usunięcie planowane na Grudzień 2023 - 2023-10-03
GET /mvno/simcards
dodano polelpa
zwracające kod QR karty esim
Rozpoczęcie współpracy
W celu rozpoczęcia współpracy należy skontaktować się z Metroport w celu utworzenia konta w systemie centralnym MMSC, które następnie posłuży do autoryzacji.
Autoryzacja
Aby korzystać z funkcji interfejsu wymagana jest autoryzacja użytkownika. Jako pierwszy parametr każdej funkcji należy podać tablicę asocjacyjną zawierającą klucze:
Parametr | Opis |
---|---|
login | login operatora (taki sam jak przy logowaniu się do systemu MMS) |
password | aktualne, nie zakodowane hasło |
Dostęp do funkcji poprzez interfejs wymaga aby konto operatora miało dostęp do odpowiadającej strony w systemie MMS.
Adresy URL
Adres URL do połączenia z aplikacją - zwane dalej "Adresem połączenia":
https://api.mmsc.metroport.pl/
- dla połączeń szyfrowanych SSL
Lista funkcji
URL :
- typ wywołania
(GET = pobranie danych / POST = dodanie rekordu / PUT = edycja rekordu / DELETE = usunięcie rekordu){identyfikator}
- identyfikator rekordu wewnątrz URL, zawsze liczbowy
Zalogowanie użytkownika
POST https://api.mmsc.metroport.pl/Admins/Auth/login
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Admins/Auth/login",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array('login' => 'admin','password' => '123456'),
CURLOPT_HTTPHEADER => array(
"Cookie: sess_ci=3719skfqgg431f0o1ths8qouomob0199"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
POST /Admins/Auth/login HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=3rv6tausagdt8p7s76gjddnd9a33sbnf
{"login":"admin", "password":"123456"}
Wymagane podanie parametrów:
Parametr | Opis |
---|---|
login | login operatora (taki sam jak przy logowaniu się do systemu MMS) |
password | aktualne, nie zakodowane hasło |
W wyniku zwrócony zostanie identyfikator sesji, w nagłówku ustawione zostanie ciasteczko:
sess_ci=zwrócone_id_sesji
Kolejne żądania muszą być wysyłane z autoryzacją - w nagłówku mieć ustawione otrzymane ciasteczko - opcja --cookie "sess_ci=id_sesji"
Kody błędów
Kody informacyjne
kod | opis słowny | znaczenie/zwrócony zasób |
---|---|---|
100 | Continue | Kontynuuj – prośba o dalsze wysyłanie zapytania |
101 | Switching Protocols | Zmiana protokołu |
110 | Connection Timed Out | Przekroczono czas połączenia. Serwer zbyt długo nie odpowiada. |
111 | Connection refused | Serwer odrzucił połączenie |
Kody powodzenia
kod | opis słowny | znaczenie/zwrócony zasób |
---|---|---|
200 | OK | Zawartość żądanego dokumentu (najczęściej zwracany nagłówek odpowiedzi w komunikacji WWW Internetu) |
201 | Created | Utworzono – wysłany dokument został zapisany na serwerze |
202 | Accepted | Przyjęto – zapytanie zostało przyjęte do obsłużenia, lecz jego zrealizowanie jeszcze się nie skończyło |
203 | Non-Authoritative Information | Informacja nieautorytatywna – zwrócona informacja nie odpowiada dokładnie odpowiedzi pierwotnego serwera, lecz została utworzona z lokalnych bądź zewnętrznych kopii |
204 | No content | Brak zawartości – serwer zrealizował zapytanie klienta i nie potrzebuje zwracać żadnej treści |
205 | Reset Content | Przywróć zawartość – serwer zrealizował zapytanie i klient powinien przywrócić pierwotny wygląd dokumentu |
206 | Partial Content | Część zawartości – serwer zrealizował tylko część zapytania typu GET, odpowiedź musi zawierać nagłówek Content-Range informujący o zakresie bajtowym zwróconego elementu |
Kody błędu aplikacji klienta
kod | opis słowny | znaczenie/zwrócony zasób |
---|---|---|
400 | Bad Request | Nieprawidłowe zapytanie – żądanie nie może być obsłużone przez serwer z powodu nieprawidłowości postrzeganej jako błąd użytkownika (np. błędna składnia zapytania) |
401 | Unauthorized | Nieautoryzowany dostęp – żądanie zasobu, który wymaga uwierzytelnienia |
402 | Payment Required | Wymagana opłata – odpowiedź zarezerwowana na przyszłość. Google Developers API korzysta z tego kodu, jeśli dany programista przekroczył dzienny limit zapytań[1]. |
403 | Forbidden | Zabroniony – serwer zrozumiał zapytanie, lecz konfiguracja bezpieczeństwa zabrania mu zwrócić żądany zasób |
404 | Not Found | Nie znaleziono – serwer nie odnalazł zasobu według podanego URL ani niczego co by wskazywało na istnienie takiego zasobu w przeszłości |
405 | Method Not Allowed | Niedozwolona metoda – metoda zawarta w żądaniu nie jest dozwolona dla wskazanego zasobu, odpowiedź zawiera też listę dozwolonych metod |
406 | Not Acceptable | Niedozwolone – zażądany zasób nie jest w stanie zwrócić odpowiedzi mogącej być obsłużonej przez klienta według informacji podanych w zapytaniu |
407 | Proxy Authentication Required | Wymagane uwierzytelnienie do serwera pośredniczącego (ang. proxy) – analogicznie do kodu 401, dotyczy dostępu do serwera proxy |
408 | Request Timeout | Koniec czasu oczekiwania na żądanie – klient nie przesłał zapytania do serwera w określonym czasie |
409 | Conflict | Konflikt – żądanie nie może być zrealizowane, ponieważ występuje konflikt z obecnym statusem zasobu, ten kod odpowiedzi jest zwracany tylko w przypadku podejrzewania przez serwer, że klient może znaleźć przyczyny błędu i przesłać ponownie prawidłowe zapytanie. Odpowiedź serwera powinna zawierać informację umożliwiające klientowi rozwiązanie problemu, jednak nie jest to obowiązkowe (np. przesłanie 2 razy identycznego dokumentu kiedy wymagana jest unikalność). |
410 | Gone | Zniknął (usunięto) – zażądany zasób nie jest dłużej dostępny i nieznany jest jego ewentualny nowy adres URI; klient powinien już więcej nie odwoływać się do tego zasobu |
411 | Length required | Wymagana długość – serwer odmawia zrealizowania zapytania ze względu na brak nagłówka Content-Length w zapytaniu; klient może powtórzyć zapytanie dodając doń poprawny nagłówek długości |
412 | Precondition Failed | Warunek wstępny nie może być spełniony – serwer nie może spełnić przynajmniej jednego z warunków zawartych w zapytaniu |
413 | Request Entity Too Large | Encja zapytania zbyt długa – całkowita długość zapytania jest zbyt długa dla serwera |
414 | Request-URI Too Long | Adres URI zapytania zbyt długi – długość zażądanego URI jest większa niż maksymalna oczekiwana przez serwer |
415 | Unsupported Media Type | Nieznany sposób żądania – serwer odmawia przyjęcia zapytania, ponieważ jego składnia jest niezrozumiała dla serwera |
416 | Requested Range Not Satisfiable | Zakres bajtowy podany w zapytaniu nie do obsłużenia – klient podał w zapytaniu zakres, który nie może być zastosowany do wskazanego zasobu |
417 | Expectation Failed | Oczekiwana wartość nie do zwrócenia – oczekiwanie podane w nagłówku Expect żądania nie może być spełnione przez serwer lub – jeśli zapytanie realizuje serwer proxy – serwer ma dowód, że oczekiwanie nie będzie spełnione przez następny w łańcuchu serwer realizujący zapytanie |
422 | Unprocessable entity | Zapytanie było poprawnie sformułowane, ale było niemożliwe do kontynuowania z powodu semantycznych błędów. |
Kody błędu serwera HTTP
kod | opis słowny | znaczenie/zwrócony zasób |
---|---|---|
500 | Internal Server Error | Wewnętrzny błąd serwera – serwer napotkał niespodziewane trudności, które uniemożliwiły zrealizowanie żądania |
501 | Not Implemented | Nie zaimplementowano – serwer nie dysponuje funkcjonalnością wymaganą w zapytaniu; ten kod jest zwracany, gdy serwer otrzymał nieznany typ zapytania |
502 | Bad Gateway | Błąd bramy – serwer – spełniający rolę bramy lub pośrednika – otrzymał niepoprawną odpowiedź od serwera nadrzędnego i nie jest w stanie zrealizować żądania klienta |
503 | Service Unavailable | Usługa niedostępna – serwer nie jest w stanie w danej chwili zrealizować zapytania klienta ze względu na przeciążenie |
504 | Gateway Timeout | Przekroczony czas bramy – serwer – spełniający rolę bramy lub pośrednika – nie otrzymał w ustalonym czasie odpowiedzi od wskazanego serwera HTTP, FTP, LDAP itp. lub serwer DNS jest potrzebny do obsłużenia zapytania |
505 | HTTP Version Not Supported | Nieobsługiwana wersja HTTP – serwer nie obsługuje bądź odmawia obsługi wskazanej przez klienta wersji HTTP |
507 | Insufficient Storage (WebDAV)[5] | Serwer nie jest w stanie zapisać danych związanych z wykonaniem zapytania |
508 | Loop Detected (WebDAV)[6] | Serwer wykrył nieskończoną pętlę w trakcie przetwarzania zapytania |
509 | Bandwidth Limit Exceeded | Serwer jest tymczasowo niedostępny, ponieważ właściciel strony przekroczył limit transferu danych. |
510 | Not Extended[7] | Brak rozszerzenia HTTP koniecznego do obsługi danego zapytania |
511 | Network Authentication Required[8] | Wymagane uwierzytelnienie przed otrzymaniem dostępu do sieci. W zamyśle wykorzystywane przez pośredników kontrolujących dostęp do sieci (np.: wymaganie potwierdzenia zasad użytkowania przed udostępnieniem połączenia). |
Klienci i użytkownicy
Lista użytkowników
GET https://api.mmsc.metroport.pl/Users/users
- Funkcja zwracająca listę klientów i użytkowników w systemie.
- Strona w MMS: Użytkownicy -> Lista
- Rodzaj użytkowników do pobrania: '1' = tylko klienci / '2' = tylko użytkownicy / 'brak prametru' = wszyscy (domyślnie)
GET /Users/users? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=90u5ml4apsfkuovmmoidl95fhhjo7280
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Users/users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=90u5ml4apsfkuovmmoidl95fhhjo7280"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu (pierwszy wiersz przedstawia ilość wszystkich rekordów, poniżej jeden przykładowy rekord):
[
"10000",
[
{
"id": "14924",
"firmid": "1",
"userno": "3",
"usercode": "000003",
"usertype": "2",
"customertype": "2",
"name": "Test",
"lastname": "API",
"teryt_spotid_city1": "0",
"teryt_spotid_street1": "0",
"teryt_streetid_street1": "0",
"streetname1": "",
"streetno1": "",
"local1": "",
"zip1": "",
"city1": "Łódź",
"zipcity1": "",
"country1": "",
"teryt_spotid_city2": "0",
"teryt_spotid_street2": "0",
"teryt_streetid_street2": "0",
"streetname2": "",
"streetno2": "",
"local2": "",
"zip2": "",
"city2": "",
"zipcity2": "",
"country2": "",
"email": "testapi@test.pl",
"email2": "",
"email3": "",
"email_invoices": "",
"nip": "",
"idcardno": "AGH754328",
"pesel": "",
"phone1": "",
"phone2": "",
"phone3": "",
"fax": "",
"borndate_day": "0",
"borndate_month": "0",
"borndate_year": "0000",
"boklogin": "kl014924",
"bokpass": "",
"bokquestion": "",
"bokanswer": "",
"bokfirstpass": "e6hHnn",
"provider": "0",
"nowarning": "0",
"wiruswarn": "0",
"spammed": "0000-00-00 00:00:00",
"spammed_enabled": "0",
"checkstartdate": "0",
"checkclient": "0",
"voiplimit": "300.00",
"voiplimit_base": "300.00",
"voiplimitday": "60.00",
"voiplimitday_base": "60.00",
"mvnolimit": "300.00",
"mvnolimit_base": "300.00",
"mvnolimitday": "60.00",
"mvnolimitday_base": "60.00",
"description": "",
"archived": "0",
"creationdate": "1595956881",
"creatorid": "40",
"moddate": "1596208511",
"modid": "40",
"deleted": "0",
"deleteid": "0",
"deletedate": "0",
"updated": "0",
"loyality_download_percent": "0",
"loyality_upload_percent": "0",
"loyality_plan_enabled": "0",
"loyality_plan_type": "0",
"loyality_plan_invoicepay_margin": "0",
"loyality_plan_allowed": "0",
"bankaccount": "",
"pin_phone": "998792",
"iptv_cust_master_pin": "",
"iptv_cust_vod_pin": "",
"invoiceflag": "1",
"invoicesgroup": "1",
"dataprocess": "1",
"dataprocess_directmarketing": "1",
"dataprocess_ads": "1",
"UserName": "API Test",
"UserCodeName": "(000003) API Test"
}
[
"10000",
[
{
"id": "14924",
"firmid": "1",
"userno": "3",
"usercode": "000003",
"usertype": "2",
"customertype": "2",
"name": "Test",
"lastname": "API",
"teryt_spotid_city1": "0",
"teryt_spotid_street1": "0",
"teryt_streetid_street1": "0",
"streetname1": "",
"streetno1": "",
"local1": "",
"zip1": "",
"city1": "Łódź",
"zipcity1": "",
"country1": "",
"teryt_spotid_city2": "0",
"teryt_spotid_street2": "0",
"teryt_streetid_street2": "0",
"streetname2": "",
"streetno2": "",
"local2": "",
"zip2": "",
"city2": "",
"zipcity2": "",
"country2": "",
"email": "testapi@test.pl",
"email2": "",
"email3": "",
"email_invoices": "",
"nip": "",
"idcardno": "AGH754328",
"pesel": "",
"phone1": "",
"phone2": "",
"phone3": "",
"fax": "",
"borndate_day": "0",
"borndate_month": "0",
"borndate_year": "0000",
"boklogin": "kl014924",
"bokpass": "",
"bokquestion": "",
"bokanswer": "",
"bokfirstpass": "e6hHnn",
"provider": "0",
"nowarning": "0",
"wiruswarn": "0",
"spammed": "0000-00-00 00:00:00",
"spammed_enabled": "0",
"checkstartdate": "0",
"checkclient": "0",
"voiplimit": "300.00",
"voiplimit_base": "300.00",
"voiplimitday": "60.00",
"voiplimitday_base": "60.00",
"mvnolimit": "300.00",
"mvnolimit_base": "300.00",
"mvnolimitday": "60.00",
"mvnolimitday_base": "60.00",
"description": "",
"archived": "0",
"creationdate": "1595956881",
"creatorid": "40",
"moddate": "1596208511",
"modid": "40",
"deleted": "0",
"deleteid": "0",
"deletedate": "0",
"updated": "0",
"loyality_download_percent": "0",
"loyality_upload_percent": "0",
"loyality_plan_enabled": "0",
"loyality_plan_type": "0",
"loyality_plan_invoicepay_margin": "0",
"loyality_plan_allowed": "0",
"bankaccount": "",
"pin_phone": "998792",
"iptv_cust_master_pin": "",
"iptv_cust_vod_pin": "",
"invoiceflag": "1",
"invoicesgroup": "1",
"dataprocess": "1",
"dataprocess_directmarketing": "1",
"dataprocess_ads": "1",
"UserName": "API Test",
"UserCodeName": "(000003) API Test"
}
Wartość zwracana:
Parametr | Opis |
---|---|
id | ID użytkownika / klienta |
firmid | ID firmy |
userno | Numer klienta |
usercode | Kod klienta |
usertype | '1' = klient / '2' = użytkownik |
customertype | '1' = firma / '2' = prywatny |
name | Imię klienta / c.d. nazwy |
lastname | Nazwisko klienta / nazwa firmy |
teryt_spotid_city1 | identyfikator TERYT - miasto |
teryt_spotid_street1 | identyfikator TERYT - budynek |
teryt_streetid_street1 | identyfikator TERYT - ulica |
streetname1 | Adres zamieszkania: nazwa ulicy |
streetno1 | Adres zamieszkania: numer ulicy |
local1 | Adres zamieszkania: numer lokalu |
zip1 | Adres zamieszkania: kod pocztowy |
city1 | Adres zamieszkania: nazwa miasta |
zipcity1 | Adres zamieszkania: miasto dla poczty |
country1 | Adres zamieszkania: kraj |
streetname2 | Adres korespondencyjny: nazwa ulicy |
streetno2 | Adres korespondencyjny: numer ulicy |
local2 | Adres korespondencyjny: numer lokalu |
zip2 | Adres korespondencyjny: kod pocztowy |
city2 | Adres korespondencyjny: miasto |
zipcity2 | Adres korespondencyjny: miasto poczty |
country2 | Adres korespondencyjny: kraj |
Adres e-mail klienta | |
email2 | Dodatkowy adres e-mail |
email3 | Dodatkowy adres e-mail |
email_invoices | Adres e-mail do wysyłania dokumentów elektronicznych |
nip | Numer NIP |
idcardno | Numer dowodu osobistego |
pesel | Numer PESEL |
phone1 | Numer telefonu klienta |
phone2 | Dodatkowy numer telefonu |
phone3 | Dodatkowy numer telefonu |
fax | Fax klienta |
borndate_day | Data urodzenia - dzień |
borndate_month | Data urodzenia - miesiąc |
borndate_year | Data urodzenia - rok |
boklogin | Login do e-bok klienta |
bokpass | hasło do E-BOK (zmienione, ustalone przez klienta) |
bokquestion | pytanie do odzyskania hasła do E-BOK |
bokanswer | odpowiedz na pytanie do odzyskania hasła |
bokfirstpass | hasło podstawowe z umowy (autogenerowane) |
provider | czy klient jest providerem, 1-tak (brak ostrzeżeń, zawsze ma net, nie jest uwzględniany podczas windykacji) |
nowarning | wyłączenie ostrzeżeń, 1-brak ostrzeżeń, 0-pełne ostrzeganie |
wiruswarn | ostrzeżenia o wirusach, 1-włączone |
spammed | data ostatniego włączenia ostrzeżenia o tym, że klient wysyła spam |
spammed_enabled | ostrzeżenie o spamowaniu, 1-włączone (włącza się automatycznie po wykryciu spamowania przez klienta) |
checkstartdate | sprawdzanie klienta - data rozpoczęcia |
checkclient | sprawdzanie klienta - ilość godzin |
voiplimit | ustawiony limit miesięcznych kosztów rozmów voip |
voiplimit_base | ustawiony limit miesięcznych kosztów rozmów voip - do przywrócenia w nast. miesiącu |
voiplimitday | ustawiony dzienny limit kosztów rozmów voip |
voiplimitday_base | ustawiony dzienny limit kosztów rozmów voip - do przywrócenia następnego dnia |
mvnolimit | ustawiony limit miesięcznych kosztów rozmów mvno |
mvnolimit_base | ustawiony limit miesięcznych kosztów rozmów mvno - do przywrócenia w nast. miesiącu |
mvnolimitday | ustawiony dzienny limit kosztów rozmów mvno |
mvnolimitday_base | ustawiony dzienny limit kosztów rozmów mvno - do przywrócenia następnego dnia |
description | dodatkowy opis |
archived | klient archiwalny, 1-tak |
creationdate | data utworzenia klienta |
creatorid | administrator tworzący |
moddate | data modyfikacji danych |
modid | administrator modyfikujący |
deleted | flaga usunięcia klienta, 1-usunięty |
deleteid | administrator usuwający |
deletedate | data usunięcia klienta |
updated | flaga aktualizacji danych klienta, 1-zaktualizowane (np aneksem, do importu faktur/danych klientów w XML) |
loyality_download_percent | program lojalnościowy - procent zmiany dla download (tylko usługi internetowe) |
loyality_upload_percent | program lojalnościowy - procent zmiany dla upload (tylko usługi internetowe) |
loyality_plan_enabled | program lojalnościowy - flaga aktywności, 1-włączony, 0-wyłączony (tylko usługi internetowe) |
loyality_plan_type | program lojalnościowy - typ programu, 0-wyłączony, 1-czasowy ze sprawdzaniem salda, 2-na stałe (tylko usługi internetowe) |
loyality_plan_invoicepay_margin | program lojalnościowy - margines sprawdzania płatności i terminów faktur, w dniach (tylko usługi internetowe) |
loyality_plan_allowed | program lojalnościowy - flaga dopuszczenia do programu, 1-wpłaty w terminie i dopuszczenie do programu (tylko usługi internetowe) |
bankaccount | Rachunek bankowy do wpłat klienta |
pin_phone | PIN klienta do autoryzacji rozmowy telefonicznej |
iptv_cust_master_pin | pin podstawowy klienta, z umowy |
iptv_cust_vod_pin | pin podstawowy klienta do VOD, z umowy |
invoiceflag | Znacznik faktury |
invoicesgroup | czy grupować faktury z różnych umów, jeśli maja ten sam adres fakturowany ? |
dataprocess | zgoda na przetwarzanie danych osobowych klienta, wymagana dla świadczenia usług |
dataprocess_directmarketing | zgoda na przetwarzanie danych do celów marketingu bezpośredniego |
dataprocess_ads | zgoda na przetwarzanie danych w celach marketingowych, przesyłanie informacji handlowych, przekazywanie danych podmiotom współpracującym |
UserName | połączone dane klienta |
UserCodeName | połączone dane klienta wraz z ID |
Pobranie danych użytkownika
GET https://api.mmsc.metroport.pl/Users/users/{ID użytkownika}
- Funkcja zwracająca dane wybranego klienta / użytkownika.
- Strona w MMS: Użytkownicy -> Informacje o użytkowniku
GET /Users/users/5678? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=90u5ml4apsfkuovmmoidl95fhhjo7280
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Users/users/5678",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=90u5ml4apsfkuovmmoidl95fhhjo7280"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku znalezienia rekordu:
{
"id": "5678",
"firmid": "36",
"userno": "2450",
"usercode": "2450",
"usertype": "2",
"customertype": "2",
"name": "Aneta",
"lastname": "Kowalska",
"teryt_spotid_city1": "964614",
"teryt_spotid_street1": "964614",
"teryt_streetid_street1": "20291",
"streetname1": "Juliusza Kowalskiego",
"streetno1": "4",
"local1": "",
"zip1": "11-040",
"city1": "Dobre Miasto",
"zipcity1": "Dobre Miasto",
"country1": "Polska",
"teryt_spotid_city2": "0",
"teryt_spotid_street2": "0",
"teryt_streetid_street2": "0",
"streetname2": "",
"streetno2": "",
"local2": "",
"zip2": "",
"city2": "",
"zipcity2": "",
"country2": "Polska",
"email": "",
"email2": "",
"email3": "",
"email_invoices": "",
"nip": "",
"idcardno": "",
"pesel": "",
"phone1": "",
"phone2": "",
"phone3": "",
"fax": "",
"borndate_day": "0",
"borndate_month": "0",
"borndate_year": "0000",
"boklogin": "kl005678",
"bokpass": "",
"bokquestion": "",
"bokanswer": "",
"bokfirstpass": "KMuuaK",
"provider": "0",
"nowarning": "0",
"wiruswarn": "1",
"spammed": null,
"spammed_enabled": "0",
"checkstartdate": "0",
"checkclient": "0",
"voiplimit": "300.00",
"voiplimit_base": "300.00",
"voiplimitday": "60.00",
"voiplimitday_base": "60.00",
"mvnolimit": "300.00",
"mvnolimit_base": "300.00",
"mvnolimitday": "60.00",
"mvnolimitday_base": "60.00",
"description": "",
"archived": "0",
"creationdate": "1456903254",
"creatorid": "116",
"moddate": "0",
"modid": "0",
"deleted": "0",
"deleteid": "0",
"deletedate": "0",
"updated": "0",
"loyality_download_percent": "0",
"loyality_upload_percent": "0",
"loyality_plan_enabled": "0",
"loyality_plan_type": "0",
"loyality_plan_invoicepay_margin": "0",
"loyality_plan_allowed": "0",
"bankaccount": "",
"pin_phone": "241387",
"iptv_cust_master_pin": "1594",
"iptv_cust_vod_pin": "5178",
"invoiceflag": "0",
"invoicesgroup": "0",
"dataprocess": "1",
"dataprocess_directmarketing": "1",
"dataprocess_ads": "1",
"invoice_flag_description": null,
"LoyalityDescr": "nieaktywny",
"UserAddress": "Dobre Miasto, ul. Juliusza Kowalskiego 300, 11-040 Dobre Miasto",
"UserSelectData": "Kowalska Aneta, Dobre Miasto, Juliusza Kowalskiego 300, 11-040 Dobre Miasto",
"FirmName": "Operator",
"UserName": "Kowalska Aneta",
"UserCodeName": "(2450) Kowalska Aneta"
}
odpowiedź w przypadku braku rekordu:
ERROR 204: No Content
Wartość zwracana:
Parametr | Opis |
---|---|
id | ID użytkownika / klienta |
userno | Numer klienta |
usercode | Kod klienta |
usertype | '1' = klient / '2' = użytkownik |
customertype | '1' = firma / '2' = prywatny |
lastname | Nazwisko klienta / nazwa firmy |
name | Imię klienta / c.d. nazwy |
streetname1 | Adres zamieszkania: nazwa ulicy |
streetno1 | Adres zamieszkania: numer ulicy |
local1 | Adres zamieszkania: numer lokalu |
zip1 | Adres zamieszkania: kod pocztowy |
city1 | Adres zamieszkania: nazwa miasta |
zipcity1 | Adres zamieszkania: miasto dla poczty |
country1 | Adres zamieszkania: kraj |
streetname2 | Adres korespondencyjny: nazwa ulicy |
streetno2 | Adres korespondencyjny: numer ulicy |
local2 | Adres korespondencyjny: numer lokalu |
zip2 | Adres korespondencyjny: kod pocztowy |
city2 | Adres korespondencyjny: miasto |
zipcity2 | Adres korespondencyjny: miasto poczty |
country2 | Adres korespondencyjny: kraj |
nip | Numer NIP |
idcardno | Numer dowodu osobistego |
pesel | Numer PESEL |
Adres e-mail klienta | |
email2 | Dodatkowy adres e-mail |
email3 | Dodatkowy adres e-mail |
phone1 | Numer telefonu klienta |
phone2 | Dodatkowy numer telefonu |
phone3 | Dodatkowy numer telefonu |
fax | Fax klienta |
boklogin | Login do e-bok klienta |
bankaccount | Rachunek bankowy do wpłat klienta |
description | Dodatkowy opis klienta |
statuses | Opis statusów klienta |
Dodanie użytkownika
POST https://api.mmsc.metroport.pl/Users/users
- Funkcja dodająca użytkownika / klienta do bazy MMS.
- Strona w MMS: Użytkownicy -> Nowy użytkownik
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
POST /Users/users/? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=90u5ml4apsfkuovmmoidl95fhhjo7280
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Users/users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array('name' => 'Test','lastname' => 'API','city1' => 'Łódź'),
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=e29qik65pcmj7nlslli1gq0eih8r454n"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu (zwracane jest ID użytkownika dodanego do bazy):
14924
14924
odpowiedź w przypadku nie podania parametrów:
{
"lastname": "Pole Nazwa/Nazwisko jest wymagane.",
"city1": "Pole Miasto jest wymagane."
}
{
"lastname": "Pole Nazwa/Nazwisko jest wymagane.",
"city1": "Pole Miasto jest wymagane."
}
odpowiedź w przypadku próby dodania istniejącego użytkownika:
{
"": "Taki klient już istnieje."
}
{
"": "Taki klient już istnieje."
}
Parametr wywołania | Opis |
---|---|
customertype | '1' = firma / '2' = prywatny (domyślnie) |
lastname | Nazwisko klienta / nazwa firmy |
name | Imię klienta / c.d. nazwy |
streetname1 | Adres zamieszkania: nazwa ulicy |
streetno1 | Adres zamieszkania: numer ulicy |
local1 | Adres zamieszkania: numer lokalu |
zip1 | Adres zamieszkania: kod pocztowy |
city1 | Adres zamieszkania: nazwa miasta |
zipcity1 | Adres zamieszkania: miasto dla poczty |
country1 | Adres zamieszkania: kraj |
streetname2 | Adres korespondencyjny: nazwa ulicy |
streetno2 | Adres korespondencyjny: numer ulicy |
local2 | Adres korespondencyjny: numer lokalu |
zip2 | Adres korespondencyjny: kod pocztowy |
city2 | Adres korespondencyjny: miasto |
zipcity2 | Adres korespondencyjny: miasto poczty |
country2 | Adres korespondencyjny: kraj |
nip | Numer NIP |
idcardno | Numer dowodu osobistego |
pesel | Numer PESEL |
Adres e-mail klienta | |
email2 | Dodatkowy adres e-mail |
email3 | Dodatkowy adres e-mail |
phone1 | Numer telefonu klienta |
phone2 | Dodatkowy numer telefonu |
phone3 | Dodatkowy numer telefonu |
fax | Fax klienta |
description | Dodatkowy opis klienta |
Edycja użytkownika
PUT https://api.mmsc.metroport.pl/Users/users/{ID Użytkownika}
- Funkcja edytująca użytkownika / klienta w bazie MMS.
- Strona w MMS: Użytkownicy -> Karta Użytkownika -> Edycja Użytkownika
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
PUT /Users/users/14924? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/x-www-form-urlencoded
Cookie: sess_ci_dev=gl4c90s8kfv1tpqijr7j7492knd0oj8c
lastname=API&city1=Łódź&email=testapi@test.pl
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Users/users/14924",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "lastname=API&city1=%u0141%F3d%u017A&email=testapi@test.pl",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded",
"Cookie: sess_ci_dev=gl4c90s8kfv1tpqijr7j7492knd0oj8c"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu (zwracany jest status operacji):
true
true
odpowiedź w przypadku nie podania parametrów w json:
{
"lastname": "Pole Nazwa/Nazwisko jest wymagane.",
"city1": "Pole Miasto jest wymagane."
}
{
"lastname": "Pole Nazwa/Nazwisko jest wymagane.",
"city1": "Pole Miasto jest wymagane."
}
odpowiedź w przypadku próby dodania istniejącego użytkownika:
{
"": "Błąd podczas zapisywania"
}
{
"": "Błąd podczas zapisywania"
}
Parametr wywołania | Opis |
---|---|
id | ID użytkownika / klienta |
customertype | '1' = firma / '2' = prywatny (domyślnie) |
lastname | Nazwisko klienta / nazwa firmy |
name | Imię klienta / c.d. nazwy |
streetname1 | Adres zamieszkania: nazwa ulicy |
streetno1 | Adres zamieszkania: numer ulicy |
local1 | Adres zamieszkania: numer lokalu |
zip1 | Adres zamieszkania: kod pocztowy |
city1 | Adres zamieszkania: nazwa miasta |
zipcity1 | Adres zamieszkania: miasto dla poczty |
country1 | Adres zamieszkania: kraj |
streetname2 | Adres korespondencyjny: nazwa ulicy |
streetno2 | Adres korespondencyjny: numer ulicy |
local2 | Adres korespondencyjny: numer lokalu |
zip2 | Adres korespondencyjny: kod pocztowy |
city2 | Adres korespondencyjny: miasto |
zipcity2 | Adres korespondencyjny: miasto poczty |
country2 | Adres korespondencyjny: kraj |
nip | Numer NIP |
idcardno | Numer dowodu osobistego |
pesel | Numer PESEL |
Adres e-mail klienta | |
email2 | Dodatkowy adres e-mail |
email3 | Dodatkowy adres e-mail |
phone1 | Numer telefonu klienta |
phone2 | Dodatkowy numer telefonu |
phone3 | Dodatkowy numer telefonu |
fax | Fax klienta |
description | Dodatkowy opis klienta |
IPTV
Współpraca
Aktywacja usługi IPTV z systemu zewnętrznego przebiega w następujący sposób:
- dodanie klienta do systemu funkcją
POST /Users/users
, każdy klient ma unikalne ID Użytkownikauserid
, - pobranie listy podsieci IPTV funkcją
GET /Iptv/Networks
, ID podsieci wymagane jest do dodania klientowi konta IPTV w następnym kroku, - dodanie konta klientowi na podstawie jego
userid
funkcjąPOST /Iptv/Accounts
, funkcja zwróci unikalne ID konta opisane dalej jakoaccountid
, - pobranie listy pakietów podstawowych funkcją
GET /Iptv/Packages?pkg_group=1&active=1
, pakiet podstawowy jest wymagany dla konta, - dodanie pakietu podstawowego dla
accountid
funkcjąPOST /Iptv/Orders
, funkcja zwróciorderid
subskrypcji, - pobranie listy dostępnych dekoderów funkcją
GET /Iptv/Stbs?status=1
, wybrany dekoder trzeba dodać do pakietu podstawowego w następnym kroku, - przypisanie dekodera do pakietu podstawowego funkcją
PUT /Iptv/Stbs/linkSTB
używającaccountid
,networkid
,orderid
. - ew. dodanie dodatkowych pakietów oraz pakietów multiroom (do pakietu multiroom trzeba dodać dekoder jak wyżej).
W systemie IPTV nie ma billingow. Wszystkie pakiety ustawione ze strony klienta (np. PPV) trzeba wyszukiwać poprzez codzienną synchronizację pakietów z MMSC do systemu zewnętrznego funkcją GET /Iptv/Orders
. Plany płatności muszą być generowane po stonie systemu zewnętrznego.
Pobranie listy pakietów IPTV
GET https://api.mmsc.metroport.pl/Iptv/Packages
- Funkcja zwracająca listę pakietów IPTV Partnera (pakiety główne dostępne do synchronizacji).
- Strona w MMS: IPTV -> Pakiety programów
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład dla wyszukania pakietów aktywnych z grupy Multiroom:
GET /Iptv/Packages?active=1&pkg_group=3 HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=opn6oerijmtbo0p14kuim83k42opj312
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Packages?active=1&pkg_group=3",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8"
"Cookie: sess_ci=opn6oerijmtbo0p14kuim83k42opj312"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "144",
"firmid": "1",
"iptv_program": "MMS",
"ext_pkg_id": "",
"tariffcode": "MULTIROOM2",
"pkg_name": "MULTIROOM",
"pkg_desc": "",
"pkg_tvpanel_desc": "",
"pkg_autoinclude": "",
"pkg_denied": "44,129,100,92,42,54,43,136,91,2,3,21,13,194,97,34,30,27,46,28,47,45,36,193,18,24,10,17,15,16,37,32,51,52,50,39,31,26,104,55,61,67,40,41,127",
"pkg_valid_from": "2016-02-09",
"pkg_valid_to": "2020-12-31",
"self_service": "0",
"npvr_quota": "0",
"tvonline_maxsessions": "0",
"pricenetto": "0.54",
"vat": "8",
"pricebrutto": "0.58",
"pricenetto_provider": "0.54",
"vat_provider": "8",
"pricebrutto_provider": "0.58",
"pkg_group": "3",
"active": "1",
"creationdate": "1455025613",
"moddate": "1493122443",
"deletedate": "0",
"http_export": "0",
"firmName": "METROPORT Sp. z o.o.",
"countActive": "2173"
}
Parametr wywołania (filtrowania) | Opis |
---|---|
active | 1=pakiet aktywny, może być wybrany na umowie/ aneksie |
pkg_name | nazwa pakietu |
iptv_program | wybrany program obslugi IPTV |
pkg_group | grupa: 1= podstawowy, 2= dodatkowy, 3= multiroom, 4= PPV |
firmid | id partnera |
Wartość zwracana | Opis |
---|---|
id | unikalne, autonumerowane id rekordu |
firmid | id partnera |
iptv_program | wybrany program obslugi IPTV |
ext_pkg_id | id pakietu w zewnętrznej bazie |
tariffcode | kod pakietu dla faktur |
pkg_name | nazwa pakietu |
pkg_desc | opis pakietu |
pkg_tvpanel_desc | opis dla TV panelu |
pkg_autoinclude | pakiety wymagane - automatycznie dodawane z tym pakietem |
pkg_denied | pakiety wykluczające - nie mogą być wybrane z tym pakietem |
pkg_valid_from | pakiet ważny od dnia |
pkg_valid_to | pakiet ważny do dnia |
self_service | Możliwość samodzielnej aktywacji pakietu przez klienta pilotem lub przez ebok |
npvr_quota | Ilość godzin dla nagrań klienta |
tvonline_maxsessions | Ilość możliwych jednoczesnych sesji w Metro TV |
pricenetto | cena netto dla klientów |
vat | % vat ceny |
pricebrutto | cena brutto dla klientów |
pricenetto_provider | koszt netto wobec dostawcy |
vat_provider | % vat dla kosztu wobec dostawcy |
pricebrutto_provider | koszt brutto wobec dostawcy |
pkg_group | grupa: 1= podstawowy, 2= dodatkowy, 3= multiroom, 4= PPV |
active | 1=pakiet aktywny, może być wybrany na umowie/ aneksie |
creationdate | czas utworzenia |
moddate | czas modyfikacji |
deletedate | czas usuniecia |
http_export | 1=export do pluginu włączony, 0=export do pluginu wyłączony |
countActive | liczba aktywnych pakietów danego typu |
Pobranie listy podsieci IPTV
GET https://api.mmsc.metroport.pl/Iptv/Networks
- Funkcja zwracająca listę podsieci IPTV.
- Strona w MMS: IPTV -> Podsieci IPTV
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
GET /Iptv/Networks HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=opn6oerijmtbo0p14kuim83k42opj312
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Networks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8"
"Cookie: sess_ci=opn6oerijmtbo0p14kuim83k42opj312"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
Wartość zwracana | Opis |
---|---|
id | unikalne, autonumerowane id rekordu |
firmid | id partnera |
iptv_program | wybrany program obslugi IPTV |
ext_subnet_id | id sieci w zewnetrznej bazie |
name | nazwa sieci |
address | adres sieci |
mask_prefix | prefiks - ilość bitów maski sieci |
mask | adres ip maski |
size | wielkość sieci |
transport | rodzaj transportu, unicast / multicast |
Dodanie parametru count=1
spowoduje zwrócenie dodatkowego pola:
Wartość zwracana | Opis |
---|---|
TotalSTBs | ilość dekoderów w sieci |
Pobranie listy STB
GET https://api.mmsc.metroport.pl/Iptv/Stbs
(pobranie listy wszystkich dostępnych STB)
GET https://api.mmsc.metroport.pl/Iptv/Stbs/{ID_STB}
(pobranie danego STB po ID)
- Funkcja zwracająca listę STB.
- Strona w MMS: IPTV -> IPTV - lista STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład dla wyszukania STB wg id modelu i ze statusem 'w magazynie':
GET /Iptv/Stbs?modelid=40&status=1 HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=fq4nbnj69jjkh96nq7grq7ji1k078jd8
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Stbs?modelid=40&status=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8"
"Cookie: sess_ci=fq4nbnj69jjkh96nq7grq7ji1k078jd8"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "646",
"firmid": "2",
"iptv_program": "MMS",
"status": "1",
"userid": "0",
"contractid": "0",
"actualtariffid": "0",
"networkid": "0",
"ext_linked": "0",
"mac": "00:02:9B:8C:4D:60",
"ipaddr": "0",
"serialnumber": "M91204FG4713",
"modelid": "40",
"devel": "0",
"description": "",
"activedate": "1376908613",
"fwlog": "0",
"boot_options": "",
"creationdate": "1339661685",
"creatorid": "75",
"moddate": "0",
"modid": "0",
"nodeid": "0",
"private": "0",
"active": "1",
"AddressIp": "",
"ModelName": "MOTOROLA VIP-1003",
"iptv_accountid": "0",
"order_id": null,
"firmname": "Forweb s.c.",
"UserName": null,
"usertype": null,
"StatusName": "w magazynie"
}
Parametr wywołania (filtrowania) | Opis |
---|---|
userid | id klienta/ uzytkownika |
atarriffid | id taryfy klienta |
status | status STB: 1= w magazynie, 2= zarezerwowane, 3= wydane, 4=uszkodzone |
mac | przydzielony MAC adres do STB |
modelid | id modelu |
nodeid | id węzła |
withoutnodeid | bez id węzła |
withoutprivate | bez prywatnych węzłów |
active | aktywny model 0=nie 1=tak |
searchName | wartość wyszukiwana (przeszukiwanie wśród pól: mac, serialnumber, ipaddr, lastname, name, boklogin) |
Wartość zwracana | Opis |
---|---|
id | unikalne, autonumerowane id rekordu |
firmid | id partnera |
iptv_program | wybrany program obslugi IPTV |
iptv_portalid | |
status | status STB: 1= w magazynie, 2= zarezerwowane, 3= wydane, 4=uszkodzone |
userid | id klienta/ użytkownika |
contractid | id umowy (pole aktualnie nieużywane w MMSC) |
actualtariffid | id taryfy klienta (pole aktualnie nieużywane w MMSC) |
networkid | id podsieci |
ext_linked | STB połączony z kontem i pakietem klienta w zewnętrznym systemie 0=nie, 1=tak |
mac | przydzielony MAC adres do STB |
ipaddr | adres IP przydzielony STB (tylko dla wydanego STB) |
serialnumber | serial STB |
vcasid | dodatkowe dane uzywane do zabezpieczenia contentu |
customer_sn | numer seryjny chipsetu |
hdcp_ksv | dodatkowe dane uzywane do zabezpieczenia |
modelid | id modelu |
devel | STB pracuje w wersji developerskiej |
servicetype | multicast / unicast |
servicetype_force | wymuszenie trybu pracy dekodera - brak mozliwosci zmiany przez klienta |
must_reboot | zdalny restart / reboot dekodera |
description | opis |
activedate | data pierwszej aktywacji STB |
error_log | zbieranie logow bledow do tej daty (timestamp) |
fwlog | firmware log |
boot_options | (pole obesnie nieużywane) |
creationdate | czas utworzenia |
creatorid | id admina dodajacego STB |
moddate | czas modyfikacji |
modid | id ostatniego admina modyfikujacego STB |
nodeid | id węzła |
private | węzeł prywatny |
active | aktywny model 0=nie 1=tak |
AddressIp | adres IP dekodera |
Modelname | model dekodera |
iptv_accountid | id konta do którego przypisany jest dekoder |
order_id | id Taryfy |
firmname | nazwa partnera |
UserName | nazwa użytkownika |
usertype | |
StatusName | w magazynie / zarezerwowane / wydane / uszkodzone / usunięte |
channels | |
iptv_portal | id portalu IPTV dla konta |
Pobranie modeli STB
GET https://api.mmsc.metroport.pl/Iptv/StbModels
GET https://api.mmsc.metroport.pl/Iptv/StbModels/{ID}
(pobranie modeli STB po ID)
- Funkcja zwracająca listę modeli STB w bazie..
- Strona w MMS: IPTV -> Modele STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
GET /Iptv/StbModels? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=4h3m1jer8v68cd012o9tbua30a2rfovv
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/StbModels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=4h3m1jer8v68cd012o9tbua30a2rfovv"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "41",
"firmid": "1",
"name": "MOTOROLA VIP-1003",
"description": "",
"mycast_supported": "1",
"probe": "0",
"url_active": "10.230.0.100",
"url_blocked": "10.230.0.100",
"url_devel": "",
"stbs": "2287"
}
Wartość zwracana | Opis |
---|---|
id | unikalne, autonumerowane id rekordu |
firmid | id partnera |
name | nazwa modelu |
description | opis zawartości (pilot, kable, zasilacz itp) |
mycast_supported | 1= model obsługiwany przez MyCast |
probe | 1= model to sonda |
url_active | Adres URL portalu dla aktywnych STB |
url_blocked | Adres URL portalu dla zablokowanych STB |
url_devel | Adres URL portalu dla aktywnych STB z flaga devel |
stbs, TotalStbs | ilość modeli w bazie |
Dodanie modelu STB
POST https://api.mmsc.metroport.pl/Iptv/StbModels
- Funkcja dodająca model STB w bazie.
- Strona w MMS: IPTV -> Modele STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
POST /Iptv/StbModels? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=4h3m1jer8v68cd012o9tbua30a2rfovv
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/StbModels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "name=",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=4h3m1jer8v68cd012o9tbua30a2rfovv"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
71
odpowiedź w przypadku błędnych lub braku parametrów:
{
"name": "Pole Nazwa jest wymagane."
}
{
"name": "Pole Nazwa jest wymagane."
}
{
"name": "Pole Nazwa jest wymagane."
}
Parametr wywołania | Opis |
---|---|
name | nazwa modelu STB |
Wartość zwracana | Opis |
---|---|
id | unikalne, autonumerowane id rekordu |
Edycja modelu STB
PUT https://api.mmsc.metroport.pl/Iptv/StbModels/{ID}
- Funkcja edytująca model STB w bazie.
- Strona w MMS: IPTV -> Modele STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
PUT /Iptv/StbModels? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=4h3m1jer8v68cd012o9tbua30a2rfovv
name=VIP-1003
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/StbModels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "name=VIP-1003",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
{
"name": "Pole Nazwa jest wymagane."
}
{
"name": "Pole Nazwa jest wymagane."
}
{
"name": "Pole Nazwa jest wymagane."
}
Parametr wywołania | Opis |
---|---|
name | nazwa modelu STB |
mycast_supported | 1= model obslugiwany przez MyCast |
url_active | Adres URL portalu dla aktywnych STB |
url_blocked | Adres URL portalu dla zablokowanych STB |
url_devel | Adres URL portalu dla aktywnych STB z flaga devel |
description | opis zawartości (pilot, kable, zasilacz itp) |
Usunięcie modelu STB
DELETE https://api.mmsc.metroport.pl/Iptv/StbModels/{ID}
- Funkcja usuwająca model STB w bazie po ID
- Strona w MMS: IPTV -> Modele STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
DELETE /Iptv/StbModels/71? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=4h3m1jer8v68cd012o9tbua30a2rfovv
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/StbModels/71",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8"
"Cookie: sess_ci=94d65q4969ta9pecdr1luon9eib9hdi2"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
Parametr wywołania | Opis |
---|---|
id | id modelu STB |
Dodanie STB
POST https://api.mmsc.metroport.pl/Iptv/Stbs
- Funkcja dodająca STB do bazy.
- Strona w MMS: IPTV -> Dodanie STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład dla dodania STB:
POST /Iptv/Stbs? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=4h3m1jer8v68cd012o9tbua30a2rfovv
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Stbs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => array(
"Cookie: sess_ci=4h3m1jer8v68cd012o9tbua30a2rfovv"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
{
"ModelName": "Pole Model jest wymagane.",
"mac": "Pole Mac jest wymagane.",
"serialnumber": "Pole Serial jest wymagane."
}
{
"ModelName": "Pole Model jest wymagane.",
"mac": "Pole Mac jest wymagane.",
"serialnumber": "Pole Serial jest wymagane."
}
{
"ModelName": "Pole Model jest wymagane.",
"mac": "Pole Mac jest wymagane.",
"serialnumber": "Pole Serial jest wymagane."
}
Parametr wywołania | Opis |
---|---|
ModelName | nazwa modelu STB |
mac | MAC adres STB |
serialnumber | serial STB |
Usunięcie STB
DELETE https://api.mmsc.metroport.pl/Iptv/Stbs/{identyfikator STB z bazy}
- Funkcja usuwająca STB z bazy.
- Strona w MMS: IPTV -> Lista STB -> Usunięcie STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład dla usunięcia STB:
DELETE /Iptv/Stbs? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f
mac=00:1A:D0:1B:39:DC
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Stbs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => "mac=00%3A1A%3AD0%3A1B%3A39%3ADC",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
{
"Błąd podczas usuwania",
}
{
"Błąd podczas usuwania",
}
{
"Błąd podczas usuwania",
}
Parametr wywołania | Opis |
---|---|
id | id STB |
mac | Adres MAC STB |
Ustawienie wersji devel STB
PUT https://api.mmsc.metroport.pl/Iptv/Stbs/setSTBdevel/
- Funkcja ustawiająca STB w tryb testowy.
- Strona w MMS: IPTV -> Lista STB -> Edycja STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład dla ustawienia opcji devel dla STB:
PUT /Iptv/Stbs/setSTBdevel/ HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f
mac=00%3A02%3A9B%3AA7%3A41%3ADE&mode=1
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Stbs/setSTBdevel/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "mac=00%3A02%3A9B%3AA7%3A41%3ADE&mode=1"
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8"
"Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
{
}
{
}
{
"STB with given MAC not found"
}
Parametr wywołania | Opis |
---|---|
mac | Adres MAC STB |
mode | 0= produkcja, 1= devel |
Restart STB
PUT https://api.mmsc.metroport.pl/Iptv/Stbs/restartSTB/
- Funkcja restartująca STB/
- Strona w MMS: IPTV -> Lista STB -> Edycja STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład dla restartu STB:
PUT /Iptv/Stbs/restartSTB/ HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f
mac=00%3A02%3A9B%3AA7%3A41%3ADE&mode=1
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Stbs/restartSTB/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "mac=00%3A02%3A9B%3AA7%3A41%3ADE&mode=1"
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8"
"Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
{
}
{
}
{
"STB z danym adresem MAC nie znaleziony"
}
Parametr wywołania | Opis |
---|---|
mac | Adres MAC STB |
mode | 1= restart |
Wydanie STB
PUT https://api.mmsc.metroport.pl/Iptv/Stbs/linkSTB
- Funkcja wiąże STB z danym kontem, subskrypcją i siecią IP
- Strona w MMS: IPTV -> Konto IPTV -> Edycja konta IPTV
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład wydania STB:
PUT /Iptv/Stbs/linkSTB? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Stbs/linkSTB/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "mac=00%3A02%3A9B%3AA7%3A41%3ADE&accountid=01408&networkid=230",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8"
"Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
{
"mac": "Pole Mac jest wymagane."
}
{
"mac": "STB z podanym adresem MAC nie jest zarejestrowany"
}
{
"mac": "Pole Mac jest wymagane."
}
{
"mac": "STB z podanym adresem MAC nie jest zarejestrowany"
}
{
"mac": "Pole Mac jest wymagane."
}
{
"mac": "STB z podanym adresem MAC nie jest zarejestrowany"
}
Parametr wywołania | Opis |
---|---|
mac | Adres MAC STB |
accountid | id konta IPTV |
networkid | id podsieci IPTV |
orderid | id zamówienia |
Odłączenie STB
PUT https://api.mmsc.metroport.pl/Iptv/Stbs/unlinkSTB
- Funkcja usuwa powiązanie STB z kontem (zwrot STB do magazynu)
- Strona w MMS: IPTV -> Konto IPTV -> Zwolnij STB
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład wydania STB:
PUT /Iptv/Stbs/restartSTB/13188/? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Stbs/linkSTB/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8"
"Cookie: sess_ci=7qidfsbbp6fd3t30ncdvt2fa1bl6ag4f"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
{
"mac": "Pole Mac jest wymagane."
}
{
"mac": "STB z podanym adresem MAC nie jest zarejestrowany"
}
{
"mac": "Pole Mac jest wymagane."
}
{
"mac": "STB z podanym adresem MAC nie jest zarejestrowany"
}
{
"mac": "Pole Mac jest wymagane."
}
{
"mac": "STB z podanym adresem MAC nie jest zarejestrowany"
}
Parametr wywołania | Opis |
---|---|
mac | Adres MAC STB |
accountid | id konta IPTV |
Walidacja pakietów IPTV
POST https://api.mmsc.metroport.pl/Iptv/Orders/Validate
- Funkcja sprawdza zależności między pakietami i informuje, które mogą być aktywowane na koncie
- Strona w MMS: IPTV -> Konto IPTV -> Edycja konta IPTV
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład walidacji pakietów:
POST /Iptv/Orders/Validate? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=g491pifgmli1v0pfs695m9n02m52h6hs
accountid=690&pkg_ids=42&pkg_ids=7&pkg_ids=15
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Orders/Validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "accountid=690&pkg_ids=42&pkg_ids=7&pkg_ids=15",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=g491pifgmli1v0pfs695m9n02m52h6hs"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
{
"": "Do konta może być przypisany tylko jeden pakiet podstawowy"
}
{
"": "Pakiet o id `7` nie istnieje"
}
{ "": "Wybrano wykluczające się pakiety: Abonament: OPTYMALNY HD i MetroTV-Test"
}
{
"": "Do konta może być przypisany tylko jeden pakiet podstawowy"
}
{
"": "Pakiet o id `7` nie istnieje"
}
{ "": "Wybrano wykluczające się pakiety: Abonament: OPTYMALNY HD i MetroTV-Test"
}
{
"": "Do konta może być przypisany tylko jeden pakiet podstawowy"
}
{
"": "Pakiet o id `7` nie istnieje"
}
{ "": "Wybrano wykluczające się pakiety: Abonament: OPTYMALNY HD i MetroTV-Test"
}
Parametr wywołania | Opis |
---|---|
accountid | konto IPTV |
pkg_ids | tablica z id pakietów do sprawdzenia |
Aktywacja pakietów na koncie IPTV
POST https://api.mmsc.metroport.pl/Iptv/Orders
- Funkcja aktywuje pakiety na koncie IPTV
- Strona w MMS: IPTV -> Konto IPTV -> Aktywacja konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykładowa aktywacja:
POST /Iptv/Orders? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=i5he9j79n0vg7totpelmqq72as89r4ej
accountid=27&pkg_id=201
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "accountid=27&pkg_id=201",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=i5he9j79n0vg7totpelmqq72as89r4ej"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"orderid": 1726,
}
odpowiedź w przypadku błędnych lub braku parametrów:
{
"pkg_group": "Do konta musi być przypisany najpierw pakiet podstawowy"
}
{
"accountid": "Konto o podanym ID nie istnieje"
}
{ "pkg_valid_to": "Wybrany pakiet nie może być już wybrany (ważny do )"
}
{
"pkg_group": "Do konta musi być przypisany najpierw pakiet podstawowy"
}
{
"accountid": "Konto o podanym ID nie istnieje"
}
{ "pkg_valid_to": "Wybrany pakiet nie może być już wybrany (ważny do )"
}
{
"pkg_group": "Do konta musi być przypisany najpierw pakiet podstawowy"
}
{
"accountid": "Konto o podanym ID nie istnieje"
}
{ "pkg_valid_to": "Wybrany pakiet nie może być już wybrany (ważny do )"
}
Parametr wywołania | Opis |
---|---|
accountid | konto IPTV |
pkg_id | ID pakietu do aktywacji |
pricebrutto | cena brutto pakietu |
Zbiorcza aktywacja pakietów na koncie IPTV
POST https://api.mmsc.metroport.pl/Iptv/Orders/bulk
- Funkcja aktywuje wiele pakietów jednocześnie na koncie IPTV
- Strona w MMS: IPTV -> Konto IPTV -> Aktywacja konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykładowa aktywacja:
POST /Iptv/Orders/bulk? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=i5he9j79n0vg7totpelmqq72as89r4ej
accountid=27&pkg_ids=4&pkg_ids=7&pricebrutto=15
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Orders/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "accountid=27&pkg_ids=4&pkg_ids=7&pricebrutto=15",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=i5he9j79n0vg7totpelmqq72as89r4ej"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"orderid": 1726,
}
odpowiedź w przypadku błędnych lub braku parametrów:
{
"": "Nieprawidłowa lista pakietów"
}
{
"accountid": "Konto o podanym ID nie istnieje"
}
{
"": "Nieprawidłowa lista pakietów"
}
{
"accountid": "Konto o podanym ID nie istnieje"
}
{
"": "Nieprawidłowa lista pakietów"
}
{
"accountid": "Konto o podanym ID nie istnieje"
}
Parametr wywołania | Opis |
---|---|
accountid | konto IPTV |
pkg_ids | tablica z id pakietów do aktywacji |
pricebrutto | tablica z cenami brutto pakietów, kolejność cen taka sama jak w parametrze 'pkg_ids' |
Lista pakietów na koncie IPTV
GET https://api.mmsc.metroport.pl/Iptv/Orders?accountid={ID konta IPTV}
- Funkcja wyświetla listę zasubskrybowanych pakietów na wskazanym koncie IPTV
- Strona w MMS: Klienci -> Karta Klienta -> IPTV -> Konto IPTV
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykładowa deaktywacja:
GET /Iptv/Orders?accountid=14567 HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=cgdb6c9062857tisu0jor8a5v93slafo
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Orders?accountid=14567",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=cgdb6c9062857tisu0jor8a5v93slafo"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
[
{
"id": 45080,
"orderid": 45080,
"userid": 12378,
"accountid": 14567,
"pkg_id": 141,
"pkg_group": "1",
"date_start": "2018-07-25",
"date_end": "",
"active": "1",
"pricenetto": "0.00",
"vat": "8",
"pricebrutto": "0.00",
"pricenetto_provider": "0.00",
"vat_provider": "8",
"pricebrutto_provider": "0.00",
"creationdate": "2018-07-25 11:50:13",
"pkg_name": "Dostęp do MetroTV",
"pkg_valid_from": "2016-02-09",
"pkg_valid_to": "2020-12-31",
"date_start_uts": "1532512213",
"date_end_uts": "0",
"creationdate_uts": "1532512213",
"stb_mac": "18:B8:1F:FC:74:BE"
},
{
"id": 45081,
"orderid": 45081,
"userid": 12378,
"accountid": 14567,
"pkg_id": 143,
"pkg_group": "2",
"date_start": "2018-07-25",
"date_end": "",
"active": "1",
"pricenetto": "59.26",
"vat": "8",
"pricebrutto": "64.00",
"pricenetto_provider": "54.82",
"vat_provider": "8",
"pricebrutto_provider": "59.21",
"creationdate": "2018-07-25 11:50:13",
"pkg_name": "Pakiet OPTYMALNY+ HD",
"pkg_valid_from": "2016-02-09",
"pkg_valid_to": "2020-12-31",
"date_start_uts": "1532512213",
"date_end_uts": "0",
"creationdate_uts": "1532512213"
},
{
"id": 45348,
"orderid": 45348,
"userid": 12378,
"accountid": 14567,
"pkg_id": 144,
"pkg_group": "3",
"date_start": "2018-08-02",
"date_end": "",
"active": "1",
"pricenetto": "0.54",
"vat": "8",
"pricebrutto": "0.58",
"pricenetto_provider": "0.54",
"vat_provider": "8",
"pricebrutto_provider": "0.58",
"creationdate": "2018-08-02 11:50:00",
"pkg_name": "MULTIROOM",
"pkg_valid_from": "2016-02-09",
"pkg_valid_to": "2020-12-31",
"date_start_uts": "1533203400",
"date_end_uts": "0",
"creationdate_uts": "1533203400",
"stb_mac": "18:B8:1F:FC:7B:B9"
}
]
odpowiedź w przypadku błędnych lub braku parametrów:
{
204 No Content
}
{
204 No Content
}
{
204 No Content
}
Parametr wywołania | Opis |
---|---|
accountid | ID konta IPTV |
Deaktywacja pakietu IPTV
DELETE https://api.mmsc.metroport.pl/Iptv/Orders/{Identyfikator subskrypcji}
- Funkcja deaktywuje pakiet na koncie IPTV
- Strona w MMS: IPTV -> Konto IPTV -> Edycja konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykładowa deaktywacja:
DELETE /Iptv/Orders/743 HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=ljgsvr81aeikdj50o7j1e1pc30002gqv
accountid=561
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Orders/743",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => "accountid=561",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=ljgsvr81aeikdj50o7j1e1pc30002gqv"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"orderid": 1726,
}
odpowiedź w przypadku błędnych lub braku parametrów:
{
"stb_id": "Nie można deaktywować subskrypcji, do której przypisany jest STB"
}
{
"accountid": "Konto o podanym ID nie istnieje"
}
{
"stb_id": "Nie można deaktywować subskrypcji, do której przypisany jest STB"
}
{
"accountid": "Konto o podanym ID nie istnieje"
}
{
"stb_id": "Nie można deaktywować subskrypcji, do której przypisany jest STB"
}
{
"accountid": "Konto o podanym ID nie istnieje"
}
Parametr wywołania | Opis |
---|---|
orderid | ID subskrypcji |
accountid | ID konta IPTV |
Pobranie kont IPTV
GET https://api.mmsc.metroport.pl/Iptv/Accounts
(pobranie listy wszystkich kont IPTV)
GET https://api.mmsc.metroport.pl/Iptv/Accounts?userid={Identyfikator klienta}
(pobranie konta IPTV wskazanego po ID klienta)
GET https://api.mmsc.metroport.pl/Iptv/Accounts/{Identyfikator konta IPTV}
(pobranie konta IPTV wskazanego po ID)
- Funkcja pobiera listę kont IPTV
- Strona w MMS: IPTV -> Lista kont
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład pobrania danych konta IPTV dla kont z id=22867
GET /iptv/accounts/22867 HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=30afjjapep431r5gjpdq7rnuleki3au6
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/iptv/accounts/22867",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=30afjjapep431r5gjpdq7rnuleki3au6"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "22867",
"firmid": "40",
"serviceid": "2",
"stgroupid": "18",
"paymentperiodid": "0",
"paymentperiodname": "",
"tariffcode": "IPTVMETRO",
"sww": "",
"pricenetto": "0.00",
"vatid": "0",
"vatrate": "0",
"pricebrutto": "0.00",
"currency": "PLN",
"servicename": "Telewizja cyfrowa",
"tariffname": "MetroTV",
"description": "",
"addinfo": "",
"iptv_program": "MMS",
"iptv_networkid": "34",
"iptv_ext_cust_number": "20334",
"iptv_ext_account_id": "20867",
"iptv_portalid": "1",
"iptv_statistics": "1",
"promotion": "0",
"promotiontype": "1",
"actualcdataid": "0",
"contractid": "0",
"annexid": "0",
"annexedparentid": "0",
"userid": "20334",
"contractsid": "0",
"annexsid": "0",
"actualparentid": "0",
"servicepricenetto": "0.00",
"servicepricebrutto": "0.00",
"servicevatid": "0",
"servicevatrate": "0",
"tariffid": "1",
"tariffattributesdescription": "",
"active": "1",
"activedate": "1596537462",
"lastdeactivdate": "0",
"paused": "0",
"pausetimetype": "0",
"pausedfree": "0",
"pausestartdate": "0",
"pauseenddate": "0",
"pausereason": "",
"promotionpricenetto": "0.00",
"promotionpricebrutto": "0.00",
"promotionvatid": "0",
"promotionvatrate": "0",
"promotionprice": "0",
"promotiondatestart": "0",
"promotiondateend": "0",
"promotiontime": "0",
"promotioninvoice": "1",
"teryt_spotid_locationcity": "0",
"teryt_spotid_locationstreet": "0",
"teryt_streetid_locationstreet": "0",
"locationstreetname": "Łagiewnicka",
"locationstreetno": "",
"locationblockno": "",
"locationstaircaseno": "",
"locationlocal": "",
"locationzip": "91-463",
"locationcity": "Łódź",
"locationcountry": "Polska",
"masterstgroupid": "0",
"masterid": "0",
"creatorid": "120",
"modid": "0",
"creationdate": "1596537462",
"moddate": "0",
"breakdate": "0",
"expiredate": "0",
"testservice": "0",
"teststartdate": "0",
"testenddate": "0",
"todelete": "0",
"todeletedate": "0",
"deleted": "0",
"blocked": "0",
"IPTVProgramName": "MMS",
"Packages": {
"MainPackage": {
"id": "68240",
"firmid": "40",
"userid": "20334",
"actualtariffid": "22867",
"packageid": "227",
"linkid": "0",
"pkg_group": "1",
"stb_id": "24963",
"ext_pkg_id": "0",
"ext_subscription_id": "0",
"ext_order_id": "0",
"date_start": "1596537512",
"date_end": "0",
"date_deactivated": "0",
"pricenetto": "9.17",
"vat": "8",
"pricebrutto": "9.90",
"pricenetto_provider": "4.50",
"vat_provider": "8",
"pricebrutto_provider": "4.86",
"active": "1",
"promotion_active": "0",
"promotionparent": "0",
"promotiontime": "0",
"creationdate": "1596537512",
"creatorid": "0",
"pkg_name": "Pakiet Socjalny",
"pkg_autoinclude": "",
"pkg_denied": "44,129,100,92,42,54,43,136,141,49,91,206,204,205,22,2,3,21,13,144,194,97,145,191,192,34,30,27,46,28,47,130,135,29,128,134,45,36,193,212,38,18,24,10,17,15,16,35,37,32,143,196,19,51,52,50,39,20,142,31,26,210,202,104,48,55,61,67,150,148,146,211,127",
"pkg_valid_from": "2020-01-03",
"pkg_valid_to": "2085-01-03",
"pkg_active": "1",
"tariffcode": "SOCJALNY",
"selected": 1,
"stb_select": "CC:75:E2:F2:55:12; M91924ECF206; ARRIS VIP-1113",
"stb_data": {
"id": "24963",
"firmid": "40",
"iptv_program": "MMS",
"status": "3",
"userid": "20334",
"contractid": "0",
"actualtariffid": "22867",
"networkid": "34",
"ext_linked": "1",
"mac": "CC:75:E2:F2:55:12",
"ipaddr": "181596678",
"serialnumber": "M91924ECF206",
"modelid": "60",
"devel": "0",
"description": "",
"activedate": "1596537512",
"fwlog": "0",
"boot_options": "",
"creationdate": "1596537343",
"creatorid": "120",
"moddate": "0",
"modid": "0",
"nodeid": "0",
"private": "0",
"active": "1",
"AddressIp": "10.210.242.6",
"ModelName": "ARRIS VIP-1113",
"ext_subnet_id": "34",
"NetworkName": "MetroSupport-10.210.242.0",
"NetworkAddress": "10.210.242.0",
"NetworkPrefix": "25",
"NetworkMask": "255.255.255.128",
"NetworkSize": "128",
"iptv_accountid": "22867",
"order_id": "68240",
"UserName": "LAB Metroport LAB",
"usertype": "2",
"StatusName": "wydane"
},
"actual_id": "68240",
"actual_packageid": "227",
"actual_active": "1",
"actual_ext_pkg_id": "0",
"actual_ext_subscription_id": "0",
"actual_ext_order_id": "0",
"actual_date_start": "1596537512",
"actual_date_end": "0",
"actual_pricenetto": "9.17",
"actual_vat": "8",
"actual_pricebrutto": "9.90",
"actual_pricenetto_provider": "4.50",
"actual_vat_provider": "8",
"actual_pricebrutto_provider": "4.86"
}
},
"AvailablePackages": false,
"UserData": {
"id": "20334",
"firmid": "40",
"userno": "94",
"usercode": "000094",
"usertype": "2",
"customertype": "2",
"name": "LAB",
"lastname": "LAB Metroport",
"teryt_spotid_city1": "957650",
"teryt_spotid_street1": "957666",
"teryt_streetid_street1": "11497",
"streetname1": "Łagiewnicka",
"streetno1": "",
"local1": "",
"zip1": "91-463",
"city1": "Łódź",
"zipcity1": "Łódź",
"country1": "Polska",
"teryt_spotid_city2": "0",
"teryt_spotid_street2": "0",
"teryt_streetid_street2": "0",
"streetname2": "",
"streetno2": "",
"local2": "",
"zip2": "",
"city2": "",
"zipcity2": "",
"country2": "Polska",
"email": "",
"email2": "",
"email3": "",
"email_invoices": "",
"nip": "",
"idcardno": "",
"pesel": "",
"phone1": "",
"phone2": "",
"phone3": "",
"fax": "",
"borndate_day": "0",
"borndate_month": "0",
"borndate_year": "0000",
"boklogin": "kl020334",
"bokpass": "",
"bokquestion": "",
"bokanswer": "",
"bokfirstpass": "a9GH0k",
"provider": "0",
"nowarning": "0",
"wiruswarn": "0",
"spammed": "0000-00-00 00:00:00",
"spammed_enabled": "0",
"checkstartdate": "0",
"checkclient": "0",
"voiplimit": "300.00",
"voiplimit_base": "300.00",
"voiplimitday": "60.00",
"voiplimitday_base": "60.00",
"mvnolimit": "300.00",
"mvnolimit_base": "300.00",
"mvnolimitday": "60.00",
"mvnolimitday_base": "60.00",
"description": "",
"archived": "0",
"creationdate": "1596537462",
"creatorid": "120",
"moddate": "0",
"modid": "0",
"deleted": "0",
"deleteid": "0",
"deletedate": "0",
"updated": "",
"loyality_download_percent": "0",
"loyality_upload_percent": "0",
"loyality_plan_enabled": "0",
"loyality_plan_type": "0",
"loyality_plan_invoicepay_margin": "0",
"loyality_plan_allowed": "0",
"bankaccount": "",
"pin_phone": "668597",
"iptv_cust_master_pin": "",
"iptv_cust_vod_pin": "",
"invoiceflag": "0",
"invoicesgroup": "0",
"dataprocess": "1",
"dataprocess_directmarketing": "1",
"dataprocess_ads": "1"
},
"NetworkData": {
"id": "34",
"firmid": "40",
"iptv_program": "MMS",
"ext_subnet_id": "34",
"name": "MetroSupport-10.210.242.0",
"address": "181596672",
"mask_prefix": "25",
"mask": "255.255.255.128",
"size": "128",
"transport": "ott",
"address_long": "10.210.242.0",
"TotalSTBs": "5"
},
"PackagesSums": {
"TotalPackages": 1,
"TotalNetto": 9.17,
"TotalVat": 0.73,
"TotalBrutto": 9.9,
"ProviderNetto": 4.5,
"ProviderVat": 0.36,
"ProviderBrutto": 4.86,
"SurplusNetto": 4.67,
"SurplusVat": 0.37,
"SurplusBrutto": 5.04
}
}
Parametr wywołania | Opis |
---|---|
userid | ID klienta |
accountid | ID konta IPTV |
Dodanie konta IPTV
POST https://api.mmsc.metroport.pl/Iptv/Accounts
- Funkcja dodaje konto IPTV u wskazanego po ID klienta
- Strona w MMS: Klienci -> Karta Klienta -> IPTV
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład dodania konta IPTV w kliencie z id=2635:
POST /Iptv/Accounts? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=cgdb6c9062857tisu0jor8a5v93slafo
userid=2635&locationcity=Łódź&iptv_networkid=9
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "userid=2635&locationcity=%u0141%F3d%u017A&iptv_networkid=9",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=cgdb6c9062857tisu0jor8a5v93slafo"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
17104
odpowiedź w przypadku błędnych lub braku parametrów:
{
"userid": "Pole Klient jest wymagane.",
"locationcity": "Pole Miasto lokalizacji jest wymagane."
}
{
"userid": "Pole Klient jest wymagane.",
"locationcity": "Pole Miasto lokalizacji jest wymagane."
}
{
"userid": "Pole Klient jest wymagane.",
"locationcity": "Pole Miasto lokalizacji jest wymagane."
}
Parametr wywołania | Opis |
---|---|
userid | ID klienta |
iptv_networkid | ID podsieci IPTV |
locationstreetname | adres lokalizacji usługi (taryfy) - nazwa ulicy |
locationstreetno | adres lokalizacji usługi (taryfy) - numer ulicy (domu) |
locationlocal | adres lokalizacji usługi (taryfy) - numer lokalu (mieszkania) |
locationzip | adres lokalizacji usługi (taryfy) - kod pocztowy |
locationcity | adres lokalizacji usługi (taryfy) - miasto (miejscowość) |
Wartość zwracana | Opis |
---|---|
accountid | ID konta IPTV |
Edycja konta IPTV
PUT https://api.mmsc.metroport.pl/Iptv/Accounts/{ID konta IPTV}
- Funkcja edytuje konto IPTV
- Strona w MMS: Klienci -> Karta Klienta -> IPTV
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład edycji konta IPTV z id=17104:
PUT /Iptv/Accounts/17104? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=cgdb6c9062857tisu0jor8a5v93slafo
locationcity=Łódź&iptv_networkid=9
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Accounts/17104",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "locationcity=%u0141%F3d%u017A&iptv_networkid=9",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=cgdb6c9062857tisu0jor8a5v93slafo"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
{
"locationcity": "Pole Miasto lokalizacji jest wymagane.",
"iptv_networkid": "Sieć IPTV nie istnieje w bazie danych."
}
{
"locationcity": "Pole Miasto lokalizacji jest wymagane.",
"iptv_networkid": "Sieć IPTV nie istnieje w bazie danych."
}
{
"locationcity": "Pole Miasto lokalizacji jest wymagane.",
"iptv_networkid": "Sieć IPTV nie istnieje w bazie danych."
}
Parametr wywołania | Opis |
---|---|
accountid | ID konta IPTV |
iptv_networkid | ID podsieci IPTV |
locationstreetname | adres lokalizacji usługi (taryfy) - nazwa ulicy |
locationstreetno | adres lokalizacji usługi (taryfy) - numer ulicy (domu) |
locationlocal | adres lokalizacji usługi (taryfy) - numer lokalu (mieszkania) |
locationzip | adres lokalizacji usługi (taryfy) - kod pocztowy |
locationcity | adres lokalizacji usługi (taryfy) - miasto (miejscowość) |
Blokada/odblokowanie konta IPTV
PUT https://api.mmsc.metroport.pl/Iptv/Accounts/{ID konta IPTV}/blockAccount
(blokada konta IPTV)
PUT https://api.mmsc.metroport.pl/Iptv/Accounts/{ID konta IPTV}/unblockAccount
(odblokowanie konta IPTV)
- Funkcja do blokowania/odblokowania konta IPTV
- Strona w MMS: Klienci -> Karta Klienta -> IPTV -> Informacje o koncie -> Zablokuj/Obdlokuj konto
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład zablokowania konta IPTV z id=17104:
PUT /Iptv/Accounts/17104/blockAccount HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=34qi1o83b4qi47khna8cbeq13ltrrld3
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Accounts/17104/blockAccount",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=34qi1o83b4qi47khna8cbeq13ltrrld3"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
Parametr wywołania | Opis |
---|---|
accountid | ID konta IPTV |
Usunięcie konta IPTV
DELETE https://api.mmsc.metroport.pl/Iptv/Accounts/{ID konta IPTV}
- Funkcja usuwająca konto IPTV
- Strona w MMS: Klienci -> Karta Klienta -> IPTV -> Informacje o koncie -> Usuń konto
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
przykład usunięcia konta IPTV z id=17104:
DELETE /Iptv/Accounts/17104 HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci=34qi1o83b4qi47khna8cbeq13ltrrld3
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Iptv/Accounts/17104",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci=34qi1o83b4qi47khna8cbeq13ltrrld3"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
true
odpowiedź w przypadku błędnych lub braku parametrów:
Parametr wywołania | Opis |
---|---|
accountid | ID konta IPTV |
Pobranie komunikatów IPTV
GET https://api.mmsc.metroport.pl/Iptv/Messages
- Funkcja pobierająca komunikaty IPTV
- Strona w MMS: Klienci -> Karta Klienta -> IPTV -> Informacje o koncie -> Usuń konto
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
MVNO
Pobranie kont MVNO
GET https://api.mmsc.metroport.pl/Mvno/Mobiles
- Funkcja zwracająca listę kont MVNO użytkownika.
- Strona w MMS: Użytkownicy -> MVNO
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
GET /Mvno/Mobiles? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=799bgso65qpi99d6q6e24ehlcnmtrod2
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Cookie: sess_ci_dev=799bgso65qpi99d6q6e24ehlcnmtrod2"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "3026",
"ano": "111222333",
"imei": "",
"sim_id": "15150",
"status": "active",
"status_confirmed": "1",
"iccid": "8948061050002375598",
"imsi": "260060052375598",
"sim_status": "active",
"TotalConnections": "",
"TotalNetto": "0.0",
"usercode": "kl000290",
"usertype": "2",
"UserData": "Test Test, Łódź, Test 53, 94-009 Łódź",
"actual_service_tariffid": "1348",
"stgroupid": "19",
"todelete": "0",
"todeletedate": "0",
"creationdate": "1556523047",
"activedate": "1556631893",
"moddate": "1556633716",
"firmid": "2",
"userid": "14921"
}
Parametry wywołania | Opis |
---|---|
userid | ID użytkownika / klienta |
Wartość zwracana | Opis |
---|---|
id | ID konta MVNO |
ano | Numer telefonu użytkownika / klienta |
imei | IMEI telefonu |
sim_id | ID karty SIM |
status | status konta: new- oczekuje na potwierdzenie aktywacji / deleted- konto usunięte / ported- numer przeniesiony |
status_confirmed | status konta potwierdzony u dostawcy - blokada edycji bez potwierdzenia |
iccid | Identyfikator karty SIM |
imsi | Numer karty SIM |
sim_status | Status karty SIM |
TotalConnections | liczba połączeń |
TotalNetto | kwota bilingu |
usercode | kod klienta (DEPRECATED) |
usertype | rodzaj klienta: 1-prywatny, 2-firmowy (DEPRECATED) |
UserData | złączone dane klienta (DEPRECATED) |
actual_service_tariffid | ID taryfy klienta |
stgroupid | ID grupy usług |
todelete | konto ustawione do usunięcia |
todeletedate | data ustawienia konta do usunięcia |
creationdate | data utworzenia |
activedate | data aktywacji numeru |
moddate | data modyfikacji |
firmid | ID firmy |
userid | ID klienta |
Pobranie danych konta MVNO
GET https://api.mmsc.metroport.pl/Mvno/Mobiles/{id lub numer telefonu 48xxx (razem 11 cyfr)}
- Funkcja zwracająca parametry danego konta MVNO.
- Strona w MMS: Użytkownicy -> MVNO
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
GET /Mvno/Mobiles/48799590864? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=ep8l8577tgmgo3s9h4k5mfilaf7hnl0f
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles/48799590864",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=ep8l8577tgmgo3s9h4k5mfilaf7hnl0f"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "3028",
"firmid": "2",
"userid": "14921",
"ext_userid": "14921",
"sim_id": "15183",
"ano": "799590864",
"stgroupid": "19",
"actual_service_tariffid": "1348",
"mms_servicemvno_id": "1",
"ext_services_id": "7",
"status": "new",
"status_confirmed": "0",
"imei": "",
"description": "",
"creationdate": "1558089439",
"activedate": "0",
"moddate": "0",
"todelete": "0",
"todeletedate": "0",
"tariffid": "1348,1,19",
"active": 0,
"reserved": 0,
"StatusName": "nowe, oczekuje na wykonanie",
"simdata": {
"id": "15183",
"firmid": "2",
"hlr": "5",
"status": "assigned",
"imsi": "260060052375631",
"iccid": "8948061050002375631",
"pin1": "2880",
"puk1": "81228305",
"pin2": "7085",
"puk2": "71315494",
"adm": "CF8E098981E415AD",
"activedate": "0",
"deletedate": "0",
"StatusName": "przypisana do konta"
},
"extservicedata": {
"id": "7",
"ext_id": "metroport_mobile_voice_3",
"name": "Metro No Limit + 1GB",
"description": "",
"subservices": "2,3,4,5,11,16",
"forced_subservices": "2,4",
"configurable": "1",
"expiredate": "0000-00-00"
},
"forced_subservices": [
"2",
"4"
],
"subservices": [
"2",
"3",
"4",
"5",
"11",
"16"
],
"components_free_fixed": -1,
"components_free_mobile": -1,
"components_free_national": 0,
"components_free_sms": -1,
"components_free_data": 1048576,
"subservices_params": {
"2": "",
"3": "",
"4": "",
"5": "",
"11": "",
"16": ""
},
"npdata": null
}
Parametry wywołania | Opis |
---|---|
ano | Numer telefonu użytkownika |
Wartość zwracana | Opis | |
---|---|---|
id | unikalne, autonumerowane ID rekordu | |
firmid | ID firmy w systemie dostawcy | |
userid | ID klienta | |
ext_userid | ID klienta w systemie dostawcy | |
ano | unikalny numer telefonu | |
ext_services_id | ID usługi | |
stgroupid | ID grupy usług | |
actual_service_tariffid | ID taryfy klienta | |
mms_servicemvno_id | ID taryfy w systemie MMS | |
ext_services_id | ID głównej usługi dostawcy | |
status | status konta: new- oczekuje na potwierdzenie aktywacji / deleted- konto usunięte / ported- numer przeniesiony | |
status_confirmed | status konta potwierdzony u dostawcy - blokada edycji bez potwierdzenia | |
imei | numer IMEI urządzenia | |
description | opis / dodatkowe informacje | |
creationdate | Data utworzenia | |
activedate | Data aktywacji numeru | |
moddate | Data modyfikacji (unix timestamp) | |
todelete | Konto ustawione do usunięcia | |
todeletedate | Data ustawienia konta do usunięcia | |
tarriffid | ||
active | status numeru: 1-aktywny, 0-nieaktywny | |
reserved | status rezerwacji numeru: 1-zarezerwowany, 0-nowy | |
simdata | id | unikalne, autonumerowane id rekordu |
firmid | ID firmy | |
hlr | dla danego numeru musi być wydana właściwa karta SIM | |
status | status karty | |
imsi | unikalny numer karty | |
iccid | unikalny indeftyfikator karty sim | |
pin1 | pin1 | |
puk1 | puk1 | |
pin2 | pin2 | |
puk2 | puk2 | |
adm | kod administracyjny | |
activedate | data aktywacji karty | |
deletedate | data deaktywacji (usuniecia) karty | |
StatusName | status karty | |
extservicedata | id | unikalne id rekordu |
ext_id | id uslugi w systemie dostawcy | |
name | nazwa usługi | |
description | Nazwa uslugi przyjazna dla klienta | |
subservices | aktywne usługi dodatkowe, ext_subservices.id rozdzielone przecinkami | |
forced_subservices | wymuszone usługi dodatkowe, ext_subservices.id rozdzielone przecinkami - dla tego produktu będą aktywowane z karta bez możliwości rezygnacji z nich | |
configurable | możliwość przekonfigurowania komponentów taryfy z grupy cykliczne | |
expiredate | data wygaśnięcia usługi, po tej dacie aktywacja karty z ta usługa nie będzie możliwa | |
forced_subservices | wymuszone usługi dodatkowe, ext_subservices.id rozdzielone przecinkami - dla tego produktu będą aktywowane z karta bez możliwości rezygnacji z nich | |
subservices | aktywne usługi dodatkowe, ext_subservices.id rozdzielone przecinkami | |
components_free_fixed | konfiguracja komponentu dodawanego domyślnie dla taryfy (połączenia stacjonarne) | |
components_free_mobile | konfiguracja komponentu dodawanego domyślnie dla taryfy (połączenia komórkowe) | |
components_free_national | konfiguracja komponentu dodawanego domyślnie dla taryfy (połączenia krajowe) | |
components_free_sms | konfiguracja komponentu dodawanego domyślnie dla taryfy (wiadomości sms) | |
components_free_data | konfiguracja komponentu dodawanego domyślnie dla taryfy (wliczone dane) | |
subservices_params | Parametry dodatkowe dla podpiętych w taryfie subservices (np. przekierowanie, kwota) | |
npdata | id | unikalne, autonumerowane id rekordu |
mobiles_id | ID konta | |
status | status przenoszenia numeru | |
ext_operators_id | ID Operatora | |
contracttype | typ kontraktu u obecnego operatora (postpaid, prepaid) | |
transfertype | sposób przenoszenia numeru (DAY, EOP, END) | |
transferdate | planowana data przeniesienia numeru | |
attorney | pełnomocnictwo (yes, no) | |
doc_no | numer dokumentu | |
doc_signdate | data podpisania dokumentu | |
creationdate | data zlecenia przeniesienia numeru | |
porteddate | data wykonania przeniesienia numeru | |
OperatorName | nazwa Operatora | |
np | status numeru (true-przeniesiony) |
Aktywacja i edycja konta MVNO
POST https://api.mmsc.metroport.pl/Mvno/Mobiles/
- aktywacja
PUT https://api.mmsc.metroport.pl/Mvno/Mobiles/
- edycja
- Funkcja dodająca konto MVNO należące do wskazanego użytkownika.
- Strona w MMS: Użytkownicy -> MVNO -> Dodawanie konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
POST /Mvno/Mobiles HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/x-www-form-urlencoded
Cookie: sess_ci=drt2m2iv8itfon7ievkekl722872hmas
Content-Length: 73
userid=2635&ano=780289486&ext_services_id=7&sim_iccid=8948061300012006988
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.mmsc.metroport.pl/Mvno/Mobiles',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => 'userid=2635&ano=780289486&ext_services_id=7&sim_iccid=8948061300012006988',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/x-www-form-urlencoded',
'Cookie: sess_ci=drt2m2iv8itfon7ievkekl722872hmas'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": 8581,
"orderid": 1726,
}
{
"id": 8581,
"orderid": 1726,
}
{
"id": 8581,
"orderid": 1726,
}
odpowiedź w przypadku podania błędnego formatu numeru:
{
"ano": "Pole Numer telefonu musi zawierać dokładnie 9 znak(i/ów)."
}
odpowiedź w przypadku podania numeru z nie zdefiniowanej puli numerów:
{
"ano": "Numer nie należy do zdefiniowanej puli."
}
Parametry wywołania | Opis | |
---|---|---|
userid | int | ID użytkownika / klienta |
ano | Numer telefonu | |
ext_services_id | ID usługi | |
imei | IMEI telefonu | |
sim_iccid | Identyfikator karty SIM | |
subservices | Aktywne usługi dodatkowe, ext_subservices.id rozdzielone przecinkami | |
subservices_params | Parametry dodatkowe dla podpiętych w taryfie subservices (np. przekierowanie, kwota) | |
fup | Limit FUP |
Wartość zwracana | Opis |
---|---|
id (int) | ID operacji |
orderid | ID zlecenia |
Usunięcie konta MVNO
DELETE https://api.mmsc.metroport.pl/Mvno/Mobiles/{id lub numer telefonu 48xxx (razem 11 cyfr)}
- Funkcja usuwająca konto MVNO.
- Strona w MMS: Użytkownicy -> MVNO -> Konta -> Usuwanie konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
Aktywacja numeru NP MVNO
POST https://api.mmsc.metroport.pl/Mvno/Mobiles
- Funkcja dodająca konto MVNO należące do wskazanego użytkownika na numerze przeniesionym.
- Strona w MMS: Użytkownicy -> MVNO -> Dodawanie konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
POST /Mvno/Mobiles? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=rutphtoufi0ki3hjlgg7ss6bljk1eefl
userid=14924&ano=780289499&sim_iccid=8948061300012004990&ext_services_id=2&contracttype=postpaid&transfertype=END&attorney=yes&doc_no=&doc_signdate=2020-08-04
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "userid=14924&ano=780289499&sim_iccid=8948061300012004990&ext_services_id=2&contracttype=postpaid&transfertype=END&attorney=yes&doc_no=&doc_signdate=2020-08-04",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=rutphtoufi0ki3hjlgg7ss6bljk1eefl"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
1726
}
{
1726
}
{
1726
}
Parametry wywołania | Opis | |
---|---|---|
userid | ID użytkownika / klienta | |
ano | Numer telefonu | |
ext_services_id | ID usługi | |
imei | IMEI telefonu | |
sim_iccid | Identyfikator karty SIM | |
np | brak wartości lub 0-numer musi być aktywowany z puli, 1-numer przenoszony. Dla np=1 wykona się operacja dla numeru przenoszonego, pomijana jest walidacja (czy numer należy do puli) i wymagany jest parametr ext_operators_id (id operatora Dawcy) |
|
{npdata} | ext_operators_id | ID Operatora Dawcy |
contracttype | (prepaid, postpaid) | |
transfertype | (DAY,END,EOP) | |
transferdate | data przeniesienia, wymagana w przypadku transfertype=DAY (date RRRR-MM-DD) | |
attorney | pełnomocnictwo (yes, no) | |
doc_no | numer dokumentu | |
doc_signdate | data podpisania (datetime RRRR-MM-DD hh:mm:ss) |
Wartość zwracana | Opis |
---|---|
id (int) | ID operacji |
Wymiana karty SIM na koncie MVNO
PUT https://api.mmsc.metroport.pl/Mvno/Mobiles/{id lub numer telefonu 48xxx (razem 11 cyfr)}
- Funkcja usuwa aktualną kartę SIM oraz wiąże wskazane konto z nową.
- Strona w MMS: Użytkownicy -> MVNO -> Edycja konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
PUT /Mvno/Mobiles/48780280990 HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/x-www-form-urlencoded
Cookie: sess_ci=l6v9a0qs5tu3cdcs1accibpooor0ihbc
Content-Length: 29
sim_iccid=8948061050002375550
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.mmsc.metroport.pl/Mvno/Mobiles/48780280990',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => 'sim_iccid=8948061050002375550',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/x-www-form-urlencoded',
'Cookie: sess_ci=l6v9a0qs5tu3cdcs1accibpooor0ihbc'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
1726
}
{
1726
}
{
1726
}
odpowiedź w przypadku braku określonych parametrów (walidacja):
{
"ano": "Pole Numer telefonu jest wymagane.",
"sim_iccid": "Pole Sim iccid jest wymagane.",
"ext_services_id": "Usługa dostawcy nie istnieje w bazie danych."
}
{
"ano": "Pole Numer telefonu jest wymagane.",
"sim_iccid": "Pole Sim iccid jest wymagane.",
"ext_services_id": "Usługa dostawcy nie istnieje w bazie danych."
}
{
"ano": "Pole Numer telefonu jest wymagane.",
"sim_iccid": "Pole Sim iccid jest wymagane.",
"ext_services_id": "Usługa dostawcy nie istnieje w bazie danych."
}
Parametry wywołania | Opis |
---|---|
ano | Numer Telefonu (można podać w url zapytania zgodnie z instrukcją w nagłówku - w formacie z 48 na początku) |
sim_iccid | Numer ICCID karty SIM |
sim_id | ID karty SIM |
Wartość zwracana | Opis |
---|---|
id (int) | ID operacji |
Zmiana numeru telefonu
PUT https://api.mmsc.metroport.pl/mvno/Mobiles/{NUMER_PELNY_AKTUALNY}
- Funkcja zmienia podany numer telefonu na nowy wewnątrz sieci.
- Strona w MMS: Użytkownicy -> MVNO -> Edycja konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
PUT /Mvno/Mobiles/780281417 HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=75bhkcr8iereprurdvh1dk9le1ar5mo0
ano=780289499
przeniesienie na inny numer z własnej sieci
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles/780281417",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "ano=780289499",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=75bhkcr8iereprurdvh1dk9le1ar5mo0"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
przeniesienie na inny numer przeniesiony od innego operatora
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.mmsc.metroport.pl/Mvno/Mobiles/503100100',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS => 'ano=503100100&np=1&npdata=1',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/x-www-form-urlencoded',
'Cookie: sess_ci=vdado2e7d4ql7vjj7ta1tlfgfcfgq65v'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
1726
}
{
1726
}
{
1726
}
odpowiedź w przypadku braku określonych parametrów (walidacja):
{
"id": "Podane konto nie istnieje"
}
{
"id": "Podane konto nie istnieje"
}
{
"id": "Podane konto nie istnieje"
}
Parametry wywołania | Opis |
---|---|
ano | Nowy numer 9 cyfr, wraz z prefiksem 48. Parametry niżej są opcjonalne, wymagane tylko jesli nowy numer jest numerem przeniesionym od innego operatora |
np | 0-numer własny 1-numer przeniesiony |
npdata | struktura zawierajaca pozycję ext_operators_id - ID operatora |
Lista operatorów wg rejestru UKE - https://bip.uke.gov.pl/rpt/
Wartość zwracana | Opis |
---|---|
id (int) | ID operacji |
Zmiana usługi na koncie MVNO
PUT https://api.mmsc.metroport.pl/Mvno/Mobiles/{id lub numer telefonu 48xxx (razem 11 cyfr)}/ChangeMobileService
- Funkcja zmienia aktywność / parametr usługi dodatkowej dla konta.
- Strona w MMS: Użytkownicy -> MVNO -> Edycja konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
PUT /Mvno/Mobiles/780289499/Mobiles/ChangeMobileService? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=82bhll6asovnggurp2omeol7vq1blgc0
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles/780289499/ChangeMobileService",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=82bhll6asovnggurp2omeol7vq1blgc0"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
1726
}
{
1726
}
{
1726
}
odpowiedź w przypadku braku określonych parametrów (walidacja):
{
"ano": "Konto nie jest aktywne"
"serviceid": "Pole Komponent jest wymagane.",
"status": "Pole Status jest wymagane."
}
{
"ano": "Konto nie jest aktywne",
"serviceid": "Pole Komponent jest wymagane.",
"status": "Pole Status jest wymagane."
}
{
"ano": "Konto nie jest aktywne",
"serviceid": "Pole Komponent jest wymagane.",
"status": "Pole Status jest wymagane."
}
Parametry wywołania | Opis |
---|---|
ano | Numer telefonu |
serviceid | ID usługi dodatkowej: 1788 - roaming 1996 - poczta glosowa 2000 – balance control |
status | 0- deaktywacja / 1- aktywacja / 2- zmiana parametru |
param | wartość rozszerzona dla komponentu, używana w sytuacji kiedy dany komponent ją obsługuje (np. dla komponentu 'przekierowanie' w celu podania numeru dla przekierowania) |
Wartość zwracana | Opis |
---|---|
id (int) | ID operacji |
Przeniesienie konta MVNO
PUT https://api.mmsc.metroport.pl/Mvno/Mobiles/{id lub numer telefonu 48xxx (razem 11 cyfr)}/TransferMobile
Konto przenoszone musi być aktywne i nie może być wykonywana żadna operacja oczekująca na tym koncie.
- Funkcja przenosi konto z jednego użytkownika do innego.
- Strona w MMS: Użytkownicy -> MVNO -> Przenieś konto
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
PUT /Mvno/Mobiles/48515093713/TransferMobile? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=cil4tibsq3ppt90qifl0ss2o1rua73rb
userid=2
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles/48515093713/TransferMobile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "userid=2",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=cil4tibsq3ppt90qifl0ss2o1rua73rb"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
true,
}
{
true,
}
{
true,
}
odpowiedź w przypadku braku określonych parametrów (walidacja):
{
"ano": "Konto nie jest aktywne"
}
{
"userid": "Pole Klient jest wymagane."
}
{
"ano": "Konto nie jest aktywne"
}
{
"userid": "Pole Klient jest wymagane."
}
{
"ano": "Konto nie jest aktywne"
}
{
"userid": "Pole Klient jest wymagane."
}
Parametry wywołania | Opis |
---|---|
userid | id docelowego użytkownika |
Wartość zwracana | Opis |
---|---|
true | status operacji |
Blokada konta MVNO
PUT https://api.mmsc.metroport.pl/Mvno/Mobiles/{id lub numer telefonu 48xxx (razem 11 cyfr)}/BlockMobile
- Funkcja blokuje połączenia wychodzące dla konta z podanym numerem.
- Strona w MMS: Klienci -> MVNO -> Edycja konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
PUT /Mvno/Mobiles/780289486/BlockMobile? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=6dtm4ci6sk2323belcog0t6jtid6srbb
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles/780289486/BlockMobile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => array(
"Cookie: sess_ci_dev=6dtm4ci6sk2323belcog0t6jtid6srbb"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
1726
}
{
1726
}
{
1726
}
Parametry wywołania | Opis |
---|---|
ano | Numer Telefonu |
Wartość zwracana | Opis |
---|---|
id (int) | ID operacji |
Odblokowanie konta MVNO
PUT https://api.mmsc.metroport.pl/Mvno/Mobiles/{id lub numer telefonu 48xxx (razem 11 cyfr)}/UnBlockMobile
- Funkcja odblokowuje połączenia wychodzące dla konta z podanym numerem.
- Strona w MMS: Klienci -> MVNO -> Edycja konta
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
PUT /Mvno/Mobiles/780289486/UnBlockMobile? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=6dtm4ci6sk2323belcog0t6jtid6srbb
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles/780289486/UnBlockMobile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=6dtm4ci6sk2323belcog0t6jtid6srbb"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
1726
}
{
1726
}
{
1726
}
Parametry wywołania | Opis |
---|---|
ano | Numer Telefonu |
Wartość zwracana | Opis |
---|---|
id (int) | ID operacji |
- DeleteMobile(auth_data, ano) 18
Pobranie usług głównych MVNO
GET https://api.mmsc.metroport.pl/Mvno/Mobiles/MvnoMainServices
- Funkcja zwracająca aktualną listę usług głównych.
- Strona w MMS: MVNO -> Lista
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
GET /Mvno/Mobiles/MvnoMainServices HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=75bhkcr8iereprurdvh1dk9le1ar5mo0
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "sim_iccid=8948061300012004990&ext_services_id=780281417&userid=3",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=nvgusvhr3tef2aou2ic4qumbbaqk0vac"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "29",
"ext_id": "metroport_mobile_voice_2",
"name": "DATA_100",
"description": "",
"subservices": "106,16",
"forced_subservices": "106",
"configurable": "0",
"expiredate": "0000-00-00"
},
{
"id": "30",
"ext_id": "metroport_mobile_voice_2",
"name": "DATA_200",
"description": "",
"subservices": "107,16",
"forced_subservices": "107",
"configurable": "0",
"expiredate": "0000-00-00"
},
{
"id": "29",
"ext_id": "metroport_mobile_voice_2",
"name": "DATA_100",
"description": "",
"subservices": "106,16",
"forced_subservices": "106",
"configurable": "0",
"expiredate": "0000-00-00"
},
{
"id": "30",
"ext_id": "metroport_mobile_voice_2",
"name": "DATA_200",
"description": "",
"subservices": "107,16",
"forced_subservices": "107",
"configurable": "0",
"expiredate": "0000-00-00"
},
{
"id": "29",
"ext_id": "metroport_mobile_voice_2",
"name": "DATA_100",
"description": "",
"subservices": "106,16",
"forced_subservices": "106",
"configurable": "0",
"expiredate": "0000-00-00"
},
{
"id": "30",
"ext_id": "metroport_mobile_voice_2",
"name": "DATA_200",
"description": "",
"subservices": "107,16",
"forced_subservices": "107",
"configurable": "0",
"expiredate": "0000-00-00"
},
Wartość zwracana | Opis |
---|---|
id | int |
name | string – nazwa usługi |
subservices | string – domyślnie aktywowane uslugi dodatkowe, rozdzielone przecinkiem |
Pobranie usług dodatkowych MVNO
GET https://api.mmsc.metroport.pl/Mvno/Mobiles/MvnoSubServices
- Funkcja zwracająca aktualną listę usług dodatkowych.
- Strona w MMS: MVNO -> Lista
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
GET /Mvno/Mobiles/MvnoSubServices HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=6dtm4ci6sk2323belcog0t6jtid6srbb
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Mobiles/MvnoSubServices",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=6dtm4ci6sk2323belcog0t6jtid6srbb"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "75",
"ext_id": "22221",
"name": "100 minut na połączenia głosowe do wszystkich",
"description": "",
"type": "cykliczna",
"shared": "0",
"paramname": "",
"freecategory": "national",
"freetotal": "6000",
"self_service": "0"
},
{
"id": "76",
"ext_id": "22217",
"name": "100 SMS do wszystkich",
"description": "",
"type": "cykliczna",
"shared": "0",
"paramname": "",
"freecategory": "sms",
"freetotal": "100",
"self_service": "0"
},
{
"id": "75",
"ext_id": "22221",
"name": "100 minut na połączenia głosowe do wszystkich",
"description": "",
"type": "cykliczna",
"shared": "0",
"paramname": "",
"freecategory": "national",
"freetotal": "6000",
"self_service": "0"
},
{
"id": "76",
"ext_id": "22217",
"name": "100 SMS do wszystkich",
"description": "",
"type": "cykliczna",
"shared": "0",
"paramname": "",
"freecategory": "sms",
"freetotal": "100",
"self_service": "0"
},
{
"id": "75",
"ext_id": "22221",
"name": "100 minut na połączenia głosowe do wszystkich",
"description": "",
"type": "cykliczna",
"shared": "0",
"paramname": "",
"freecategory": "national",
"freetotal": "6000",
"self_service": "0"
},
{
"id": "76",
"ext_id": "22217",
"name": "100 SMS do wszystkich",
"description": "",
"type": "cykliczna",
"shared": "0",
"paramname": "",
"freecategory": "sms",
"freetotal": "100",
"self_service": "0"
},
Wartość zwracana | Opis | ||
---|---|---|---|
id | int | ||
name | string – nazwa usługi | ||
paramname | string – nazwa parametru dla usługi |
Pobranie pul numeracyjnych
GET https://api.mmsc.metroport.pl/Mvno/Pools
- Funkcja zwracająca listę zdefiniowanych pul numeracyjnych.
- Strona w MMS: Konfiguracja -> MVNO -> Pule numeracyjne
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
GET /Mvno/Pools HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=u4cv0u20ti2eh2f95k0dgv8o8ijq5shn
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Pools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=u4cv0u20ti2eh2f95k0dgv8o8ijq5shn"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "1",
"firmid": "2",
"pool_start": "780280000",
"pool_end": "780280099",
"spqm": "7802800",
"quantity": "100",
"supplier": "Metroport",
"owner": "TeLogic",
"active": "1",
"creationdate": "1298545296",
"creatorid": "53",
"moddate": "0",
"modid": "0",
"destination": "mvno",
"PoolName": "7802800, 780280000 - 780280099"
}
Wartość zwracana | Opis |
---|---|
poolid | ID puli numeracyjnej |
pool_start | Pierwszy numer w puli |
pool_end | Ostatni numer w puli |
spqm | Pełny prefiks strefy numeracyjnej |
quantity | Ilość numerów w puli |
supplier | Dostawca puli |
owner | Właściciel puli |
acvite | 0-nieaktywna / 1-aktywna |
Lista dostępnych wolnych numerów MVNO
GET https://api.mmsc.metroport.pl/Mvno/Mobiles/MvnoFreeNumbers?poolid={ID puli}
Parametry wywołania | Opis |
---|---|
poolid | ID puli numeracyjnej |
- Funkcja zwracająca listę wolnych numerów.
- Strona w MMS: MVNO -> Wolne numery
Lista zajętych numerów MVNO
GET https://api.mmsc.metroport.pl/Mvno/Mobiles/MvnoUsedNumbers?poolid={ID puli}
Parametry wywołania | Opis |
---|---|
poolid | ID puli numeracyjnej |
- Funkcja zwracająca listę zajętych numerów.
- Strona w MMS: MVNO -> Wolne numery
Karty SIM
Pobranie listy kart SIM
GET https://api.mmsc.metroport.pl/Mvno/SimCards
- Funkcja zwracająca listę wszystkich kart SIM, z aktualnymi statusami.
- Strona w MMS: MVNO -> Karty SIM
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
GET /Mvno/Simcards HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=u4cv0u20ti2eh2f95k0dgv8o8ijq5shn
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Simcards",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=u4cv0u20ti2eh2f95k0dgv8o8ijq5shn"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "1",
"firmid": "1",
"hlr": "68",
"status": "deleted",
"imsi": "260030680011100",
"iccid": "8948030380600111001",
"pin1": "4759",
"puk1": "86820949",
"pin2": "9999",
"puk2": "53888366",
"adm": "",
"lpa": "",
"activedate": "0",
"deletedate": "0",
"mobileid": null,
"ano": null,
"userid": null,
"mobilestatus": null
}
Wartość zwracana | Opis |
---|---|
id | ID karty SIM |
hlr | Typ hlr karty SIM |
status | stored,assigned,active,blocked,deleted |
imsi | Numer karty SIM |
iccid | Identyfikator karty SIM |
pin1 | pin1 |
puk1 | puk1 |
pin2 | pin2 |
puk2 | puk2 |
adm | Kod administracyjny |
lpa | Kod QR LPA dla esim |
activedate | Unix timestamp |
deletedate | Unix timestamp |
Istnieje możliwość filtrowania wyników przy pomocy parametrów:
Parametr 1 | Opis | Parametr 2 | Opis |
---|---|---|---|
orderBy | wartości: id, mobileid, ano, iccid, imsi, userid, activedate | order | asc = rosnąco, desc = malejąco |
limitonpages | ilość wyników na stronę | page | strona wyników (pierwsza strona to 0) |
Usunięcie karty SIM
DELETE https://api.mmsc.metroport.pl/Mvno/SimCards
- Funkcja usuwająca kartę SIM.
- Strona w MMS: MVNO -> Karty SIM
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
Parametry wywołania | Opis |
---|---|
sim_iccid | Numer Telefonu |
Wartość zwracana | Opis |
---|---|
true | status operacji |
Biling MVNO
Pobranie bilingu
GET https://api.mmsc.metroport.pl/Mvno/Billings
- Funkcja zwracająca billing kont MVNO.
- Strona w MMS: MVNO -> Billing ogólny
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
Parametry wywołania | struct |
---|---|
datestart | Data od kiedy pobrać rozmowy YYYY- MM-DD HH:mm:ss - pobrane zostaną rozmowy od podanej daty do daty wywołania |
dateend | Data do kiedy pobrać rozmowy w formacie YYYY-MM-DD HH:mm:ss - pobrane zostaną rozmowy do podanej w parametrze daty |
userid | id użytkownika (jeśli chcemy zawęzić biling do jednego klienta) |
importdate | Data zaimportowania rekordu |
id_after | Funkcja sortująca ID wyższe niż określone (np. można zapisać, że ostatnie ID pobraliśmy 111 i w zapytaniu podać 111, a API będzie zwracać 112 i dalsze. W tym przypadku parametr calldate jest wymagany) |
mobileid | ID konta MVNO |
traffic_types_id | ID typu ruchu |
traffic_categories_id | ID kategorii/frakcji ruchu |
counted | Flaga przeliczenia wg cennika taryfy klienta, 1-tak, 0-nie |
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.mmsc.metroport.pl/Mvno/Billings?datestart=2021-08-01&dateend=2021-08-02',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Cookie: sess_ci=pp5ijktcd0a5kthc1d10dj3hrah3le4a'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"id": "56664840",
"calldate": "2021-08-01 00:46:07",
"calldate_uts": "1627771567",
"importdate": "2021-08-01 02:17:38",
"firmid": "2",
"userid": "15276",
"mobileid": "3769",
"ano": "780280072",
"src": "48780280072",
"dst": "",
"ext_id": "251190644~27883322",
"traffic_types_id": "101",
"traffic_categories_id": "18",
"TypeName": "Transmisja danych",
"CategoryName": "Połączenie GPRS Internet",
"duration": "0.00",
"datatransfer": "48.90",
"msg": "0",
"billingtime": "1024",
"unit": "kB",
"nettovalue": "0.00500",
"vat": "23",
"countingcall": "100",
"totalnetto": "0.01000",
"free_totalnetto": "0.01000",
"freeseconds_used": "0",
"freedata_used": "100",
"free_totalnetto_provider": "0.01000",
"freeseconds_used_provider": "0",
"freedata_used_provider": "100",
"realtotalnetto": "0.00000",
"realtotalbrutto": "0.000000000",
"provider_nettovalue": "0.00500",
"provider_vat": "23",
"provider_countingcall": "100",
"provider_totalnetto": "0.00000",
"totalsurplus": "0.00000",
"rateddate": "2021-08-01 02:21:33",
"provider_rateddate": "2021-08-01 02:21:33",
"ext_provider_rateddate": "0000-00-00 00:00:00",
"ext_provider_totalnetto": "0.00000",
"counted": "1",
"provider_counted": "1",
"diffcounted": "0",
"fca": "",
"app": "4",
"appdata": "617",
"clearcause": "400",
"location_src": "1010100103001@@@",
"location_dst": "2000000000000001",
"cos": "2175",
"billingfield": "datatransfer",
"stgroupid": "19",
"actual_service_tariffid": "1404",
"datatransferCommonSize": "48.90 kB",
"durationHoursMinutesSeconds": "0 sec"
},
{
"id": "56668370",
"calldate": "2021-08-01 08:17:45",
"calldate_uts": "1627798665",
"importdate": "2021-08-01 09:00:01",
"firmid": "2",
"userid": "5834",
"ano": "603648390",
"src": "48603648390",
"dst": "48516481031",
"ext_id": "1826721376~27883323",
"traffic_types_id": "1",
"traffic_categories_id": "3",
"TypeName": "Połączenie głosowe krajowe",
"CategoryName": "Połączenie do sieci komórkowej",
"duration": "67.00",
"datatransfer": "0.00",
"msg": "0",
"billingtime": "60",
"unit": "s",
"nettovalue": "0.07000",
"vat": "23",
"countingcall": "1",
"totalnetto": "0.08000",
"free_totalnetto": "0.08000",
"freeseconds_used": "67",
"freedata_used": "0",
"free_totalnetto_provider": "0.08000",
"freeseconds_used_provider": "67",
"freedata_used_provider": "0",
"realtotalnetto": "0.00000",
"realtotalbrutto": "0.000000000",
"provider_nettovalue": "0.07000",
"provider_vat": "23",
"provider_countingcall": "1",
"provider_totalnetto": "0.00000",
"totalsurplus": "0.00000",
"rateddate": "2021-08-01 09:04:06",
"provider_rateddate": "2021-08-01 09:04:06",
"ext_provider_rateddate": "0000-00-00 00:00:00",
"ext_provider_totalnetto": "0.00000",
"counted": "1",
"provider_counted": "1",
"diffcounted": "0",
"fca": "48516481031",
"app": "1",
"appdata": "4",
"clearcause": "16",
"location_src": "1010100103001011",
"location_dst": "1010100103006@@@",
"cos": "2175",
"billingfield": "duration",
"stgroupid": "19",
"actual_service_tariffid": "2052",
"datatransferCommonSize": "0.00 B",
"durationHoursMinutesSeconds": "1 min, 7 sec"
}
GET /Mvno/Billings?datestart=2021-08-01&dateend=2021-08-02 HTTP/1.1
Host: api.mmsc.metroport.pl
Cookie: sess_ci=pp5ijktcd0a5kthc1d10dj3hrah3le4a
Wartość zwracana | Opis |
---|---|
id | Unikalne id rekordu |
calldate | czas rozpoczęcia połączenia |
calldate_uts | czas rozpoczęcia połączenia w formacie unix_timestamp |
importdate | data zaimportowania rekordu |
firmid | id firmy |
userid | id klienta |
ano | numer konta/telefonu |
src | numer źródłowy |
dst | numer docelowy (bno) |
ext_id | id polaczenia w systemie dostawcy |
traffic_types_id | id typu ruchu |
traffic_categories_id | id kategorii/frakcji ruchu |
TypeName | nazwa typu ruchu |
CategoryName | nazwa kategorii/frakcji ruchu |
duration | czas trwania połączenia w sekundach |
datatransfer | ilość przesłanych danych w kB |
msg | wiadomość SMS/MMS |
billingtime | czas impulsu |
unit | jednostka naliczania |
nettovalue | jednostkowa wartość netto za impuls |
vat | stawka vat w % |
countingcall | naliczanie w sek |
totalnetto | obliczona całkowita wartość netto za rozmowę, nie uwzględnia darmowych minut |
free_totalnetto | kwota do odliczenia z pola totalnetto (darmowe minuty) |
freeseconds_used | ilość wykorzystanych darmowych minut (w sekundach) |
freedata_used | ilość wykorzystanych darmowych MB (w kB) |
free_totalnetto_provider | kwota do odliczenia z pola totalnetto (darmowe minuty) |
freeseconds_used_provider | ilość wykorzystanych darmowych minut (w sekundach) |
freedata_used_provider | ilość wykorzystanych darmowych MB (w kB) |
realtotalnetto | obliczona całkowita wartość netto za rozmowę wg cennika partnerskiego, z darmowymi minutami |
realtotalbrutto | obliczona całkowita wartość brutto za rozmowę wg cennika partnerskiego, z darmowymi minutami |
provider_netto_value | jednostkowa wartość netto za impuls wg cennika kosztów dostawcy |
provider_vat | stawka vat w % wg cennika kosztów dostawcy |
provider_countingcall | naliczanie w sek wg cennika kosztów dostawcy |
provider_totalnetto | koszt całkowity obliczony wg cennika kosztów dostawcy |
provider_totalnetto_raw | koszt całkowity obliczony wg cennika kosztów dostawcy |
rateddate | data billingowania w MMS |
provider_rateddate | data billingowania kosztów dostawcy w MMS |
ext_provider_rateddate | data billingowania u operatora |
ext_provider_totalnetto | koszt zdarzenia netto wg operatora |
counted | czy przeliczone wg cennika taryfy klienta, 1-tak, 0-nie |
provider_counted | flaga obliczenia kosztów dostawcy: 0-do obliczenia, 1-obliczone |
fca | dodatkowy prefix + BNO |
app | aplikacja użyta w polaczeniu |
appdata | dane aplikacji |
clearcause | powód rozłączenia |
location_src | wskaźnik lokalizacji numeru źródłowego |
location_dst | wskaźnik lokalizacji numeru docelowego |
cos | CoS |
billingfield | pole bilingowania |
stgroupid | id grupy usług |
actual_service_tariffid | id taryfy klienta |
datatransferCommonSize | pełny zapis transferu w MB |
durationHoursMinutesSeconds | pełny zapis czasu trwania połączenia |
retail_counted | flaga obliczenia kosztów cennika detalicznego: 0-do obliczenia, 1-obliczone |
retail_rateddate | data billingowania cennika detalicznego w MMS |
retail_nettovalue | jednostkowa wartość netto za impuls wg cennika detalicznego |
retail_vat | stawka vat w % wg cennika detalicznego |
retail_countingcall | naliczanie w sek wg cennika detalicznego |
retail_totalnetto_raw | koszt całkowity obliczony wg cennika detalicznego |
retail_totalnetto | koszt całkowity obliczony wg cennika detalicznego (z uwzględnieniem pakietów - np. jeśli klient posiada pakiet bez limitu - wartość równa jest 0) |
Pobranie typów połączeń w bilingu
GET https://api.mmsc.metroport.pl/Mvno/Billings/TrafficTypes
GET /Mvno/Billings/TrafficTypes? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=cil4tibsq3ppt90qifl0ss2o1rua73rb
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Billings/TrafficTypes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "userid=2",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=cil4tibsq3ppt90qifl0ss2o1rua73rb"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "1",
"ext_id": "1",
"name": "REGULAR_CALL",
"type": "call",
"description": "Połączenie głosowe krajowe",
"unit": "s"
},
{
"id": "2",
"ext_id": "1",
"name": "ROAMING_CALL",
"type": "call",
"description": "Połączenie głosowe w roamingu / połączenie zwrotne",
"unit": "s"
}
{
"id": "1",
"ext_id": "1",
"name": "REGULAR_CALL",
"type": "call",
"description": "Połączenie głosowe krajowe",
"unit": "s"
},
{
"id": "2",
"ext_id": "1",
"name": "ROAMING_CALL",
"type": "call",
"description": "Połączenie głosowe w roamingu / połączenie zwrotne",
"unit": "s"
}
{
"id": "1",
"ext_id": "1",
"name": "REGULAR_CALL",
"type": "call",
"description": "Połączenie głosowe krajowe",
"unit": "s"
},
{
"id": "2",
"ext_id": "1",
"name": "ROAMING_CALL",
"type": "call",
"description": "Połączenie głosowe w roamingu / połączenie zwrotne",
"unit": "s"
}
{
"id": "1",
"ext_id": "1",
"name": "REGULAR_CALL",
"type": "call",
"description": "Połączenie głosowe krajowe",
"unit": "s"
},
{
"id": "2",
"ext_id": "1",
"name": "ROAMING_CALL",
"type": "call",
"description": "Połączenie głosowe w roamingu / połączenie zwrotne",
"unit": "s"
}
Pobranie kategorii/frakcji ruchu w bilingu
GET https://api.mmsc.metroport.pl/Mvno/Billings/TrafficCategories
Pobranie stawek w cenniku partnerskim MVNO
GET https://api.mmsc.metroport.pl/Mvno/ProviderRates
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/ProviderRates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=kp7o2dnfugqmr27clv5dl5bavvn825qk"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"id": "55700",
"traffic_categories_id": "1",
"countingcall": "1",
"pricenetto": "1.46341",
"freecategory": null,
"traffic_types_id": "132",
"name": "BZ1_TO_ANYWHERE_MMS",
"CategoryName": "Wiadomość MMS w roamingu w strefie 1",
"billingtime": "1",
"onetime": "1",
"TypeName": "MMS w roamingu",
"unit": "wiad."
},
GET /Mvno/ProviderRates? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=kp7o2dnfugqmr27clv5dl5bavvn825qk
Wartość zwracana | Opis |
---|---|
id | Unikalne id rekordu |
traffic_types_id | Typ ruchu |
traffic_categories_id | frakcja/kategoria ruchu |
countingcall | naliczanie w sek/KB |
pricenetto | stawka netto |
freecategory | rozmowy z danej kategorii zaliczane do puli darmowych minut/MB/SMS |
name | nazwa |
CategoryName | nazwa frakcji ruchu |
billingtime | czas impulsu |
onetime | impuls jednorazowy (opłata za całe połączenie) |
TypeName | typ rekordu |
unit | jednostka miary |
Pobranie stawek w cenniku detalicznym MVNO
GET https://api.mmsc.metroport.pl/Mvno/retailRates
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/retailRates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=kp7o2dnfugqmr27clv5dl5bavvn825qk"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"id": "1028",
"traffic_categories_id": "3",
"countingcall": "60",
"pricenetto": "0.23577",
"freecategory": "mobile",
"pricebrutto": "0.29",
"traffic_types_id": "1",
"name": "P4_TO_POLAND_MOBILE_VC",
"CategoryName": "Połączenie do sieci komórkowej",
"billingtime": "60",
"onetime": "0",
"TypeName": "Połączenie głosowe krajowe",
"unit": "s"
},
GET /Mvno/retailRates? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=kp7o2dnfugqmr27clv5dl5bavvn825qk
Wartość zwracana | Opis |
---|---|
id | Unikalne id rekordu |
traffic_types_id | Typ ruchu |
traffic_categories_id | frakcja/kategoria ruchu |
countingcall | naliczanie w sek/KB |
pricenetto | stawka netto |
freecategory | rozmowy z danej kategorii zaliczane do puli darmowych minut/MB/SMS |
name | nazwa |
CategoryName | nazwa frakcji ruchu |
billingtime | czas impulsu |
onetime | impuls jednorazowy (opłata za całe połączenie) |
TypeName | typ rekordu |
unit | jednostka miary |
Import cennika detalicznego
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.mmsc.metroport.pl/Mvno/retailRates/importRates',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('import.csv')),
CURLOPT_HTTPHEADER => array(
'Cookie: sess_ci=n1e1jau3qafevlkeb1k6obuo108lfokc'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
POST /Mvno/retailRates/importRates HTTP/1.1
Host: api.mmsc.metroport.pl
Cookie: sess_ci=n1e1jau3qafevlkeb1k6obuo108lfokc
Content-Length: 198
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="import.csv"
Content-Type: text/csv
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
odpowiedź w przypadku sukcesu:
Zaimportowano 1 pozycji. |true
{
Zaimportowano 1 pozycji. |true
}
Zaimportowano 1 pozycji. |true
odpowiedź w przypadku błędu:
Brak pliku do importu. |"Bad Request"
Pusty plik do importu. |"Bad Request"
Brak pliku do importu. |"Bad Request"
Pusty plik do importu. |"Bad Request"
Brak pliku do importu. |"Bad Request"
Pusty plik do importu. |"Bad Request"
POST https://api.mmsc.metroport.pl/mvno/retailRates/importRates
- Funkcja umożliwiająca import cennika detalicznego MVNO dla klientów końcowych
- Plik musi być przygotowany w formacie .csv i zawierać kolumny opisane w tabeli, rozdzielone znakiem ";"
- Strona w MMS: Konfiguracja -> MVNO -> Cennik detaliczny -> Import
- W celu nadania uprawnień do funkcji nalezy skontaktować się z Metroportem
- Jeśli dla partnera nie będzie zdefiniowanego cennika detalicznego zwrócony zostanie cennik domyślny metroportu
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
Parametry wywołania | Opis |
---|---|
file | ścieżka do .csv |
Przykładowa struktura pliku (pola oznaczone "*" są wymagane, pozostałe nie są importowane):
Struktura pól:
*nazwa kategorii;*cena netto za impuls [pln];*czas impulsu [s/kB/wiad];*naliczanie [s/kB/wiad];pula darmowych minut [internal/fixed/mobile/national/data/sms];jednorazowa opłata za połączenie [1-tak, 0-nie];nazwa kategorii;nazwa typu
Przykładowy plik:
BZ1_TO_ANYWHERE_MMS;1,62602;1;1;;1;Wiadomość MMS w roamingu w strefie 1;MMS w roamingu
Pobranie statusu operacji MVNO
GET https://api.mmsc.metroport.pl/Mvno/Operations
- Funkcja zwracająca status danego numeru zlecenia.
- Strona w MMS: MVNO -> Operacje
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
Istnieje możliwość filtrowania wyników przy uwzględnieniu parametrów w nagłówku:
Parametry wywołania | Opis |
---|---|
ano | Numer Telefonu |
userid | ID klienta |
W przykładzie zostało pokazane listowanie wszystkich operacji typu "Aktywacja" ze statusem "błąd"
Dostępne filtry statusów:
{
"new": {
"id": "new",
"name": "nowa"
},
"sent": {
"id": "sent",
"name": "wysłana, w realizacji"
},
"ok": {
"id": "ok",
"name": "wykonana poprawnie"
},
"error": {
"id": "error",
"name": "błąd"
}
}
Dostępne filtry statusów:
GET https://api.mmsc.metroport.pl/Mvno/Operations/StatusesList
Dostępne typy operacji:
{
"-1": {
"id": "-1",
"name": "-- wszystkie zlecenia --"
},
"ActivateMobile": {
"id": "ActivateMobile",
"name": "aktywacja nowego numeru"
},
"ActivateMobile_NP": {
"id": "ActivateMobile_NP",
"name": "aktywacja numeru przeniesionego"
},
"ChangeMobileSIM": {
"id": "ChangeMobileSIM",
"name": "zmiana karty SIM"
},
"ChangeMobileAno": {
"id": "ChangeMobileAno",
"name": "zmiana numeru"
},
"ChangeMobileProduct": {
"id": "ChangeMobileProduct",
"name": "zmiana usługi podstawowej"
},
"ChangeMobileService": {
"id": "ChangeMobileService",
"name": "zmiana usługi"
},
"BlockMobile": {
"id": "BlockMobile",
"name": "zablokowanie konta"
},
"UnBlockMobile": {
"id": "UnBlockMobile",
"name": "odblokowanie konta"
},
"DeleteMobile": {
"id": "DeleteMobile",
"name": "usunięcie konta"
},
"ImportBilling": {
"id": "ImportBilling",
"name": "import billingu"
},
"Other": {
"id": "Other",
"name": "pozostałe"
}
}
Dostępne typy operacji:
GET https://api.mmsc.metroport.pl/Mvno/Operations/TypesList
GET /Mvno/Operations/?type=ActivateMobile&&status=error HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=132ru89kr0i3j7l87ps95lhd7qv9t1eu
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/Operations/?type=ActivateMobile&&status=error",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Cookie: sess_ci_dev=132ru89kr0i3j7l87ps95lhd7qv9t1eu"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "54713",
"firmid": "9",
"userid": "7234",
"ano": "732152722",
"status": "error",
"type": "ActivateMobile",
"data": "a:4:{s:6:\"msisdn\";s:9:\"732152722\";s:5:\"iccid\";s:19:\"8948061050017559471\";s:9:\"offerName\";s:4:\"DATA\";s:4:\"name\";s:17:\"MetroM Data 30GB \";}",
"ext_orderid": "516890047",
"errormsg": "Błąd",
"errorcount": "1",
"creationdate": "1480060045",
"execdate": "1480352956"
},
{
"id": "42882",
"firmid": "60",
"userid": "1966",
"ano": "780287334",
"status": "error",
"type": "ActivateMobile",
"data": "<root><order><AbbType>1</AbbType><OrderType>1</OrderType><CustomerType>1</CustomerType><MSISDN>780287334</MSISDN><Mobil_ICC>8948030380600135976</Mobil_ICC><CompanyName>NETCOM computers - Robert Opieliński</CompanyName><StreetName>Dobrzecka</StreetName><Number>13</Number><ZipCode>62-800</ZipCode><City>Kalisz</City><Country>Polska</Country><Email>netcom@ekranledowy.pl</Email><NIP>6181906953</NIP><TmsProductID>2035</TmsProductID><ExternalCustomerNo>1966</ExternalCustomerNo></order></root>",
"ext_orderid": "0",
"errormsg": "wylaczenie numeracji",
"errorcount": "1",
"creationdate": "1432801244",
"execdate": "1433948883"
},
odpowiedź w przypadku braku parametrów:
<br>`ERROR 204: No Content`
Parametry wywołania | Opis |
---|---|
orderid | ID zlecenia |
Wartość zwracana | Opis |
---|---|
operationdata | userid – int: id użytkownika/klienta ano – string: numer telefonu status – string: ok, sent, error type – string: typ zlecenia errormsg – string: opis błędu errorcount – int: ilość błędnych prób |
Pobranie zdarzeń PLICBD2
GET https://api.mmsc.metroport.pl/Mvno/PlicbdEvents
- Funkcja zwracająca listę zdarzeń PLICBD.
- Strona w MMS: MVNO -> PLICBD
- Parametry zwracane (eventslist) mogą zostać użyte jako filtry wyszukiwania
- Rekordy pogrubione = rekordy wymagane
W przykładzie zostało pokazane listowanie wszystkich zdarzeń typu "E03" ze statusem "wysłane"
Dostępne typy operacji:
GET https://api.mmsc.metroport.pl/Mvno/Operations/TypesList
GET /Mvno/PlicbdEvents?type=E03&status=wysłane HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=ochpt6l842trkj3524iollt0ha6pko5r
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/PlicbdEvents?type=E03&status=wys%C5%82ane",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=ochpt6l842trkj3524iollt0ha6pko5r"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"id": "1",
"firmid": "40",
"caseid": "1",
"ext_eventid": "087480000000000001",
"type": "E03",
"dirnum": "555111222",
"uke_operatorid_services": "92",
"uke_operatorid_network": "92",
"operation": "INSERT",
"data": "YTo4OntzOjE4OiJjYXNlLWRvY3VtZW50LTEtaWQiO3M6MDoiIjtzOjMxOiJjYXNlLWRvY3VtZW50LTEtZXhwaXJhdGlvbi1kYXRlIjtzOjEwOiIxNDYyNTcyMDAwIjtzOjEyOiJwcm9jZXNzLXR5cGUiO3M6MToiMSI7czoxNDoicm91dGluZy1udW1iZXIiO3M6NToiQzAxMDYiO3M6MTI6InBvcnRpbmctbW9kZSI7czozOiJFTkQiO3M6Mjg6ImNhc2UtcGVuZGluZy1hY3RpdmF0aW9uLWRhdGUiO3M6MTA6IjE0NjAxMTU3MjAiO3M6MTc6InZlcmlmaWNhdGlvbi10eXBlIjtzOjE6IjEiO3M6ODoiYXR0b3JuZXkiO3M6MToiMSI7fQ==",
"status": "wysłane",
"errormsg": "",
"package": "1",
"eventdate": "1460025720",
"execdate": "1460033101",
"creationdate": "1460026204",
"creatorid": "0",
"ext_caseid": "087480000000000001",
"uke_operatorid_recipient": "8748",
"uke_operatorid_donor": "9597",
"owned": "1",
"user_name": "Jan Kowalski",
"user_identifier_type": "DOC",
"user_identifier_no": "ASD453789",
"SelectName": "087480000000000001 - 555111222",
"case-document-1-id": "",
"case-document-1-expiration-date": "1462572000",
"process-type": "1",
"routing-number": "C0106",
"porting-mode": "END",
"case-pending-activation-date": "1460115720",
"verification-type": "1",
"attorney": "1"
}
odpowiedź w przypadku braku parametrów:
<br>`ERROR 204: No Content`
Parametry wywołania | Opis |
---|---|
orderid | ID zlecenia |
Wartość zwracana | Opis |
---|---|
operationdata | userid – int: id użytkownika/klienta ano – string: numer telefonu status – string: ok, sent, error type – string: typ zlecenia errormsg – string: opis błędu errorcount – int: ilość błędnych prób |
Parametry wywołania | Opis |
---|---|
datefrom | Najwcześniejsza data wysłania / odebrania zwracanych zdarzeń YYYY-MM-DD HH:ii:ss |
lastid | int |
Wartość zwracana | Opis |
---|---|
eventslist | Parametry eventdata zostały opisane szczegółowo w sekcji pt. "Wysłanie zdarzenia PLICBD2" |
Lista dostępnych formatek PLICBD2
GET https://api.mmsc.metroport.pl/Mvno/PLICBDEvents/AllowedEventOperations
Lista dostępnych typów operacji PLICBD2
GET https://api.mmsc.metroport.pl/Mvno/PLICBDEvents/EventTypes
Lista dostępnych Operatorów UKE
GET https://api.mmsc.metroport.pl/Mvno/PLICBDEvents/UKEOperatorsList
Lista dostępnych błędów w komunikacji z PLICBD2
GET https://api.mmsc.metroport.pl/Mvno/PLICBDEvents/ErrorReasonsList
Wysyłanie zdarzeń PLICBD2
POST https://api.mmsc.metroport.pl/Mvno/PlicbdEvents
- Funkcja dodaje nowe zdarzenie PLICBD.
- Strona w MMS: MVNO -> PLICBD->Nowe zdarzenie
- Dodatkowe parametry wewnątrz ciała żądania podczas edycji / dodawania rekordu powinny być zakodowane jako JSON lub urlencoded
- Rekordy pogrubione = rekordy wymagane
W przykładzie została pokazana wysyłka typowej formatki E03 rozpoczynającej proces przeniesienia numeru
POST /Mvno/PlicbdEvents? HTTP/1.1
Host: api.mmsc.metroport.pl
Content-Type: application/json; charset=utf-8
Cookie: sess_ci_dev=rutphtoufi0ki3hjlgg7ss6bljk1eefl
type=E03&dirnum=123456789&uke_operatorid_recipient=8748&uke_operatorid_donor=9597&operation=INSERT&user_name=Jan Kowalski&user_identifier_type=DOC&user_identifier_no=ABC123567&case-document-1-id=&case-document-1-expiration-date=2020-09-01&eventdate=2020-08-04&uke_operatorid_services=8748&uke_operatorid_network=8748&process-type=1&routing-number=C0106&porting-mode=END&case-pending-activation-date=2020-09-01&verification-type=1&attorney=1
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/Mvno/PlicbdEvents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "type=E03&dirnum=123456789&uke_operatorid_recipient=8748&uke_operatorid_donor=9597&operation=INSERT&user_name=Jan%20Kowalski&user_identifier_type=DOC&user_identifier_no=ABC123567&case-document-1-id=&case-document-1-expiration-date=2020-09-01&eventdate=2020-08-04&uke_operatorid_services=8748&uke_operatorid_network=8748&process-type=1&routing-number=C0106&porting-mode=END&case-pending-activation-date=2020-09-01&verification-type=1&attorney=1",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=rutphtoufi0ki3hjlgg7ss6bljk1eefl"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź w przypadku sukcesu:
{
"caseid": 1726,
"eventid": 6221,
"ext_caseid": "087480000000001726",
"ext_eventid": "087480000000006221"
}
{
"caseid": 1726,
"eventid": 6221,
"ext_caseid": "087480000000001726",
"ext_eventid": "087480000000006221"
}
{
"caseid": 1726,
"eventid": 6221,
"ext_caseid": "087480000000001726",
"ext_eventid": "087480000000006221"
}
odpowiedź w przypadku nie podania parametrów (walidacja):
{
"type": "Pole Typ zdarzenia jest wymagane.",
"dirnum": "Pole Numer jest wymagane.",
"uke_operatorid_recipient": "Pole Operator biorca jest wymagane.",
"uke_operatorid_donor": "Pole Operator dawca jest wymagane."
}
{
"type": "Pole Typ zdarzenia jest wymagane.",
"dirnum": "Pole Numer jest wymagane.",
"uke_operatorid_recipient": "Pole Operator biorca jest wymagane.",
"uke_operatorid_donor": "Pole Operator dawca jest wymagane."
}
{
"type": "Pole Typ zdarzenia jest wymagane.",
"dirnum": "Pole Numer jest wymagane.",
"uke_operatorid_recipient": "Pole Operator biorca jest wymagane.",
"uke_operatorid_donor": "Pole Operator dawca jest wymagane."
}
Parametry wywołania | Opis |
---|---|
eventdata | Dane zdarzenia do wysłania do PLICBD |
Parametry wspólne | Nazwa | Opis | |
---|---|---|---|
Eventdata (parametry wspólne) | ext_caseid | ID sprawy w PLICBD (może pozostać pusty, wtedy zostanie nadany numer sprawy. Istotny w odpowiedzi na założoną sprawę) | |
ext_eventid | ID zdarzenia w PLICBD (numer nadawany jest przez MMSC) | ||
type | Typ komunikatu | ||
dirnum | Numer przydzielony w formacie KNA | ||
uke_operatorid_recipient | Identyfikator Biorcy numeru | ||
uke_operatorid_donor | Dawca usługi głosowej | ||
operation | Typ operacji: Dozwolone wartości: „INSERT” – dla komunikatów realizowanych w trybie standardowym „INTERVENTION” – Reklamacyjny zwrot Numeru – przeznaczony do stosowania w nagłych przypadkach reklamacyjnych „MIGRATION” – dla komunikatów związanych ze zmigrowaniem istniejących spraw do Systemu PLI CBD „TRANSFORMATION” – zmiana Dostawcy Usług związana z przekształceniami własnościowymi albo zmiana Operatora Usług Towarzyszących lub Operatora Sieci | ||
Eventdata (parametry dodatkowe, dołączane w zależności od typu komunikatu) Eventdata (parametry dodatkowe, dołączane w zależności od typu komunikatu) | E03 | user_name | Imię i nazwisko |
user_identifier_type | Rodzaj danych identyfikacyjnych | ||
user_identifier_no | Numer identyfikacyjny | ||
case-document-1-id | Numer wniosku NP Biorcy | ||
case-document-1-expiration-date | Data ważności wniosku NP | ||
eventdate | Data zdarzenia | ||
uke_operatorid_services | Operator Usług Towarzyszących | ||
uke_operatorid_network | Operator Sieci | ||
process-type | Rodzaj procesu | ||
routing-number | Numer rutingowy | ||
porting-mode | Tryb wypowiedzenia umowy | ||
case-pending-activation-date | Wnioskowana data rozpoczęcia świadczenia usług przez Biorcę | ||
verification-type | Sposób weryfikacji danych | ||
attorney | Pełnomocnictwo | ||
E06 | case-termination-date | Data rozwiązania umowy | |
E12 | case-pending-activation-date | Data i godzina przeniesienia | |
E13 | porting-date | Data i godzina przeniesienia | |
routing-number | Numer rutingowy | ||
E16 | reason | Identyfikator przyczyny odmowy przeniesienia numeru | |
E17 | |||
E18 | |||
E41 | astatus | Odpowiedź o zwracanych danych |
Wartość zwracana | Opis |
---|---|
ext_caseid | Nadany ID sprawy |
ext_eventid | Nadany ID zdarzenia |
SMS API
SMS API służy do wysyłania, sprawdzania statusu smsów, bilansu konta
Wysyłanie SMS
POST https://api.mmsc.metroport.pl/sms/SMS
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/sms/SMS",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array(
'message' => 'Test', // treść SMS
'msisdn' => '48123456789', // odbiorca SMS
'sender' => '48987654321', // nadawca
'dateToSend' => '1601412775', // data kiedy ma zostać wysłany SMS (znacznik czasowy unix)
'accountId' => 1, // id konta
),
CURLOPT_HTTPHEADER => array(
"Cookie: sess_ci_dev=e29qik65pcmj7nlslli1gq0eih8r454n"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Wartość | Obowiązkowe | Opis |
---|---|---|
message | tak | Treść |
msisdn | tak | Numer odbiorcy format: 48xxxxxxxxx |
sender | tak | Numer nadawcy lub Nazwa Nadawcy (losowy = pusty) |
accountId | nie | ID z "Pobranie listy wykupionych usług" |
noPolishCharacters | nie | Czy usunąć "polskie ogonki" |
dateToSend | nie | Data (int), kiedy ma zostać wysłany SMS |
anonymized | nie | Czy zanonimizować treść wiadomości |
report_callback | nie | URL do którego API wyśle status |
odpowiedź:
{
"id": 0, // id wysłanego SMS
"sms_count_send": 100, // ilość smsów wysłana po przekroczeniu abonamentu
"sms_count_subscription": 300 // ilość smsów pozostała w abonamencie
}
Uwaga, jeśli przy tworzeniu konta zaznaczona została opcja 'numer dwukierunkowy', a także podany został adres callback, dodatkowo zostanie wysłana informacja o przychodzącym SMS (metoda GET). Odpowiedź musi być 'ACCEPT':
{
"message": test,
"sender": 48xxxxxxxxx,
"date": 1598962172,
"id": 6a590bd1-328f-4ff2-b3cf-bf9ed479355f
}
Uwaga, jeśli w zapytaniu został użyty parametr report_callback wraz ze wskazaniem adresu URL, dodatkowo zostanie wysłana informacja o statusie SMS (metoda GET):
{
"messageId": 1234678,
"deliverydate": 1636966260,
"status": delivered,
"failedMessage": {{tresc bledu}}
}
Sprawdzanie statusu SMS
GET https://api.mmsc.metroport.pl/sms/SMS/{id}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/sms/SMS/{id_SMS}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=e29qik65pcmj7nlslli1gq0eih8r454n"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź:
{
"id": "1" // id SMS,
"status": "delivered", // status SMS
"senddate": "1596459273", // data i godzina wysłania SMS (w sekundach)
"deliverydate": "1596459240", // data i godzina odebrania SMS (w sekundach)
"creationdate": "1596459273" // data i godzina utworzenia SMS (w sekundach)
}
Statusy smsów:
[
"new", // nowy
"sent", // wysłany
"delivered", // odebrany
"failed", // nie wysłany
]
Lista wysłanych SMS
GET https://api.mmsc.metroport.pl/sms/History
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/sms/History?_page=1&_limit=20¤tPage=1&perPage=20&_order=ASC&_orderby=senddate&sort={"asc":true,"column":"senddate"}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=e29qik65pcmj7nlslli1gq0eih8r454n"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź:
{
"smsaccount_id": "1" // numer konta ,
"status": "delivered", // status: delivered - odebrany przez adresata, new - nie wysłany (zakolejkowany), sent - wysłany
"msisdn": "48123456789" // numer docelowy / nadawca (jeśli type = delivered)
"message": "test", // wiadomość
"deliverydate": "1596459273" // data dostarczenia (odbioru) / wyslania
"type": "sent" // sent - wysłany, delivered - przychodzący
}
Pobranie listy wykupionych usług
GET https://api.mmsc.metroport.pl/sms/Tariff/accounttariffs
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/sms/Tariff/accounttariffs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=e29qik65pcmj7nlslli1gq0eih8r454n"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
odpowiedź:
[
{
"id": "1",
"tariff_name": "Bogaty", // nazwa taryfy
"account_phone_number": "", // wykupiony numer (pusty jeśli losowy)
"tariff_price": "140.00", // cena taryfy
"account_sms_count_receive": "0", // ilosc odebranych SMS
"tariff_receive_sms_rate": "0.00", // cena za odebranie SMS
"sms_count_send": "0", // ilość wysłanych SMS
"sms_count_subscription": "1868", // ilość pozostałych SMS w abonamencie
"subscription_rate": "0.07", // cena za SMS w abonamencie
"tariff_rate": "0.12", //cena za SMS poza abonamentem
"account_friendly_name": "Losowy", //przyjazna nazwa
"login": "LOGIN", // login do usługi
"safety": "10" // bezpieczenik
}
]
Lista dostępnych numerów
GET https://api.mmsc.metroport.pl/sms/Pool?random={random}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.mmsc.metroport.pl/sms/Pool?random=true",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json; charset=utf-8",
"Cookie: sess_ci_dev=e29qik65pcmj7nlslli1gq0eih8r454n"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
- Rekordy pogrubione = rekordy wymagane
Parametr wywołania | Opis |
---|---|
random | true - tylko losowe / false - tylko statyczne |
odpowiedź:
[
{
"48123456789",
"48987654321"
}
]
Przykład wykonania - cURL w PHP
Przykład wykonania - biblioteka cURL w PHP:
$url = "https://api.mmsc.metroport.pl/";
$params_auth = array(
'login'=>'DEMO',
'password'=>'DEMO'
);
$f_login = "admins/Auth/login";
$f_addUser = array('method' => "users/Users",
'calltype' => 'POST',
'params' => array('customertype'=>"2", 'name'=>"Jan", 'lastname'=>"Kowalski", 'city1'=>"Łódź", 'streetname1'=>"Testowa", 'streetno1'=>"12", 'local1'=>"34", 'zip1'=>"11-123", 'zipcity1'=>"Łódź", 'idcardno'=>"ABC123456", 'pesel'=>"12035612345")
);
$f_activateMobile = array('method' => "mvno/Mobiles",
'calltype' => 'POST',
'params' => array('userid'=>NULL, 'ano'=>'123456789', 'sim_iccid'=>'8948061050000009999', 'ext_services_id'=>'1')
);
Etap 1: zalogowanie do systemu
$ch = curl_init();
$request_raw = json_encode($params_auth);
curl_setopt_array($ch, array(
CURLOPT_URL => $url.$f_login,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $request_raw,
CURLOPT_HEADER => true,
CURLOPT_HTTPHEADER => array('Content-Type: application/json; charset=utf-8', 'Content-Length: '.strlen($request_raw)),
));
$response = curl_exec($ch);
if($errno = curl_errno($ch))
{
$error_message = curl_error($ch);
echo "\r\nERROR: ".$errno.": ".$error_message."\r\n\r\n";
die();
}
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code != 200 )
{
echo "Nieprawidłowy login lub hasło\r\n";
die();
}
Logowanie pomyślne - zapisz ciasteczko sesji dla kolejnych poleceń:
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $response, $matches);
$cookie = implode("; ", $matches[1]);
Etap 2: dodanie użytkownika
$request_raw = json_encode($f_addUser['params']);
curl_setopt_array($ch, array(
CURLOPT_URL => $url.$f_addUser['method'],
CURLOPT_CUSTOMREQUEST => $f_addUser['calltype'],
CURLOPT_POST => (($f_addUser['params'] && in_array($f_addUser['calltype'], array("POST", "PUT", "DELETE"))) ? TRUE : FALSE),
CURLOPT_POSTFIELDS => (($f_addUser['params'] && in_array($f_addUser['calltype'], array("POST", "PUT", "DELETE"))) ? $request_raw : NULL),
CURLOPT_HEADER => false,
CURLOPT_COOKIE => $cookie,
CURLOPT_HTTPHEADER => (($f_addUser['params'] && in_array($f_addUser['calltype'], array("POST", "PUT", "DELETE"))) ? array('Content-Type: application/json; charset=utf-8', 'Content-Length: '.strlen($request_raw)) : array('Content-Type: application/json; charset=utf-8'))
));
$response = curl_exec($ch);
if($errno = curl_errno($ch))
{
$error_message = curl_error($ch);
echo "\r\nERROR: ".$errno.": ".$error_message."\r\n\r\n";
die();
}
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code<200 || $http_code>299)
{
echo "\r\nERROR: ".$response."\r\n\r\n";
die();
}
$result = json_decode($response, TRUE);
echo "Aktywacja konta MVNO: id dodanego użytkownika = $result";
Przypisanie id użytkownika jako parametr do aktywacji konta
$f_activateMobile['params']['userid'] = $result;
//Etap 3: aktywacja konta MVNO
$request_raw = json_encode($f_activateMobile['params']);
curl_setopt_array($ch, array(
CURLOPT_URL => $url.$f_activateMobile['method'],
CURLOPT_CUSTOMREQUEST => $f_activateMobile['calltype'],
CURLOPT_POST => (($f_activateMobile['params'] && in_array($f_activateMobile['calltype'], array("POST", "PUT", "DELETE"))) ? TRUE : FALSE),
CURLOPT_POSTFIELDS => (($f_activateMobile['params'] && in_array($f_activateMobile['calltype'], array("POST", "PUT", "DELETE"))) ? $request_raw : NULL),
CURLOPT_HEADER => false,
CURLOPT_COOKIE => $cookie,
CURLOPT_HTTPHEADER => (($f_activateMobile['params'] && in_array($f_activateMobile['calltype'], array("POST", "PUT", "DELETE"))) ? array('Content-Type: application/json; charset=utf-8', 'Content-Length: '.strlen($request_raw)) : array('Content-Type: application/json; charset=utf-8'))
));
$response = curl_exec($ch);
if($errno = curl_errno($ch))
{
$error_message = curl_error($ch);
echo "\r\nERROR: ".$errno.": ".$error_message."\r\n\r\n";
}
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code<200 || $http_code>299)
{
echo "\r\nERROR: ".$response."\r\n\r\n";
die();
}
$result = json_decode($response, TRUE);
echo "Aktywacja konta MVNO: id dodanego konta = {$result[id]} / id operacji do śledzenia statusu = {$result[orderid]}";