Guten Morgen!
Ich nutze die automatische Zahlungsabwicklung von PayPal, welche auch funktioniert. PayPal ruft nach erfolgreicher Zahlung mein Script auf und übergibt u.a. auch den gezahlten Preis. Aus diesem Gesamtbetrag und dem Einzelpreis für einen Monat berechne ich dann die Gesamtmonate, welche ich den User gutschreibe. Dabei gibt es aber leider massive Probleme. Der Gesamtbetrag wird korrekt übergeben, allerdings errechnet er daraus folgendes (1. ist das gekaufte und 2. das errechnete):
1 Monat > 1 Monat
2 Monate > 2 Monate
3 Monate > 2 Monate
4 Monate > 4 Monate
5 Monate > 4 Monate
6 Monate > 5 Monate
7 Monate > 6 Monate
8 Monate > 8 Monate
9 Monate > 9 Monate
10 Monate > 9 Monate
11 Monate > 11 Monate
12 Monate > 12 Monate
Bitte nicht von "premiumfreefrom" irritieren lassen, denn diese Variable gibt an, ab welchen Monate es einen gratis dazu gibt.
Findet jemand meinen Fehler, warum er solche komischen Sachen errechnet? Ich suche schon seit Tagen, finde aber leider nichts... Wie gesagt der gezahlte Preis wird definitiv korrekt übergeben!
Vielen Dank für eure Hilfe!
Ich nutze die automatische Zahlungsabwicklung von PayPal, welche auch funktioniert. PayPal ruft nach erfolgreicher Zahlung mein Script auf und übergibt u.a. auch den gezahlten Preis. Aus diesem Gesamtbetrag und dem Einzelpreis für einen Monat berechne ich dann die Gesamtmonate, welche ich den User gutschreibe. Dabei gibt es aber leider massive Probleme. Der Gesamtbetrag wird korrekt übergeben, allerdings errechnet er daraus folgendes (1. ist das gekaufte und 2. das errechnete):
1 Monat > 1 Monat
2 Monate > 2 Monate
3 Monate > 2 Monate
4 Monate > 4 Monate
5 Monate > 4 Monate
6 Monate > 5 Monate
7 Monate > 6 Monate
8 Monate > 8 Monate
9 Monate > 9 Monate
10 Monate > 9 Monate
11 Monate > 11 Monate
12 Monate > 12 Monate
PHP:
$quantity = floor ( $price / show ( premiumprice ) );
$db = connect_db ();
$row = mysql_fetch_assoc ( mysql_query ( "SELECT `premium`, `premiumhistory` FROM user WHERE `user` = '$user'", $db ) );
mysql_close ( $db );
if ($row [premium] >= time ()) {
$premium = $row [premium] + ($quantity * 2678400) + (floor ( $quantity / show ( premiumfreefrom ) ) * 2678400);
} else {
$premium = time () + ($quantity * 2678400) + (floor ( $quantity / show ( premiumfreefrom ) ) * 2678400);
}
if ($row [premiumhistory] != "") {
$premiumhistory = date ( 'd.m.Y' ) . "|" . $price . "#" . $row [premiumhistory];
} else {
$premiumhistory = date ( 'd.m.Y' ) . "|" . $price;
}
Bitte nicht von "premiumfreefrom" irritieren lassen, denn diese Variable gibt an, ab welchen Monate es einen gratis dazu gibt.
Findet jemand meinen Fehler, warum er solche komischen Sachen errechnet? Ich suche schon seit Tagen, finde aber leider nichts... Wie gesagt der gezahlte Preis wird definitiv korrekt übergeben!
Vielen Dank für eure Hilfe!