PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schnittstellen Problem



nihtwisch
20.01.2015, 19:41
Hallo zusammen,

habe folgendes Problem, ich versuche schon seit Stunden dieSchnittstelle zum laufen zu bringen.

Hier den Code wo ich dafür nutze:


<?php
/*
http://www.ads-media.de/artikel.php?hr=6&ur=17&ar=376
http://www.luckycoins.de/user.php?akt=internwaehrung_apiinfos
*/
// Fehlercodes
$trans_error[1000] = "Alles OK";
$trans_error[1100] = "API-Account existiert nicht";
$trans_error[1101] = "API-Passwort ist falsch";
$trans_error[1102] = "API-Account ist gesperrt";
$trans_error[1103] = "Keine API-Anfragen mehr übrig";
$trans_error[1104] = "ProjektID exisitiert nicht";
$trans_error[1105] = "Projekt ist gesperrt";
$trans_error[1106] = "Nicht genug Guthaben";
$trans_error[1107] = "Transaktionscode existiert nicht";
$trans_error[1200] = "Mitglied existiert nicht";
$trans_error[1201] = "Mitglied wurde noch nicht freigeschaltet";
$trans_error[1202] = "Mitglied ist gesperrt";
$trans_error[1203] = "Transferpasswort des Mitglieds ist falsch";
$trans_error[1204] = "Mitglied hat zu wenig Guthaben";
$trans_error[1500] = "Guthaben unzulässig";
$trans_error[1501] = "Betreff unzulässig";
$trans_error[1502] = "Parameter typ nicht zulässig";
$trans_error[1503] = "Parameter from nicht zulässig";
$trans_error[1504] = "Parameter to nicht zulässig";
$trans_error[2000] = "API-AccountID fehlt";
$trans_error[2001] = "API-Accountpasswort fehlt";
$trans_error[2002] = "ProjektID fehlt";
$trans_error[2003] = "UserID fehlt";
$trans_error[2004] = "Transferpasswort des Mitglieds fehlt";
$trans_error[2005] = "Guthaben fehlt";
$trans_error[2006] = "Beschreibung / Verwendungszweck fehlt";
$trans_error[2007] = "Transaktionscode fehlt";
$trans_error[2008] = "Typ fehlt";
$trans_error[2009] = "Zeitangabe ab wann fehlt";
$trans_error[2010] = "Zeitangabe bis wann fehlt";
$trans_error[3000] = "API-Accountupdate fehlgeschlagen";
$trans_error[3001] = "User-Accountupdate fehlgeschlagen";
$trans_error[9999] = "Unbekannter Fehler";
// Klickis senden
function auszahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw ,$betreiber_kennung,$trans_menge,$trans_betreff,$t rans_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='';
$ret=@file("http://www.luckycoins.de/api/sendtouser.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&des=".$trans_betreff."&vol=".$trans_menge."&p_id=".$betreiber_kennung."&u_pw=".$kunden_pw."&subid=".$trans_code."");
for($i=0;$i<count($ret);$i++) {
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,7);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
}
// Klickis einziehen
function einzahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw ,$betreiber_kennung,$trans_menge,$trans_betreff,$t rans_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='';
$ret=@file("http://www.luckycoins.de/api/getfromuser.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&des=".$trans_betreff."&vol=".$trans_menge."&p_id=".$betreiber_kennung."&u_pw=".$kunden_pw."&subid=".$trans_code."");
for($i=0;$i<count($ret);$i++) {
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,7);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
}
// Klickis Guthaben
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='';
$ret=@file("http://www.luckycoins.de/api/usercheck.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&u_pw=".$kunden_pw."");
for($i=0;$i<count($ret);$i++){
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,9);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
if ($error != "true") $user_saldo = $trans_check[4];
return $error;
return $trans_ausgabe;
return $user_saldo;
}
// Mitglieder prüfen
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='';
$ret=@file("http://www.luckycoins.de/api/usercheck.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&u_pw=".$kunden_pw."");
for($i=0;$i<count($ret);$i++){
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,9);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
}
?>



Die Nutzer Verifizierung klappt auch ohne Probleme. Nursobald ich dann ein oder Auszahlen möchte bekomme ich die Meldung „ transaktioncodeFehlt“



Ich wüsste nicht mehr woran es noch liegen kann.


Hat evtl. von euch jemand eine Idee was ich noch verändernkann/muss das es geht?



Ich danke euch


Liebe Grüße

Niht

Kraemer84
20.01.2015, 20:40
Du bekommst ja schon die Fehlermeldung



$trans_error[2007] = "Transaktionscode fehlt";


Jetzt muss nur rausgefunden werden woher er den Transaktionscode hernimmt

Ich selber nutze nur die Klammschnittstelle aber wenn ich das richtig sehe dann dürfte es hier fehlen



function auszahlen (....,$trans_code)


