PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auszahlungsfehler



Riddik
02.05.2013, 11:04
Hallo Leute,

ich habe auf meiner VMS Seite einen Auszahlungsfehler seit einigen Wochen und bekomme den nicht in den Griff...
das komische daran ist, das es nur wenige User betrifft, diese bekommen die Meldung das sie in den ersten 7 Tagen ihrer Zugehörigkeit keine Auszahlungen tätigen können, sind aber bereits über 1 Jahr bei mir.

Ich kann weder in der Datenbank, noch in den Scripten selbst einen Fehler finden.

Hat noch jemand eine Idee wo ich schauen kann?



<? userstatus();

// Variabeln definieren
if (!isset($_POST['auszahlen'])) $_POST['auszahlen'] = "";
if (!isset($_POST['uid_passwort'])) $_POST['uid_passwort'] = "";
if (!isset($_POST['trans_menge'])) $_POST['trans_menge'] = "";
if (!isset($auszahlmeldung)) $auszahlmeldung = "";

$tag = strtotime("".date("m")."/".date("d")."/".date("Y")." 0 hours 0 minutes 0 seconds");
$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Keine Schnittstellendaten!");

if ($schnittstelle['anfragen_user'] != 0){
$s_verbrauch = mysql_num_rows(db_query("SELECT * FROM ".$db_prefix."_schnittstelle_anfragen WHERE uid='".$_SESSION['uid']."' and zeit='".$tag."'"));
}
$a_free= mysql_fetch_array(db_query("SELECT a_free AS free FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']));

$kontodaten = mysql_fetch_array(db_query("SELECT `kontostand` FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));

if ($_POST['auszahlen'] == 'Auszahlen' && $_POST['uid_passwort'] && $_POST['trans_menge']) {
if( $a_free['free'] == '1' ) {
if (!ereg("[^0-9]", $_POST['trans_menge']) and $_POST['trans_menge'] >= $schnittstelle['auszahlsumme']) {
if ($_POST['trans_menge'] <= $kontodaten['kontostand']) {
if ($schnittstelle['anfragen_user'] == 0 or $s_verbrauch < $schnittstelle['anfragen_user']) {
$buchungs_id = create_code(14);
@require_once ("lib/schnittstellen/".$schnittstelle['schnittstelle'].".php");
@auszahlen ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_SESSION['uid'],$_POST['uid_passwort'],$schnittstelle['betreiber_kennung'],$_POST['trans_menge'],$schnittstelle['auszahltext'],'');
if ($schnittstelle['anfragen_user'] != 0) db_query("INSERT INTO ".$db_prefix."_schnittstelle_anfragen (zeit,uid) VALUES ('".$tag."','".$_SESSION['uid']."')");
if ($error) {
$auszahlmeldung = $trans_ausgabe;
} else {
kontobuchung ('-',$_POST['trans_menge'],$_SESSION['uid'],0);
buchungsliste ($buchungs_id,'-'.$_POST['trans_menge'],$schnittstelle['auszahltext'],$_SESSION['uid']);
$auszahlmeldung = 'Es wurden '.$_POST['trans_menge'].' '.$waehrung.' ausgezahlt';
}
} else {
$auszahlmeldung = 'Deine Schnittstellenanfragen sind verbraucht!!!';
}
} else {
$auszahlmeldung = 'Soviel Guthaben hast Du nicht!!!';
}
} else {
$auszahlmeldung = 'Bitte achte auch die Buchungsmenge!!!';
}
} else {
$auszahlmeldung = 'Sie sind für Auszahlungen noch nicht Freigeben fragen Sie bitte den Admin.';
}
} else {
if ($_POST['auszahlen'] == 'Auszahlen') $auszahlmeldung = 'Eingabefehler, bitte wiederholen!!!';
}

?>
<?head($waehrung." auszahlen");?>
Hier kannst Du deine <?=$waehrung;?> wieder auszahlen, auch bei der Auszahlung wird das ST-Passwort benötigt um
festzustellen ob Du nicht gesperrt bist.<br>
<br>
Hinweis: Wenn Du mal nicht auszahlen kannst weil es heisst das der Betreiber nicht genug <?=$waehrung;?> hat, dann erschrecke
bitte nicht gleich. Zur Sicherheit des Userguthabens haben wir nur ca. 20% des Userguthabens offen liegen und der Rest
ist im Tresor. Schreibe einfache eine Email, wenn wir es mal vergessen haben sollten genug umzubuchen.<br>
<br>
<i><font color="#FF0000">* Das ST-Passwort wird nicht gespeichert, es dient nur zur Indentifizierung!</font></i>
<?foot();?>
<?
// Variabeln
$filename = 'lib/texte/klammkurs.txt';

// Datei auslesen
$fp = fopen ($filename, "r");
$inhalt = fread ($fp, filesize ($filename));
fclose ($fp);
$inhalt = str_replace('\\', '', $inhalt);
?>
<?head("Auszahlen");?>
<form action="" method="post">
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
<td align="left" width="55%">Kontonummer</td><td align="left"><?=$_SESSION['uid'];?></td>
</tr>
<tr>
<td align="left">Aktueller Kontostand</td><td align="left"><?=number_format($kontodaten['kontostand'],2,",",".").' '.$waehrung;?></td>
</tr>
<tr>
<td align="left"></td><td align="left"><?=number_format($kontodaten['kontostand']/50000,2,",",".").' ';?>Euro</td>
</tr>
<tr>
<td align="left"></td><td align="left"><?=number_format($kontodaten['kontostand']*$inhalt,2,",",".").' ';?>Klammlose</td>
</tr>
<tr>
<td align="left"><?=$waehrung;?> (min. <?=$schnittstelle['auszahlsumme'];?> <?=$waehrung;?>)</td><td align="left"><input type="Text" name="trans_menge" value=""></td>
</tr>
<tr>
<td align="left">ST-Passwort *</td><td align="left"><input type="Password" name="uid_passwort" value=""></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="Submit" name="auszahlen" value="Auszahlen"></td>
</tr>
</table>
</form>
Euro-Auszahlungen können ab 150.000 BTP (3,00 Euro) und Klammlose ab 1.000.000 KL per <a href="?content=/pn_center/auszahl_form" target="_self">Formular</a> beantragt werden. Dazu benötigen wir Ihre Bank- oder PayPal-Konto-Daten, bzw. Ihre Klamm-ID.
<?if ($auszahlmeldung) echo '<div align="center"><font color="#800000">'.$auszahlmeldung.'</font></div>';?>
<?foot();


$filename = 'lib/texte/wer_auszahlen.txt';
$fp = fopen ($filename, "r");
$inhalt = fread ($fp, filesize ($filename));
fclose ($fp);
$inhalt = str_replace('\\', '', $inhalt);

if ($inhalt != ''){
echo nl2br($inhalt);
foot();
}
?>

auron2008
02.05.2013, 11:59
poste doch mal bitte die auszahlen.php

NeoGriever
02.05.2013, 12:11
Ich sehe jetzt schon, wo der fehler liegt.

kann es sein, dass die user vor weniger als 7 tagen ihr 1-jähriges jubiläum hatten?

*anmerk*

Riddik
02.05.2013, 12:30
Nein leider auch nicht, auf die Idee bin ich auch schon gekommen ;-)

jpwfour
02.05.2013, 13:48
...diese bekommen die Meldung das sie in den ersten 7 Tagen ihrer Zugehörigkeit keine Auszahlungen tätigen können, ...

Wo soll das denn in deiner auszahlen.php vorkommen? Finde da nix, also entweder ist es die falsche Datei (du benutzt ein Addon zur Auszahlung, Multiauszahlung etc.?) oder die Meldung kommt von Klamm oder die Prüfung ist in der Schnittstellen Datei?
Such einfach mal in allen deinen PHP Dateien nach der Fehlermeldung, und poste dann die Datei, die die Fehlermeldung enthält.

Riddik
03.05.2013, 08:21
Schnittstelle, das ist die Idee :-D


<?
// eBesucher ST Fehlercodes
$trans_error[1001] = "Alles OK";
$trans_error[1011] = "Falsche Punkteart";
$trans_error[1012] = "Falsche Punkteanzahl (z.B. keine ganze Zahl oder negativ)";
$trans_error[1013] = "Betreff zu lang oder nicht angegeben";
$trans_error[1021] = "Falsche Schnittstellen-ID";
$trans_error[1022] = "Falsches Schnittstellen-Passwort";
$trans_error[1023] = "Zu wenig Punkte auf diesem Schnittstellenaccount";
$trans_error[1024] = "Falsche KennungsID";
$trans_error[1025] = "Keine Abfragen mehr auf dem Schnittstellenaccount";
$trans_error[1031] = "Keine oder falsche UserID bzw. Usernamen angegeben";
$trans_error[1032] = "UserID UND Username angegeben, benötigt wird nur eins!";
$trans_error[1033] = "Kein oder falsches User-Passwort angegeben";
$trans_error[1034] = "Dieser User ist gesperrt";
$trans_error[1035] = "Das Guthaben des Users reicht nicht aus";
$trans_error[1036] = "Neuer User (aus Sicherheitsgründen dürfen neue User in den ersten 7 Tagen ihrer Mitgliedschaft die Schnittstelle nicht benutzen)";
$trans_error[1098] = "Schnittstelle z.Z. nicht verfügbar (DB-Arbeiten o.ä.)";
$trans_error[1099] = "Unbekannter Fehler";
$trans_error[9998] = "Fehlerhafter Aufruf (falsche Reihenfolge o.ä.)";
$trans_error[9999] = "Timeout (Schnittstelle nicht erreichbar)";

// ST->User
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=@socketfile("http://st.ebesucher.de/send.php?stid=".$betreiber_id."&stpw=".$betreiber_pw."&uid=".$kunden_id."&upw=".$kunden_pw."&k=".$betreiber_kennung."&a=1&p=".$trans_menge."&b=".$trans_betreff."");
for($i=0;$i<count($ret);$i++) {
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,6);
if ($trans_check[0] != "1001") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
$error = "true";
}
return $error;
return $trans_ausgabe;
}

