Also die API ist mehr als dürftig...
Es gibt lediglich die function get und send also schon mal schlecht wenn man user checken will.
Ich habe das ganze jetzt so gelöst das beim checken einfach 0 points eingezogen werden somit kann man ja auch sehen ob der user passwort/id zusammen passt und ob der user gesperrt ist etc. etwas umständlich aber naja...
Zumal ist auch nicht angegeben was von der API zurückgegeben wird also gehe ich davon aus das nur der Returncode zurückgegeben wird.
Vielleicht kann man den Betreiber ja bitten das ganze noch ein bisschen zu erweitern.
Nix desto trotz habe ich das beste draus gemacht und du kannst es ja mal durchtesten ob es geht:

PHP-Code:
<?

$trans_error[8888]        = "Alles OK";
$trans_error[8001]        = "Bettertraffic Datenbank Fehler";
$trans_error[8002]        = "Userdaten oder EFdaten nicht korrekt";
$trans_error[8003]        = "Summe nicht gedeckt";
$trans_error[8004]        = "Buchungsfehler, Guthaben konnte nicht gutgeschrieben/abgezogen werden";
$trans_error[8005]        = "Userdaten des Empfängers nicht korrekt";
$trans_error[8006]        = "Fehlende Parameter";
$trans_error[8007]        = "Eigene Accountdaten nicht korrekt";
$trans_error[8008]        = "Keine freien EF-Anfragen mehr verfügbar";
$trans_error[8009]        = "kein Guthaben auf dem EF-Konto/User Konto";
$trans_error[8010]        = "Pointpasswort oder UserID falsch oder nicht vorhanden";
$trans_error[9999]        = "Allgemeiner Fehler";




// Bettertraffic API -> Bettertraffic User
function auszahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code) {
global $error,$trans_ausgabe,$trans_error;

// SecVMS change begin
$trans_betreff = urlencode($trans_betreff);
$kunden_id = urlencode($kunden_id);
$kunden_pw = urlencode($kunden_pw);
$trans_menge = urlencode($trans_menge);
// SecVMS change end

$returned='';
$fp=@fopen("http://www.bettertraffic.de/ef/send.php?fi=".$betreiber_id."&fp=".$betreiber_pw."&ti=".$kunden_id."&tp=".$kunden_pw."&ss=".$trans_menge."&code=".$trans_code."","r");
if($fp){
  while($line=fgets($fp,1000)){
    $returned.=$line;
  }
}
$trans_check = split("[|]",$returned,1);
if ($trans_check[0] != "8888") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
}

// Bettertraffic User -> Bettertraffic API
function einzahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw,$betreiber_kennung,$trans_menge,$trans_betreff,$trans_code){
global $error,$trans_ausgabe,$trans_error;

// SecVMS change begin
$trans_betreff = urlencode($trans_betreff);
$kunden_id = urlencode($kunden_id);
$kunden_pw = urlencode($kunden_pw);
$trans_menge = urlencode($trans_menge);
// SecVMS change end

$returned='';
$fp=fopen("http://www.bettertraffic.de/ef/get.php?wi=".$betreiber_id."&wp=".$betreiber_pw."&ui=".$kunden_id."&up=".$kunden_pw."&gs=".$trans_menge."&code=".$trans_code."","r");
if($fp){
  while($line=fgets($fp,1000)){
    $returned.=$line;
  }
}
$trans_check = split("[|]",$returned,1);
if ($trans_check[0] != "8888") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
}

// Bettertraffic-Kontostand Check
// Auf bettertraffic nicht möglich daher inaktiv

function usercheck ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw){
global $error,$trans_ausgabe,$trans_error,$user_saldo;

// SecVMS change begin
$kunden_id = urlencode($kunden_id);
$kunden_pw = urlencode($kunden_pw);
// SecVMS change end

$returned='';
$fp=fopen("","r");
if($fp){
  while($line=fgets($fp,1000)){
    $returned.=$line;
  }
}
$trans_check = split("[|]",$returned,4);
if ($trans_check[0] != "8888") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
if ($error != "true") $user_saldo = $trans_check[1];
return $error;
return $trans_ausgabe;
return $user_saldo;
}

// User Validate
// Wird gecheckt indem 0 Points vom User eingezogen werden da anders nicht möglich

function uservalidate ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw){
global $error,$trans_ausgabe,$trans_error;

// SecVMS change begin
$kunden_id = urlencode($kunden_id);
$kunden_pw = urlencode($kunden_pw);
// SecVMS change end

$returned='';
$fp=fopen("http://www.bettertraffic.de/ef/get.php?wi=".$betreiber_id."&wp=".$betreiber_pw."&ui=".$kunden_id."&up=".$kunden_pw."&gs=0&code=".$trans_code."","r");
if($fp){
  while($line=fgets($fp,1000)){
    $returned.=$line;
  }
}
$trans_check = split("[|]",$returned,1);
if ($trans_check[0] != "8888") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}

return $error;
return $trans_ausgabe;
}
?>
Das ganze dann als bettertraffic.php speichern und unter lib/schnittstellen
hochladen und entsprechend die daten im ACP eintragen.