Woher wird der geladen ? Wenn mit Variable übergeben dann nochmal überprüfen ob du die angezeigt bekommst .. einfach mal ein testscript wo mit $_GET die Variable angezeigt wird. Wenn aus Datenbank geladen .. Die Verbindungsdaten überprüfen .. Prüfen ob die Variable im query geladen wird ..

Wenn nicht einfach mal den transcode manuell im Script hinterlegen



$transcode = '1234';

maeggi07
20.01.2015, 23:46
Bist du dir Sicher das "&subid=" richtig ist?

Ansonsten prüf doch einfach mal ob "$trans_code" überhaupt einen Wert enthält.

Füge mal folgenden Code in die Funktion ein:

if (empty($trans_code)) {
die("Transcode ist Leer!");
}else{
die("Transcode enth&auml;lt den Wert: ".$trans_code);
}

Wenn ""$trans_code" einen Wert enthält, liegt der Fehler wohl an "subid".

nihtwisch
21.01.2015, 08:17
Bist du dir Sicher das "&subid=" richtig ist?

Ansonsten prüf doch einfach mal ob "$trans_code" überhaupt einen Wert enthält.

Füge mal folgenden Code in die Funktion ein:

if (empty($trans_code)) {
die("Transcode ist Leer!");
}else{
die("Transcode enth&auml;lt den Wert: ".$trans_code);
}

Wenn ""$trans_code" einen Wert enthält, liegt der Fehler wohl an "subid".

Guten Morgen wenn ich das versuche kann ich den User auch nicht mehr Verifizieren.

nihtwisch
21.01.2015, 08:18
Nein hat leider alles nichts geholfen oder ich habe was falsch gemacht ganz so viel Ahnung habe ich leider nicht vom Code

nihtwisch
21.01.2015, 08:38
Ich habe euch hier mal einen Test AC fertig gemacht das Ihr euch die Schnittstellenbeschreibung anschauen könnt.

Benutzer: nihtwisch
PW: testtest

Seite: www.luckycoins.de
Schnittstelle : http://www.luckycoins.de/user.php?akt=internwaehrung_apiinfos

isaack
21.01.2015, 09:16
so wie es aussieht ist es kein vms system?
da werden dir hier die wenigsten weiter helfen wollen/können. am besten mal den Support anschreiben wo du auch das script gekauft hast. der sollte dir da weiter helfen.

nihtwisch
21.01.2015, 09:35
Ja das ist ein Ads-Media Script :-)

Ich will ja für meine VMS Seite die Schnittstelle haben. Habe die Site nur gepostet wegen Info zur Schnittstelle

maeggi07
21.01.2015, 10:00
Morgen,

ich habe mir das mal kurz angesehen.

Ich gehe davon aus das "$trans_code" leer ist.
Ersetze mal deinen Code mit meinem Code und versuche mal auszuzahlen.

// Klickis senden
function auszahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw ,$betreiber_kennung,$trans_menge,$trans_betreff,$t rans_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='';
$ret=@file("http://www.luckycoins.de/api/sendtouser.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&des=".$trans_betreff."&vol=".$trans_menge."&p_id=".$betreiber_kennung."&u_pw=".$kunden_pw."&subid=".$trans_code."");
for($i=0;$i<count($ret);$i++) {
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,7);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
}

Ersetzen mit:


// Klickis senden
function auszahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw ,$betreiber_kennung,$trans_menge,$trans_betreff,$t rans_code) {
global $error,$trans_ausgabe,$trans_error;

//Transcode
$trans_code = '1Gh5w9934Jfmz';

// 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='';
$ret=@file("http://www.luckycoins.de/api/sendtouser.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&des=".$trans_betreff."&vol=".$trans_menge."&p_id=".$betreiber_kennung."&u_pw=".$kunden_pw."&subid=".$trans_code."");
for($i=0;$i<count($ret);$i++) {
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,7);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
}



Guten Morgen wenn ich das versuche kann ich den User auch nicht mehr Verifizieren.
Es geht auch erstmal nur darum herauszufinden ob "$trans_code" leer ist.

nihtwisch
21.01.2015, 11:34
Huhu,

habe eben mal deine Code versucht

Leider bleibt der Fehler: Transaktionscode fehlt


