SMS STAR

Invia SMS Online a soli 6 c€ per SMS!! Il servizio SMS più conveniente in Italia!

DOCUMENTAZIONE API SMS STAR

Di seguito vediamo un esempio di script in JAVA che esegue le seguenti funzioni:

INVIO SMS
RICEVERE STATO DEL SMS INVIATO
RICEVERE COSTO DEL SMS INVIATO
RICEVERE IL SALDO DEI CREDITI A DISPOSIZIONE

Prima di visualizzare l'esempio di script riportato qui di seguito leggi le impostazioni da effettuare nel tuo pannello di controllo. Trovi tali indicazioni nella pagina: http://www.smsstar.it/api.htm

ESEMPIO SCRIPT IN JAVA


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package sms.api.v2;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
 
public class Test {
   public static void main(String[] args) {
      String URL = "http://www.smsstar.it/account/xml.php";
      String login="YOUR_LOGIN";
      String password="YOUR_PASSWORD";
       
      RequestBuilder Request= new RequestBuilder(URL);
      API ApiSms=new API(Request, login, password);
       
       
      //RICEVI STATO INVIO *************************************************************
      System.out.print(ApiSms.getStatus("1299"));
      /*
       * response: <?xml version="1.0" encoding="UTF-8"?>
            <deliveryreport><message id="1299" sentdate="0000-00-00 00:00:00" donedate="0000-00-00 00:00:00" status="0" /></deliveryreport>
      */
       
      //RICEVI PREZZO SMS *************************************************************
      Map<String, String>  phones = new HashMap();
      phones.put("id1", "+38063169****");
      phones.put("id2", "+38093101****");
      System.out.print(ApiSms.getPrice("Test sms",phones));
      /*
       * response: <?xml version="1.0" encoding="UTF-8"?><RESPONSE><status>0</status><credits>0.682</credits></RESPONSE>
      */
       
       
      //RICEVI SALDO CREDITI *************************************************************
      System.out.print(ApiSms.getBalance());
      /*
       * response: <?xml version="1.0" encoding="UTF-8"?><RESPONSE><status>0</status><credits>780.64</credits></RESPONSE>
      */
   
      //INVIA SMS *************************************************************
      ArrayList<Phones> phoneSend=new ArrayList<Phones>();
      phoneSend.add(new Phones("id1","","+38063169****"));
      phoneSend.add(new Phones("id2","","+38093101****"));
  
      System.out.print(ApiSms.sendSms("test", "test sms", phoneSend));
      /*
       * response: <?xml version="1.0" encoding="UTF-8"?><RESPONSE><status>2</status><credits>0.682</credits></RESPONSE>
      */
   }   
}

Class API.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package sms.api.v2;
 
import java.util.ArrayList;
import java.util.Map;
 
public class API {
         
    private sms.api.v2.RequestBuilder reqBuilder;
    private String login;
    private String password;
 
    public API(sms.api.v2.RequestBuilder reqBuilder,String login, String password) {
        this.reqBuilder = reqBuilder;
        this.login=login;
        this.password=password;
    }
     
     
    public String getStatus(String msgId){
        String request="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
        request=request.concat("<SMS><operations><operation>GETSTATUS</operation></operations>");
        request=request.concat("<authentification>");
        request=request.concat("<username>"+this.login+"</username>");
        request=request.concat("<password>"+this.password+"</password>");
        request=request.concat("</authentification>");
        request=request.concat("<statistics>");
        request=request.concat("<messageid>"+msgId+"</messageid>");
        request=request.concat("</statistics>");
        request=request.concat("</SMS>");
        return this.reqBuilder.doXMLQuery(request);
    }
     
    public String getPrice(String text, Map<String, String>  phones){
        String request="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
        request=request.concat("<SMS>");
        request=request.concat("<operations>  ");
        request=request.concat("<operation>GETPRICE</operation>");
        request=request.concat("</operations> ");
        request=request.concat("<authentification>");
        request=request.concat("<username>"+this.login+"</username>");
        request=request.concat("<password>"+this.password+"</password>");
        request=request.concat("</authentification>");
        request=request.concat("<message>");
        request=request.concat("<sender>SMS</sender>");
        request=request.concat("<text>"+text+"</text>");
        request=request.concat("</message>");
        request=request.concat("<numbers>");
        for (Map.Entry entry : phones.entrySet()) {
            request=request.concat("<number messageID=\""+entry.getKey()+"\">"+entry.getValue()+"</number>");
        }
        request=request.concat("</numbers>");
        request=request.concat("</SMS>");
        return this.reqBuilder.doXMLQuery(request);
    }
     
    public String getBalance(){
        String request="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
        request=request.concat("<SMS>");
        request=request.concat("<operations>");
        request=request.concat("<operation>BALANCE</operation>");
        request=request.concat("</operations>");
        request=request.concat("<authentification>");
        request=request.concat("<username>"+this.login+"</username>");
        request=request.concat("<password>"+this.password+"</password>");
        request=request.concat("</authentification> ");
        request=request.concat("</SMS>");
        return this.reqBuilder.doXMLQuery(request);
    }
     
     public String sendSms(String sender, String text, ArrayList<Phones> phones){
        String request="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
        request=request.concat("<SMS>");    
        request=request.concat("<operations>");
        request=request.concat("<operation>SEND</operation>");
        request=request.concat("</operations>");
        request=request.concat("<authentification>");
        request=request.concat("<username>"+this.login+"</username>");
        request=request.concat("<password>"+this.password+"</password>");
        request=request.concat("</authentification>");
        request=request.concat("<message>");
        request=request.concat("<sender>"+sender+"</sender>");
        request=request.concat("<text>"+text+"</text>");
        request=request.concat("</message>");
        request=request.concat("<numbers>");
        for (Phones phone : phones) {
           request=request.concat("<number");
           if(phone.getIdMessage().length()>0) request=request.concat(" messageID=\""+phone.getIdMessage()+"\"");
           if(phone.getVariable().length()>0) request=request.concat(" variables=\""+phone.getVariable()+"\"");
           request=request.concat(">");
           request=request.concat(phone.getPhone());
           request=request.concat("</number>");
        }
        
        request=request.concat("</numbers>");
        request=request.concat("</SMS>");
        return this.reqBuilder.doXMLQuery(request);
     }
}

Class Connector.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package sms.api.v2;
 
import java.io.IOException;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
 
public class Connector {
 
    private static HttpURLConnection httpConn;
 
    private String URL;
 
    public Connector(String URL) {
        this.URL = URL;
    }
 
    /**
     * Makes an HTTP request using POST method to the specified URL.
     * @param params A map containing POST data in form of key-value pairs
     * @return An HttpURLConnection object
     * @throws IOException thrown if any I/O error occurred
     */
    public static HttpURLConnection sendPostRequest(String requestURL, Map<String, String> params) throws IOException {
        URL url = new URL(requestURL);
        httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setUseCaches(false);
        httpConn.setDoInput(true); // true indicates the server returns response
 
        StringBuffer requestParams = new StringBuffer();
 
        if (params != null && params.size() > 0) {
            httpConn.setDoOutput(true); // true indicates POST request
            Iterator<String> paramIterator = params.keySet().iterator();
            boolean isFirst=true;
            while (paramIterator.hasNext()) {
                String key = paramIterator.next();
                String value = params.get(key);
                if(!isFirst){  requestParams.append("&");}
                requestParams.append(key);
                requestParams.append("=").append(URLEncoder.encode(value,"UTF-8"));
                isFirst=false;
            }      
            // sends POST data