Guten Abend nochmal!
Ich habe ein Script für PayPal geschrieben, dass PayPal bei erfolgreicher Zahlung aufruft!
Also bevor ich die Kaufabwicklung starte ordne ich dem Benutzer eine 10-stellige transid zu, die in die Datenbank geschrieben wird und per Formular mit an PayPal übergeben wird! Bei erfolgreicher Zahlung wird diese meinem Script am ende übergeben. In diesem schaue ich in der Datenbank wer diese hat und schreibe ihm das Geld gut. Danach lösche ich die transid und gebe ihm bei nächten mal eine neue!
Ist das ganze sicher? Oder kann man das auch auslesen?
Hier noch mein Script:
Ich habe ein Script für PayPal geschrieben, dass PayPal bei erfolgreicher Zahlung aufruft!
Also bevor ich die Kaufabwicklung starte ordne ich dem Benutzer eine 10-stellige transid zu, die in die Datenbank geschrieben wird und per Formular mit an PayPal übergeben wird! Bei erfolgreicher Zahlung wird diese meinem Script am ende übergeben. In diesem schaue ich in der Datenbank wer diese hat und schreibe ihm das Geld gut. Danach lösche ich die transid und gebe ihm bei nächten mal eine neue!
Ist das ganze sicher? Oder kann man das auch auslesen?
Hier noch mein Script:
PHP:
<?php
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
// assign posted variables to local variables
$payment_status = $_POST['payment_status'];
$item_name = $_POST['item_name'];
$transid = $_POST['invoice'];
$price = $_POST['mc_gross'];
include('../data/config.php');
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
$info=mysql_query("SELECT * FROM user WHERE transid = '$transid'") OR die(mysql_error());
while ($row = mysql_fetch_object ($info)) {
$premiumuser_to_date="$row->premiumuser_to_date";
$premiumuser_to_time="$row->premiumuser_to_time";
$payed="$row->payed";
}
$result=mysql_query ("SELECT pricepermonth FROM data") OR die(mysql_error());
while ($row=mysql_fetch_array($result)) {
$pricepermonth=$row["pricepermonth"];
}
$time_current = time();
$date_current = date("d.m.Y");
$date = explode(".","$premiumuser_to_date");
$time = explode(":","$premiumuser_to_time");
$premiumuser_to = mktime("$time[0]","$time[1]",0,"$date[1]","$date[0]","$date[2]");
$payed_new = ($payed + $price);
$premium_months = ($price / $pricepermonth);
if ($time_current > $premiumuser_to)
{
$date = explode(".",$date_current);
$premiumuser_to_date_new = date("d.m.Y",mktime(0,0,0,$date[1]+$premium_months,$date[0],$date[2]));
$premiumuser_to_time_new = date("H:i");
}
elseif ($time_current < $premiumuser_to)
{
$date = explode(".",$premiumuser_to_date);
$premiumuser_to_date_new = date("d.m.Y",mktime(0,0,0,$date[1]+$premium_months,$date[0],$date[2]));
$premiumuser_to_time_new = $premiumuser_to_time;
}
mysql_query("UPDATE user SET premiumuser_to_date = '$premiumuser_to_date_new', premiumuser_to_time = '$premiumuser_to_time_new', payed = '$payed_new', transid = NULL WHERE transid = '$transid'") OR die(mysql_error());
}
?>