SMS-Gateway in Ihre Anwendung integrieren

Hinweis:

Diese Information ist nur dann wichtig für Sie, wenn Sie unser SMS-Gateway in Ihre Homepage integrieren wollen oder aus einem sonstigen Programm oder einer Anwendung heraus unser SMS-Gateway ansteuern möchten.

Schnittstellen-Beschreibung:

Das SMS-Gateway lässt sich aus Ihrem Programm heraus über das Internet über das http-Protokoll ansteuern. Dazu benötigen Sie einen GET- oder POST-Request auf folgenden URL:

http://sms-gw.topconcepts.de/gw/sms.pl

oder alternativ mit ssl-Verschlüsselung:

https://sms-gw.topconcepts.de/gw/sms.pl

Dabei müssen Sie unbedingt Ihren HTTP-Benutzernamen, den Sie bei der Anmeldung festlegen und Ihr persönliches SMS-Passwort mit in den Headern übertragen (www-authenticate).

Übermitteln Sie je nach Bedarf folgende Parameter:

nummer - enthält die Ziel-Rufnummer im Format +491711234567 bzw. mehrere Ziel-Rufnummern jeweils durch Zeilenumbruch ("newline \\n" bzw. chr(13) oder bei GET-Method %13) getrennt.

text - enthält den plain Text der zu übermittelnden Kurznachricht. Der Text muss von Ihnen in url_encoded'er Form geliefert werden.

absender - Die Absenderkennung kann individuell gesetzt werden. (Dazu müssen Sie zunächst die Zusatzvereinbarung unterzeichnen und an uns zurücksenden!)

test - Aktiviert den Debug-Modus. So können Sie in Ruhe testen, ohne dass jedes Mal eine kostenpflichtige SMS generiert wird.

output - Unterdrückt die Ausgabe von HTML-Befehlen in der Rückmeldung des Gateways. Dadurch wird das Parsen des Übermittlungsstatus aus Ihrer Anwendung heraus vereinfacht.

multisms - Soll die Nachricht als verkettete SMS verschickt werden? Dann senden Sie den Parameter multisms mit dem Wert 2-10, um Nachrichten mit multisms*153 Zeichen zu erhalten. Durch das Verketten von mehreren SMS werden im Hintergrund technisch mehrere Einzel-SMS verschickt, für die Sie dann natürlich auch SMS-Credits bezahlen müssen.


Beispiel-Programme:

Listing in php (erfordert curl, compile --with-curl=/usr !)
<?

  $user = "benutzer";              		# Account User
  $password = "secret";            		# Account Passwort

  $nummer = "+491710000000";		# Ziel-Rufnummer
  $text = "1, 2, 3 --- dies ist ein Test!";	# SMS-Nachricht Text

#### Ab hier nichts mehr ändern ####

  $userpwd = "$user:$password";
  
  $nummer = urlencode($nummer);
  $text = urlencode($text);
  
  $ch = curl_init ();

  curl_setopt ($ch, CURLOPT_USERPWD, $userpwd);
  curl_setopt ($ch, CURLOPT_URL, "http://sms-gw.topconcepts.de/gw/sms.pl");
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_HEADER, 0);
  curl_setopt ($ch, CURLOPT_POST, 1);
  curl_setopt ($ch, CURLOPT_POSTFIELDS, "nummer=$nummer&text=$text");

  $status=curl_exec ($ch);
  
  # Die Variable $status können Sie jetzt auslesen, um den
  # Status des Requests abzufragen
  
  curl_close ($ch);

?>



Listing in Perl: (Die benötigten Perl-Module (siehe use-Anweisungen) finden Sie unter www.cpan.org)
#!/usr/bin/perl

use strict;
use LWP::UserAgent;
use URI::Escape;
use HTTP::Headers;
use HTTP::Request;

