[Java][Multiinfo] Łączenie się z multiinfo w Javie 8: od certyfikatu do pierwszego sms`a

W dzisiejszym poście przedstawię przewodnik po integracji naszej aplikacji z platformą umożliwiająca wysyłanie wiadomości poprzez SOAP i HTTP, jaką jest Multiinfo.



Zacząć musimy od dostępu do konta administratora, tam musimy utworzyć nowego użytkownika dla API, dać mu odpowiednie uprawnienia w sekcji Ogólne/API/ Podstawowe - zakładka Zarządzanie dostępem oraz wysłać żądanie utworzenia certyfikatu w zakładce Certyfikaty.

Na certyfikat przyjdzie nam trochę poczekać, u mnie było to kilka dni. Po otrzymaniu mailem certyfikatu wrzucamy go do requesta i aktywujemy go, i generujemy certyfikat dla użytkownika API w formacie .p12

Dokładniejszą instrukcję możecie znaleźć w dokumentacji: link.

Posiadając już taki certyfikat na komputerze gdzie będziemy uruchamiać naszą usługę możemy nawiązać połączenie z serwerem multinfo i mając odpowiednie uprawnienia wykonywać usługi,

W przypadku Javy 8 przykładowy kod może wyglądać tak:

        System.setProperty("https.protocols", "TLSv1,SSLv3,SSLv2Hello");
        System.setProperty("javax.net.ssl.keyStore",
                "C:\\myCert.p12");
        System.setProperty("javax.net.ssl.keyStorePassword", "password");
        System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");

        
        /** Budowa zapytania URL wysyłającego SMS */
        URL mi_url = new URL("https://api1.multiinfo.plus.pl/sendsms.aspx?" +
                // ID usługi zgodnie z ustawionym w MultiInfo - UZUPEŁNIĆ
                "serviceId=serviceId" +
                // Login użytkownika - UZUPEŁNIĆ
                "&login=user" +
                // Hasło użytkownika - UZUPEŁNIĆ
                "&password=password" +
                // Numer MSISDN adresata wiadomości SMS - UZUPEŁNIĆ
                "&dest=48000000000" +
                // Treść wiadomości SMS
                "&text=To+jest+testowy+SMS+z+API+https+w+jezyku+Java");
        /** Wywołanie URL wysyłającego SMS */
        BufferedReader in = new BufferedReader(new InputStreamReader(mi_url.openStream()));

        /** Prezentacja wyniku wywołania URL */
        String inputLine;
        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);

        in.close();

Odnośnie ID usługi, jest ona podana w bocznym menu klikając Usługi wyświetli nam się lista aktywnych usług oraz ich ID nas interesuje id usługi API. Kopiujemy i wklejamy w miejsce serviceID.

Dokumentacja HTTP: link

Dokumentacja SOAP: link