sl33p (28.05.2019)
-
24.05.2019, 17:01 #1
- Registriert seit
- 27.02.2017
- Beiträge
- 39
Thanked 2 Times in 2 Posts[HILFE] GEN-Template PayPal Kaufabwicklung funktioniert nicht
Hallo liebe Community,
Ich habe schon viel Anregung hier im Forum verursacht durch mein heruntergeladenes Template.
Erstmal vielen Dank für die ganzen Antworten und die schnelle Hilfe. Es hat alles funktioniert.
Nun hab ich ein neues Problem, wo ich nicht weiter komme..
Man kann sich im Admin Panel als Administrator einloggen und seine PayPal-Adresse angeben.
Da ich auf meiner Seite Package bzw. Ränge anbiete: "Bronze, Silber und Gold" um die Seite bzw.
den Bereich: "Privat Generator, Generator" zu öffnen wenn man sich nen' Rang gekauft hat.
Soweit gut. Wie ich erfahren hab, muss man ein Business PayPal Account haben, hab ich nun beantragt.
Hat auch super funktioniert. Trotz dem Kauf Button und meine eingebene E-Mail von Paypal.. funktioniert es
immer noch nicht und zeigt mir nen' Fehler bei PayPal an.
Ich habe mal in der purchase.php die Adresse entfernt und meine PayPal Adresse hinzugefügt. Nun funktioniert der
mittlere Kauf Button und führt den Kunden zur PayPal hin. Zum Test haben wir einen Kollegen gefragt, der es für 1 Cent
mal ausprobieren konnte. Die Kaufabwicklung ging, aber erhielt keinen Rang bzw. Package auf der Seite von mir.
Ich habe 3 Verkaufs Button auf der Seite..
Kann mir wer dabei bitte helfen? Mir bisschen auf die sprünge zu helfen. Woran der Fehler liegt und ich eventuell die
Zeile bearbeiten oder löschen kann. Damit die Kaufabwicklung funktioniert. Oder liegt es an meiner Einstellung auf PayPal,
Php oder in der Datenbank?
Hier der originale Source von der purchase.php
PHP-Code:<?php
include 'inc/header.php';
$result = mysqli_query($con, "SELECT * FROM `subscriptions` WHERE `username` = '$username' AND `active` = '1' AND `expires` >= '$date'") or die(mysqli_error($con));
if (mysqli_num_rows($result) < 1 && $_SESSION['rank'] != "5") {
$subscription = "0";
}else{
$subscription = "1";
}
if(isset($_POST['purchase'])){
$id = mysqli_real_escape_string($con, $_POST['purchase']);
$result = mysqli_query($con, "SELECT * FROM `packages` WHERE `id` = '$id'") or die(mysqli_error($con));
while ($row = mysqli_fetch_array($result)) {
$packageprice = $row['price'];
$packagename = $website." - ".$row['name'];
$custom = $row['id']."|".$username;
}
$paypalurl = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amount=".urlencode($packageprice)."&business=".urlencode($paypal)."&page_style=primary&item_name=".urlencode($packagename)."&return=https://".$_SERVER['SERVER_NAME'].dirname($_SERVER['REQUEST_URI'])."/purchase.php?action=buy-success&rm=2¬ify_url=http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['REQUEST_URI'])."/lib/ipn.php"."&cancel_return=https://".$_SERVER['SERVER_NAME'].dirname($_SERVER['REQUEST_URI'])."/purchase.php?action=buy-error&custom=".urlencode($custom)."&mc_currency=USD";
header('Location: '.$paypalurl);
}
$totalalts = 0;
$result = mysqli_query($con, "SELECT * FROM `generators`") or die(mysqli_error($con));
while($row = mysqli_fetch_assoc($result)) {
$result2 = mysqli_query($con, "SELECT * FROM `generator$row[id]` WHERE `status` != '0'") or die(mysqli_error($con));
$totalalts = $totalalts + mysqli_num_rows($result2);
}
$result = mysqli_query($con, "SELECT * FROM `freegenerators`") or die(mysqli_error($con));
while($row = mysqli_fetch_assoc($result)) {
$result2 = mysqli_query($con, "SELECT * FROM `freegenerator$row[id]` WHERE `status` != '0'") or die(mysqli_error($con));
$totalfree = $totalfree + mysqli_num_rows($result2);
}
$totalfreenpaid = $totalalts + $totalfree + $privtotalalts;
$result = mysqli_query($con, "SELECT * FROM `users`") or die(mysqli_error($con));
$totalusers = mysqli_num_rows($result);
if (isset($_GET['delete'])){
$id = mysqli_real_escape_string($con, $_GET['delete']);
mysqli_query($con, "DELETE FROM `news` WHERE `id` = '$id'") or die(mysqli_error($con));
echo '
<script>
window.history.replaceState("object or string", "Title", "index.php");
</script>
';
}
$result = mysqli_query($con, "SELECT * FROM `news`") or die(mysqli_error($con));
$totalnews = mysqli_num_rows($result);
$result = mysqli_query($con, "SELECT * FROM `news` WHERE DATE(date) = '$date'") or die(mysqli_error($con));
$todaysnews = mysqli_num_rows($result);
$generatestotal = 0;
$result = mysqli_query($con, "SELECT * FROM `statistics` WHERE `username` = '$username'") or die(mysqli_error($con));
while($row = mysqli_fetch_assoc($result)) {
$generatestotal = $generatestotal + $row['generated'];
}
$result = mysqli_query($con, "SELECT * FROM `users` WHERE `date` = '$date'") or die(mysqli_error($con));
$todaysusers = mysqli_num_rows($result);
$result = mysqli_query($con, "SELECT * FROM `subscriptions` WHERE `active` = '1' AND `expires` >= '$date'") or die(mysqli_error($con));
$activesubscriptions = mysqli_num_rows($result);
$privtotalalts = 0;
$result = mysqli_query($con, "SELECT * FROM `privgenerators`") or die(mysqli_error($con));
while($row = mysqli_fetch_assoc($result)) {
$result2 = mysqli_query($con, "SELECT * FROM `privgenerator$row[id]` WHERE `status` != '0'") or die(mysqli_error($con));
$privtotalalts = $privtotalalts + mysqli_num_rows($result2);
}
$privgeneratestotal = 0;
$result = mysqli_query($con, "SELECT * FROM `privstatistics` WHERE `username` = '$username'") or die(mysqli_error($con));
while($row = mysqli_fetch_assoc($result)) {
$privgeneratestotal = $privgeneratestotal + $row['generated'];
}
$pageTitle = 'Purchase'; // Call this in your pages' files to define the page title
date_default_timezone_set('UTC');
function humanTiming ($time)
{
$time = strtotime("$time + 4 hours");
$time = time() - $time; // to get the time since that moments
$time = ($time<1)? 1 : $time;
$tokens = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time / $unit);
return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}
}
?>
<?php include("noob/header.php"); ?>
<div class="row">
<div class="col-md-12 grid-margin">
<div class="card ">
<div class="card-header">
<div class="card-title">Wählen Sie ein Paket aus</div>
</div>
<div class="card-body p-4">
<?php
if($_GET['action'] == "buy-success"){
$result = mysqli_query($con, "SELECT * FROM `subscriptions` WHERE `username` = '$username' AND `date` = '$date'") or die(mysqli_error($con));
if (mysqli_num_rows($result) < 1) {
echo '
<div class="alert bg-primary" role="alert">
Warten auf den Abschluss des Kaufs. Wenn dies nicht der Fall ist, senden Sie uns eine Nachricht mit Ihrer Paypal-E-Mail und dem gekauften Paket oder einer Nachricht <a href="https://www.facebook.com/Hypergenshop/" target="_blank">HyperGen</a>
</div>
<script type="text/javascript">
window.setTimeout(function(){window.location.href="purchase.php?action=buy-success"},20000);
</script>
';
}else{
echo '
<div class="alert bg-success" role="alert">
Danke für ihren Einkauf! Sie haben Ihr Abonnement erfolgreich erhalten.
Besuchen Sie die <a href="generator.php">Generator Seite</a> um zu generieren.
</div>
';
}
}
?>
<div class="table-sorter-wrapper col-lg-12 ">
<table id="sortable-table-2" class="table table-striped">
<tbody>
<tr>
<th>
<div class="th-inner ">Paket</div>
<div class="fht-cell"></div>
</th>
<th>
<div class="th-inner ">Preis</div>
<div class="fht-cell"></div>
</th>
<th>
<div class="th-inner ">Generator(s)</div>
<div class="fht-cell"></div>
</th>
<th>
<div class="th-inner ">Laufzeit</div>
<div class="fht-cell"></div>
</th>
<th>
<div class="th-inner ">Accounts</div>
<div class="fht-cell"></div>
</th>
<th>
<div class="th-inner ">Generator History</div>
<div class="fht-cell"></div>
</th>
<th>
<div class="th-inner ">Bezahlung</div>
<div class="fht-cell"></div>
</th>
</tr>
</tbody>
<tbody>
<?php
$result = mysqli_query($con, "SELECT * FROM `packages` ORDER BY CAST(price AS DECIMAL(10,2))");
while ($row = mysqli_fetch_assoc($result)) {
if($row['generator'] == ""){
$generatorname = "All";
}else{
$generatorquery = mysqli_query($con, "SELECT * FROM `generators` WHERE `id` = '$row[generator]'") or die(mysqli_error($con));
while($row1 = mysqli_fetch_array($generatorquery)){
$generatorname = $row1['name'];
}
}
if($row['accounts'] == "0" || $row['accounts'] == ""){
$accounts = "Unlimited";
}else{
$accounts = $row['accounts']."/Tag";
}
$name = $row['name'];
$price = $row['price'];
$length = $row['length'];
$gen_history = $row['gen_history'];
echo "
<tr>
<td>$name</td>
<td>$price<span style='color: #009900;'>€</span></td>
<td>$generatorname</td>
<td>$length</td>
<td>$accounts</td>
<td>$gen_history</td>
<td>
".'<form method="POST" action="purchase.php">
<input type="hidden" name="purchase" value="'.$row['id'].'"/>
<button type="submit" class="btn btn-info waves-effect waves-light m-t-20"
';
if ($subscription != "0" || $_SESSION['rank'] == "5"){
echo "disabled";
}
echo '
>Kaufen!</button>
</form>'."
</td>
</tr>
";
}
?>
</tbody></table>
</div> </div>
</div> </div>
<div class="col-lg-12">
<div class="card card-outline-info">
<div class="card-header">
<h4 class="m-b-0 text-white">Ihr Abonnement</span></h4>
</div>
<div class="card-block">
<div class="form-body">
<p>
<table class="table table-hover">
<thead>
<tr>
<th>Paket ID</th>
<th>Gekauft mit</th>
<th>Preis</th>
<th>Läuft ab</th>
<th>Status</th>
<th>Bestellt</th>
</tr>
</thead>
<tbody>
<?php
$result = mysqli_query($con, "SELECT * FROM `subscriptions` WHERE `username` = '$username' ORDER BY `id` DESC ");
while ($row = mysqli_fetch_assoc($result)) {
echo '
<tr>
<td><b>'.$row['package'].'</b></td>
<td>'. $row['payment'] .'</td>
<td>'. $row['price'] .'</td>
<td>'. $row['expires'] .'</td>';
if($row['active'] == "1"){echo '<td><span class="badge badge-success">Active</span></td>';}elseif($row['active'] == "0"){echo '<td><span class="badge badge-red">Ended</span></td>';}else{echo '<td></td>';}
echo '
<td><b> '. humanTiming($row['time']) .' ago</b></td>
</tr>
';
}
?>
</tbody>
</table>
</p>
</div>
</div>
</div>
</div>
</div> </div></div> </div>
<?php include("noob/footer.php"); ?>
PayPal Adresse ersetzt. Und dann passierte das halt mit den mittleren Button, bezahlung ging aber er erhielt
keinen Rang bzw. Package. Aber der untere Button und oberer ging nicht. Und bei den Originalen Source kam das
Code:PayPal - Leider ist ein Systemfehler aufgetreten. Versuchen Sie es später noch einmal.
https://ibb.co/jzHNGqK
https://ibb.co/JcssFST
https://ibb.co/s9k2ccN
Wenn es notwendig ist, kann ich den ganzen Source auch vom Template hochladen.. nur bescheid geben.
Ansonsten wer sich das ganze mal ansehen möchte, kann ich auch die Webseite geben, dann Privat. Weil
ich keine Werbung machen möchte.
Ich bedanke mich schon mal im vorraus. Als hilfe wenn alles klappt, gibt es auch eine Belohnung.
-
25.05.2019, 01:02 #2
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: [HILFE] GEN-Template PayPal Kaufabwicklung funktioniert nicht
Ich würde dir empfehlen keinerlei Zahlungsmethoden zu verwenden, wenn du noch Anfänger bist!
Schon alleine nutzt du die IPN Uraltschnittstelle, die höchst Anfällig ist zu cracken.
Das erkennst du daran, dass du Zahlungsdaten inklusiver deiner anzusteueren URL nutzt und dem Nutzer weitergibst.
Du solltest dich dafür entscheiden, die PDT-Variante zu nutzen! Denn hier erstellst du >>SERVERSEITIG<< alles, bekommst von PayPal einen Token und wickelst ausschließlich über diesen Token alles ab.
Da du IPN verwendest und das ganze schön via URL weitergibst, kann der Nutzer einfach ein HTML-Form erstellen und gefakte Daten an deiner IPN-Schnittstelle (deiner ipn.php) senden und erhält dadurch Zugriff auf irgendwelchen Premium-Diensten, die du anbieten willst.
Im übrigen liegt dein Fehler in der URL, die du erstellst. Du solltest >>Deine<< URL's encoden, sonst werden diese zu einem Teil von der PayPal URL. Außerdem empfehle ich dir, eine simple Methode zu verwenden um die Parameter besser zu strukturieren. Denn dafür gibt es extra http_build_query, dann sparst du dir auch das urlencode:
PHP-Code:<?php
$paypalurl = sprintf('https://www.paypal.com/cgi-bin/webscr?%s', http_build_query([
'cmd' => '_xclick',
'amount' => $packageprice,
'business' => $paypal,
'page_style' => 'primary',
'item_name' => $packagename,
'rm' => 2,
'custom' => $custom,
'mc_currency' => 'USD',
'return' => sprintf('https://%s%s/purchase.php?%s', $_SERVER['SERVER_NAME'], dirname($_SERVER['REQUEST_URI']), http_build_query([
'action' => 'buy-success'
])),
'notify_url' => sprintf('https://%s%s/lib/ipn.php', $_SERVER['SERVER_NAME'], dirname($_SERVER['REQUEST_URI'])),
'cancel_return' => sprintf('https://%s%s/purchase.php?%s', $_SERVER['SERVER_NAME'], dirname($_SERVER['REQUEST_URI']), http_build_query([
'action' => 'buy-error'
]))
]));
?>Geändert von Bubble Gum (25.05.2019 um 01:13 Uhr)
-
The Following User Says Thank You to Bubble Gum For This Useful Post:
-
28.05.2019, 21:23 #3
- Registriert seit
- 27.02.2017
- Beiträge
- 39
Thanked 2 Times in 2 PostsAW: [HILFE] GEN-Template PayPal Kaufabwicklung funktioniert nicht
Vielen dank, Bubble Gum. Das habe ich auch gerade gemerkt. Das ganze wurde nun behoben und funktioniert nun einwandfrei.
Ähnliche Themen
-
Gen-Template: session_start(): Cannot start session when headers already sent
Von sl33p im Forum PHPAntworten: 8Letzter Beitrag: 19.05.2019, 23:35 -
HILFE! HDMI Output funktioniert nicht.
Von h00r4y im Forum HardwareAntworten: 1Letzter Beitrag: 26.02.2015, 13:59 -
Paypal-Zahlung per Lastschrift funktioniert nicht
Von Silent im Forum Finanzen & ZahlungsmittelAntworten: 2Letzter Beitrag: 26.12.2014, 10:49 -
[S] Ebay Template (.png) [B] PayPal / PSC
Von Blizzard im Forum Angebot & NachfrageAntworten: 1Letzter Beitrag: 16.02.2013, 18:47 -
Prozessor, hilfe funktioniert das?
Von Grammatikfehler im Forum HardwareAntworten: 5Letzter Beitrag: 14.01.2013, 23:19
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.