Liste der Anhänge anzeigen (Anzahl: 1)
Isotope Paypal Problem: Payment could not be processed
Moin moin zusammen,
ich teste gerade ein wenig mit dem Shop-Modul Isotope herum (2.4.0-beta1).
Ziel der Übung soll lediglich sein, dass der Benutzer eine interne Währung (Coins) gegen reales Geld erwerben kann. Die Zahlungsabwicklung soll hier per Paypal und Kreditkarte möglich sein, dafür wollte ich die Unterstützung der besagten Erweiterung nutzen.
Ich habe auch alles soweit nach Anleitung eingerichtet (Warenkorb, AGB-Seite, Kasse, Bestellung abgeschlossen, Seite, Kaufen-Seite (Produktübersicht). Jeweils als Seite in der Seitenstruktur angelegt und mit dem dazugehörigen Isotope Modul und Verlinkungen untereinander ausgestattet.
Ein Paypal-Sandbox-Konto wurde ebenfalls eingerichtet und in den Contao/Isotope Einstellungen hinterlegt.
Alles funktioniert auch bis zum Abschluss des Bestellprozesses. Der Betrag wird von Paypal-Demokonto A abgebucht und Paypal-Demokonto B gutgeschrieben, wenn ich jedoch dann wieder zurück zur Contao-Bestätigungsseite geleitet werde, erscheint etwa 30 Sekunden lang die Meldung „Ihre Zahlung wird durchgeführt. Bitte haben Sie Geduld...“, bis anschließend die Fehlermeldung erscheint „Der Bezahlvorgang ist fehlgeschlagen. Bitte versuchen Sie es erneut oder wählen Sie eine andere Bezahlmethode.“.
In der BE-Übersicht „Bestellungen“ und auf den Statistikseiten ist nichts zu sehen, alles steht auf „0“, als hätte es keine Bestellungen gegeben.
Im Contao Fehlerlog ist die im Screenshot abgebildete Fehlermeldung zu sehen („Payment could not be processed. - Isotope\Model\Payment\Postsale::processPayment“) .
Anzumerken ist noch, dass ich das ganze lokal in einer XAMPP / Apache Testumgebung laufen lasse.
Hat jemand eine Idee, warum das Ganze nicht wie gewünscht funktioniert? Möglicherwiese ein Konfigurationsfehler?
Wäre über Tipps und Ratschläge wie immer sehr dankbar!
Viele Grüße
*igi*
Aktuellste Version Isotope 2.4.0
Das ist ja mit der Sandbox so ein wenig never ending Story. Sollte das jetzt funktionieren oder nicht? Gibt es überhaupt jemanden, bei dem das Testsystem in Verbindung mit der Sandbox und dem Standard Modul funktoniert? Weil wenn das garnicht funktioniert und es keine Chance gibt, das zu lösen, könnte man die Zeit anders investieren. :eek:
Übergangslösung bei Problemen mit Paypal
Guten Morgen liebe Community,
meine Kundin hatte bis gestern auch das Problem.
Da die Bestellungen ja noch nicht abgeschlossen waren, wurden diese ja leider nicht in der Bestellübersicht angezeigt, was ziemlich ärgerlich war.
Ich hatte deshalb mir folgende Scripts geschrieben, um meiner Kundin das Leben zumindest ein wenig leichter zu machen, ich hoffe dass es dem einen oder anderen auch erstmal weiterhilft:
db.php - für das Datenbank-Setup und zum Setzen einer Bestellnummer
PHP-Code:
<?php
$servername = 'localhost';
$username = 'username';
$password = 'password';
$dbname = 'database';
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$oldordernum = $_GET['oldordernum'];
$newordernum = $_GET['newordernum'];
$sql = "UPDATE tl_iso_product_collection SET document_number = '$newordernum' WHERE id = '$oldordernum'";
if ($conn->query($sql) === TRUE) {
header("Location: index.php?action=savetrue");
} else {
header("Location: index.php?action=savefalse&error='.$conn->error.'");
}
$conn->close();
?>
failedorderscheck.php - prüft, ob Bestellungen ohne Bestellstatus vorhanden sind und setzt diese auf Nachbearbeitung, Bestellnummer wird mit der ID des Datensatzes gefüllt, wurde bei mir 1x täglich mit Cron ausgeführt
PHP-Code:
<?php
include 'db.php';
$auslesen = $conn->query("SELECT * FROM tl_iso_product_collection WHERE type='order' AND document_number=''");
$order_status = '' ///Hier die ID vom Status Nachbearbeitung eintragen///
while($row=mysqli_fetch_object($auslesen)) {
$sql = "UPDATE tl_iso_product_collection SET document_number='$row->id', order_status='$order_status' WHERE id='$row->id'";
$conn->query($sql);
}
$conn->close();
?>
changeodernum.php - hier kann man die Bestellnummer auf seine eigene ändern
PHP-Code:
<?php
header('content-type: text/html; charset=utf-8');
$action = $_GET['action'];
if ($action == 'savetrue') {echo 'Bestellnummer erfolgreich geändert';}
if ($action == 'savefalse') {echo 'Fehler beim Ändern der Bestellnummer: '.$error;}
?>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bestellnummer ändern</title>
</head>
<body>
<div class="header"></div>
<div class="main">
<div class="container">
<div class="row">
<div><h3>Bestellnummer ändern</h3></div>
<form action="db.php" method="GET">
<div>
<input type="text" class="form-control" id="oldordernum" name="oldordernum" placeholder="alte Bestellnummer">
</div>
<div>
<input type="text" class="form-control" id="newordernum" name="newordernum" placeholder="neue Bestellnummer">
</div>
<div>
<input class="form-control" type="submit" value="Bestellnummer ändern">
</div>
</form>
</div>
</div>
</div>
<div class="footer"></div>
</body>
</html>