<?php
/*
http://www.ads-media.de/artikel.php?hr=6&ur=17&ar=376
http://www.luckycoins.de/user.php?akt=internwaehrung_apiinfos
*/
// Fehlercodes
$trans_error[1000] = "Alles OK";
$trans_error[1100] = "API-Account existiert nicht";
$trans_error[1101] = "API-Passwort ist falsch";
$trans_error[1102] = "API-Account ist gesperrt";
$trans_error[1103] = "Keine API-Anfragen mehr übrig";
$trans_error[1104] = "ProjektID exisitiert nicht";
$trans_error[1105] = "Projekt ist gesperrt";
$trans_error[1106] = "Nicht genug Guthaben";
$trans_error[1107] = "Transaktionscode existiert nicht";
$trans_error[1200] = "Mitglied existiert nicht";
$trans_error[1201] = "Mitglied wurde noch nicht freigeschaltet";
$trans_error[1202] = "Mitglied ist gesperrt";
$trans_error[1203] = "Transferpasswort des Mitglieds ist falsch";
$trans_error[1204] = "Mitglied hat zu wenig Guthaben";
$trans_error[1500] = "Guthaben unzulässig";
$trans_error[1501] = "Betreff unzulässig";
$trans_error[1502] = "Parameter typ nicht zulässig";
$trans_error[1503] = "Parameter from nicht zulässig";
$trans_error[1504] = "Parameter to nicht zulässig";
$trans_error[2000] = "API-AccountID fehlt";
$trans_error[2001] = "API-Accountpasswort fehlt";
$trans_error[2002] = "ProjektID fehlt";
$trans_error[2003] = "UserID fehlt";
$trans_error[2004] = "Transferpasswort des Mitglieds fehlt";
$trans_error[2005] = "Guthaben fehlt";
$trans_error[2006] = "Beschreibung / Verwendungszweck fehlt";
$trans_error[2007] = "Transaktionscode fehlt";
$trans_error[2008] = "Typ fehlt";
$trans_error[2009] = "Zeitangabe ab wann fehlt";
$trans_error[2010] = "Zeitangabe bis wann fehlt";
$trans_error[3000] = "API-Accountupdate fehlgeschlagen";
$trans_error[3001] = "User-Accountupdate fehlgeschlagen";
$trans_error[9999] = "Unbekannter Fehler";
// Luckycoins senden
function auszahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw ,$betreiber_kennung,$trans_menge,$trans_betreff,$t rans_code) {
global $error,$trans_ausgabe,$trans_error;
//Transcode
$trans_code = '1Gh5w9934Jfmz';
// 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='';
$ret=@file("http://www.luckycoins.de/api/sendtouser.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&des=".$trans_betreff."&vol=".$trans_menge."&p_id=".$betreiber_kennung."&u_pw=".$kunden_pw."&subid=".$trans_code."");
for($i=0;$i<count($ret);$i++) {
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,7);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
} // Luckycoins einziehen
function einzahlen ($betreiber_id,$betreiber_pw,$kunden_id,$kunden_pw ,$betreiber_kennung,$trans_menge,$trans_betreff,$t rans_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='';
$ret=@file("http://www.luckycoins.de/api/getfromuser.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&des=".$trans_betreff."&vol=".$trans_menge."&p_id=".$betreiber_kennung."&u_pw=".$kunden_pw."&subid=".$trans_code."");
for($i=0;$i<count($ret);$i++) {
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,7);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
}
// Luckycoins Guthaben
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='';
$ret=@file("http://www.luckycoins.de/api/usercheck.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&u_pw=".$kunden_pw."");
for($i=0;$i<count($ret);$i++){
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,9);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
if ($error != "true") $user_saldo = $trans_check[4];
return $error;
return $trans_ausgabe;
return $user_saldo;
}
// Mitglieder prüfen
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='';
$ret=@file("http://www.luckycoins.de/api/usercheck.php?api_id=".$betreiber_id."&api_pw=".$betreiber_pw."&u_id=".$kunden_id."&u_pw=".$kunden_pw."");
for($i=0;$i<count($ret);$i++){
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,9);
if ($trans_check[0] != "1000") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[9999];
$error = "true";
}
return $error;
return $trans_ausgabe;
}
?>

So wie ich das verstehe müsste der Transcode das Schnittstellen PW sein

Kraemer84
21.01.2015, 11:42
Ja hier ist eben aber einfach der Punkt so wie wir alle das machen um den Fehler zu finden.. Da bringt auch selten rumkopieren was ..

1. Fehlermeldung lesen (Transcode fehlt)
2. Fehlerquelle prüfen (if ($trans_code == ' '){ echo'mist leer';})
3. Wenn Fehler positiv .. Weg prüfen (Woher wird der Wert genommen bzw woher sollte er eigentlich kommen. Mit $_GET prüfen/Datenbankquery prüfen, Manuell eintragen etc)
4. Fehlerquelle gefunden und beheben (Wenn Punkt 2 und 3 erfüllt)

Anderster kannst du da nicht ran da es einfach daran liegt das man die Umgebung nicht kennt. Bei vielen Sachen kann man so helfen wenn es sich um selbstentwickelten Code handelt der einfach nur um Syntax und Semikolons korrigiert werden muss .. aber in diesem Fall ist es eben ein Umgebungscheck

Ansonsten wenn du es gar nicht hinbekommen solltest, schick mir eine Pn

lg :)

nihtwisch
21.01.2015, 11:52
Ich schicke dir gleich mal ne Pn :)

nihtwisch
21.01.2015, 16:09
Ok hat sich erledigt Schnittstelle ist fertig gestellt ich danke alles für ihre hilfe