my \%vars=(
	user=>		"benutzer",		# Benutzername
	password=>	"secret",			# Passwort
	nummer=>		"+491797000000",		# Ziel-Rufnummer
	text=>		"blah blah",		# Text-Nachricht
	absender=>	"+491797000000",		# Absenderkennung
	test=>		1,			# Debug-Modus aktivieren
	output=>		1,			# Unterdrückt HTML-Antwort
);	
	

#### Ab hier nichts mehr ändern ####

my $c="";
my $ua=new LWP::UserAgent;
my $h=new HTTP::Headers;
$h->content_type('application/x-www-form-urlencoded');
$h->authorization_basic($vars{user},$vars{password});
foreach my $k(qw(nummer text absender test output)) {
	$c.=$k."=".uri_escape($vars{$k})."&";
}
my $req=HTTP::Request->new("POST","http://sms-gw.topconcepts.de/gw/sms.pl",$h,$c);
my $res=$ua->request($req);
my $status=($res->is_success)?$res->content:$res->status_line;

# Den Wert $status können Sie nun auswerten, um
# festzustellen, ob der Versand erfolgreich war.



Listing in Java:
import java.io.*;
import java.net.*;

public class SendSMS {

  private static String userNamePasswordBase64( String username, String password ) {
   String s = username + ":" + password;
   String encs = new sun.misc.BASE64Encoder().encode(s.getBytes());
   return "Basic " + encs;
  }

  public static void main(String[] args) {
   String user = "benutzer";		// Benutzername
   String password = "secret";		// Passwort
   String nummer = "+491797000000";		// Ziel-Rufnummer
   String text = "blah blah";		// Text-Nachricht
   String absender = "+491797000000";	// Absenderkennung
   Byte test = 1;				// Debug-Modus aktivieren
   Byte output = 1;			// Unterdrückt HTML-Antwort
   URLEncoder encoder = new URLEncoder();
 
   try {
    URL url = new URL("http://sms-gw.topconcepts.de/gw/sms.pl?nummer=" +
    encoder.encode(nummer) + "&text=" + encoder.encode(text) + "&absender=" +
    encoder.encode(absender));
    HttpURLConnection conn = (HttpURLConnection )url.openConnection();
    conn.setRequestProperty( "Authorization",
    userNamePasswordBase64(user, password));
    conn.setRequestMethod("GET");
    if (output == 1) {
     if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
      System.out.println(conn.getResponseMessage());
     } else {
      System.out.println(conn.getResponseMessage());
     }
    }
   }
   catch (MalformedURLException ex) {
    if (output == 1 && test == 1) {
     System.out.println(ex.getMessage());
    }
   }
   catch (IOException ioe) {
    if (output == 1 && test == 1) {
     System.out.println(ioe.getMessage());
    }
   }
   catch(Exception e) {
    if (output == 1 && test == 1) {
     System.out.println(e.getMessage());
    }
   }
  }
 }
 



Folgende Status-Meldungen liefert unsere Schnittstelle:
OK - Nachricht übermittelt.
ERROR - Absender fehlt.
ERROR - Text fehlt.
ERROR - Ungültiges Format der Handy-Nummer.
ERROR - Nummer fehlt.
ERROR - SMS-Credits aufgebraucht.
ERROR - Keine Empfänger-Nummer gewählt.
ERROR - User 'IHR_BENUTZERNAME' nicht berechtigt.
ERROR - IP-Sperre aktiv



Abfrage des aktuellen Credit-Guthabens:
Senden Sie einfach einen HTTP GET-Request auf folgenden URL: http://sms-gw.topconcepts.de/gw/credits.pl
Dieses Script liefert Ihnen als plain/text die aktuelle Zahl verfügbarer Credits des gewählten Kontos.
Die Einbindung und Abfragen Ihres Kontostandes kann wie mit den oben aufgeführten perl- bzw. php-Scripten erfolgen.


Bei Fragen wenden Sie sich bitte an unseren Support!

Zurück zur Startseite


Powered by top concepts GmbH