Die Schnittstelle (API)
In ResellerProfessional 2.0 (RP) steht Ihnen eine Programmierschnittstelle (API) zur Verfügung, mit deren Hilfe Sie das ResellerProfessional erweitern können. Sie können z.B. eigene Menüpunkte einfügen, die auf Inhalte des ResellerProfessionals zurückgreifen, Ihren Kunden zusätzliche Informationen zur Verfügung zu stellen und Informationen ausgeben, die Ihre Arbeit mit dem ResellerProfessional vereinfachen.
Die Schnittstelle
Die Schnittstelle ermöglicht einen lesenden Zugriff auf die Klassen und Funktionen des ResellerProfessionals über eigene Skripte. Ein schreibender Zugriff ist nicht möglich. Grundsätzlich sollten Sie für die Nutzung der API bereits Erfahrung mit der Programmierung von Schnittstellen bzw. mit PHP besitzen.
In dieser FAQ finden Sie Informationen zum Aufbau der Schnittstelle und Code-Beispiele für PHP, mit denen die Möglichkeiten und die Funktionsweise der API verdeutlicht werden sollen. Eine Liste der verfügbaren Klassen und Funktionen finden Sie ferner im ResellerProfessional unter dem Navigationspunkt "API-Doku". Dort stehen unter dem Reiter "Beispielskripte" außerdem einige Beispielskripte zum Download zur Verfügung.
Bevor Sie starten
Für die Nutzung eigener Skripte und den Zugriff auf das ResellerProfessional über die Schnittstelle benötigen Sie einen Client, den Sie in ResellerProfessional herunterladen können:
- Klicken Sie in ResellerProfessional unter "System" auf den Navigationspunkt "API Doku".
- Wechseln Sie dort auf den Reiter "Beispielskripte".
- Laden Sie mit einem Klick auf "Download des API-Clients (bb.rpc.class.php)" die Datei "bb.rpc.class.php" herunter.
- Bitte legen Sie diese Datei auf Ihrem Webspace ab. Achten Sie dabei darauf, die Datei mit Ihrem FTP- oder SSH-Programm im Binärmodus zu übertragen.
- Die Datei können Sie in einem beliebigen Verzeichnis hochladen. Sie müssen dann lediglich bei der Einbindung der Datei in Ihren Skripten den jeweiligen Verzeichnispfad angeben.
Bitte beachten Sie:
Die Nutzung der Schnittstelle ist nur in Verzeichnissen möglich, in denen Sie keine PHP-Light Version verwenden.
Grundlegende Befehlszeilen
Um eine Verbindung mit der Schnittstelle aufzubauen, müssen Sie einige Codezeilen im jeweiligen Skript verwenden. Dazu zählen der Pfad zu Ihrer RP-Instanz, die Informationen zum Login sowie die Befehlszeile(n), um die benötigten Informationen auszulesen und im Fehlerfall z.B. die Meldungen des ResellerProfessionals als Ausgabe zu erhalten. Nachfolgend finden Sie einige grundlegende Informationen und Erläuterungen zu diesen Codezeilen:
URL Ihrer RP-Instanz
Die folgende Zeile muss vor der Zeile zur Einbindung des API-Clients gesetzt werden. Die URL muss mit einem Schrägstrich abschließen.
define("BBRPC_URL","http://Ihre-Auftragsnummer.premium-admin.eu/");
Datei, in welcher die Cookie-Daten gespeichert werden
Die folgende Zeile muss vor der Zeile zur Einbindung des API-Clients gesetzt werden:
define("BBRPC_COOKIE","bbRpc.cookie");
Einbinden des API-Clients
Sollte der API-Client nicht im selben Verzeichnis wie Ihre Skripte liegen, müssen Sie den Pfad zum API-Client angeben.
require_once("bb.rpc.class.php");
Funktion zum Ausgeben der Nachrichten des RP-Systems
Erfolgs-/Fehler-/Warn-/Info- Meldungen
function printBBRPCMsgs(){
global $_BBRPC_Msgs;
foreach($_BBRPC_Msgs as $hMsg) {
echo("[".$hMsg["typ"]."] ".$hMsg["msg"]."\n");
}
}
Anmelden an Ihrer RP-Instanz
// auth(sUser,sPass)
// sUser string = Benutzername des Admin-Zugangs Ihrer RP-Instanz
// sPass string = Passwort des Admin-Zugangs Ihrer RP-Instanz
bbRpc::auth("Ihr-Admin-Benutzer","Ihr-Admin-Passwort");
Einen Aufruf über die Schnittstelle starten
// call(sName,hArgs)
// sName string [Klassenname]::[Funktionsname]
// hArgs hash Parameter-Hash
$xRet = bbRpc::call("bbDomain::readEntry",array("return_array"=>1));
Den Rückgabewert ausgeben
print_r($xRet);
Meldungen des RP-Systems ausgeben
printBBRPCMsgs();
Abmelden von Ihrer RP-Instanz
bbRpc::logout();
Grundgerüst einer PHP-Datei zur Nutzung der Schnittstelle
Ein PHP-Skript kann im einfachsten Fall wie folgt aufgebaut werden:
<?php
define("BBRPC_URL","http://Ihre-Auftragsnummer.premium-admin.eu/");
define("BBRPC_COOKIE","bbRpc.cookie");
require_once("bb.rpc.class.php");
function printBBRPCMsgs(){
global $_BBRPC_Msgs;
foreach($_BBRPC_Msgs as $hMsg){
echo("[".$hMsg["typ"]."] ".$hMsg["msg"]."\n");
}
}
bbRpc::auth("Ihr-Admin-Benutzer","Ihr-Admin-Passwort");
//An dieser Stelle erfolgt nun die Abfrage der gewünschten Informationen,
//die nachstehende Zeile ist ein Beispiel zum Auslesen der Domaindaten
$xRet = bbRpc::call("bbDomain::readEntry",array("return_array"=>1));
print_r($xRet);
printBBRPCMsgs();
bbRpc::logout();
?>
Anwendungsbeispiele zur Nutzung der Schnittstelle
Im Folgenden finden Sie Beispiele zur Nutzung der Schnittstelle. Eine Liste der verfügbaren Klassen und Funktionen finden Sie im ResellerProfessional unter dem Navigationspunkt "API-Doku". Dort stehen unter dem Reiter "Beispielskripte" außerdem einige Beispielskripte zum Download zur Verfügung.
1. Auslesen von Artikeln
Für das Auslesen einzelner Tarifdaten sind die Funktionen unter der Gruppierung "bbProduct" zuständig. Mit diesem Beispiel werden alle vorhandenen Artikel ausgelesen:
<?php
define("BBRPC_URL","http://Ihre-Auftragsnummer.premium-admin.eu/");
define("BBRPC_COOKIE","bbRpc.cookie");
require_once("bb.rpc.class.php");
function printBBRPCMsgs(){
global $_BBRPC_Msgs;
foreach($_BBRPC_Msgs as $hMsg){
echo("[".$hMsg["typ"]."] ".$hMsg["msg"]."\n");
}
}
bbRpc::auth("Ihr-Admin-Benutzer","Ihr-Admin-Passwort");
// Alle Artikel abfragen
$xRet = bbRpc::call("bbProduct::readEntry",array("return_array"=>1));
// Die Werte ausgeben
print_r($xRet);
printBBRPCMsgs(); bbRpc::logout();
?>
2. Auslesen der Verbraucher eines bestimmten Artikels
Um alle Daten des Reiters "Verbraucher" eines bestimmten Artikels z.B. eines Tarifs auszulesen, nutzen Sie bitte die folgenden Zeilen in Ihrem Skript:
$xRet = bbRpc::call("bbProduct::readLoad",
array(
"peid"=>99, // Die Verbraucher des Artikels mit der ID 99 werden zurückgegeben
"return_array"=>1, // Gibt ein assoziatives Array zurück, auch wenn nur ein
// Eintrag gefunden wird
)
);
// Die Werte ausgeben
print_r($xRet);
3. Inklusivtraffic aus den Verbrauchern eines bestimmten Artikels
Wenn Sie den Inklusivtraffic für einen bestimmten Tarif auslesen möchten, kann zunächst das Auslesen aller Verbraucher wie im vorangegangenen Beispiel erfolgen. Angepasst wird dann lediglich die Ausgabe der Daten, welche die Variable "traffic_incl" nutzt.
// Die Verbraucher eines bestimmten Tarifs auslesen
$xRet = bbRpc::call("bbProduct::readLoad",
array(
"peid"=>99,
"return_array"=>1,
)
);
// Den Inklusivtraffic des erhaltenen Verbrauchers eines bestimmten Tarifs ausgeben.
echo $xRet[0]['traffic_incl'];
4. Kundendaten auslesen
Das folgende Skript gibt die Daten Ihrer Kunden - Kundennummer, Geburtsdatum und E-Mail-Adresse - aus:
<?php
define("BBRPC_URL","http://Ihre-Auftragsnummer.premium-admin.eu/");
define("BBRPC_COOKIE","bbRpc.cookie");
require_once("bb.rpc.class.php");
function printBBRPCMsgs(){
global $_BBRPC_Msgs;
foreach($_BBRPC_Msgs as $hMsg) {
echo("[".$hMsg["typ"]."] ".$hMsg["msg"]."\n");
}
}
bbRpc::auth("Ihr-Admin-Benutzer","Ihr-Admin-Passwort");
// Die Daten der Kunden auslesen
$xRet = bbRpc::call("bbCustomer::readEntry",array("return_array"=>1));
print_r($xRet);
printBBRPCMsgs();
bbRpc::logout();
?>
5. Nicht bezahlte Rechnungen inklusive der jeweiligen Kundendaten auslesen
Für die Ausgabe nicht bezahlter Rechnungen inklusive der Kundendaten wie Vorname, Name, Firma, Adresse, Ruf- und Faxnummer sowie E-Mail-Adresse können Sie das folgende Beispiel nutzen:
$xRet = bbRpc::call("bbOrder::readAccountEntry",
array(
"paid"=>"not", // sucht nach Eintraegen die bei 'Rechnungs-Status' mit
// 'unbezahlt' markiert sind
"return_array"=>1, // gibt immer ein ein assoziatives Array zurueck auch wenn nur ein Element
// gefunden wird
"return_customer"=>1, // wenn das Kunden-Objekt zurueckgegeben werden soll
"return_adress"=>1, // wenn das Rechnungs-Adress-Objekt zurueckgegeben werden soll
"return_customer_overview"=>1, // wenn Anrede und andere Felder automatisch in das
// Kunden-Objekt eingefuegt werden sollen
"return_items"=>1, // wenn die Rechnungs-Item-Objekte zurueckgegeben werden sollen
)
);
print_r($xRet);