// User->ST
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=socketfile("http://st.ebesucher.de/get.php?stid=".$betreiber_id."&stpw=".$betreiber_pw."&uid=".$kunden_id."&upw=".$kunden_pw."&k=".$betreiber_kennung."&a=1&p=".$trans_menge."&b=".$trans_betreff."");
for($i=0;$i<count($ret);$i++) {
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,6);
if ($trans_check[0] != "1001") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
$error = "true";
}
return $error;
return $trans_ausgabe;
}

// ebesucher-Kontostand
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=socketfile("http://st.ebesucher.de/info.php?stid=".$betreiber_id."&stpw=".$betreiber_pw."&uid=".$kunden_id."&upw=".$kunden_pw."");
for($i=0;$i<count($ret);$i++){
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,7);
if ($trans_check[0] != "1001") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
$error = "true";
}
if ($error != "true") $user_saldo = $trans_check[1];
return $error;
return $trans_ausgabe;
return $user_saldo;
}

// Usercheck
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=socketfile("http://st.ebesucher.de/info.php?stid=".$betreiber_id."&stpw=".$betreiber_pw."&uid=".$kunden_id."&upw=".$kunden_pw."");
for($i=0;$i<count($ret);$i++){
$returned.=$ret[$i];
}
$trans_check = split("[|]",$returned,7);
if ($trans_check[0] != "1001") {
$trans_ausgabe = $trans_error[$trans_check[0]];
if ($trans_ausgabe == "") $trans_ausgabe = $trans_error[1099];
$error = "true";
}

return $error;
return $trans_ausgabe;
}
?>


Ja, aber an der Ausgabe von eBesucher kann ich ja nun auch nix ändern oder?

Lokutos
03.05.2013, 10:17
eBesucher.de erlaubt usern nur die Schnitstelle zu nutzen wenn diese Min 7 Tage auf eBesucher.de angemeldet sind UND eine Handynummer hinterlegt haben.

Der fehler kommt nicht von dir sondern von eBesucher.de

einfach deinen Usern so vermitteln...