Hallo!
Habe folgendes Problem mit PayPal:
Ich möchte vor der Veröffentlichung der Subseite subpage_success.html und nachdem der Kunde bei PayPal etwas gemacht hat, den Bestellstatus überprüfen und falls der Kunde wirklich bezahlt hat (PayPal-Status "Completed"), ihm die Gegenleistung auf der Seite subpage_success.html bringen. Auf der Seite checkout.success.php, die kurz vor der Seite subpage_success.html ausgeführt wird, habe ich durch meinen eigenen Plugin (eben hier 'module_checkout.php:success') Bestellstatusüberprüfung eingebaut (38 - bei mir bedeutet Completed, $success_order - Object von der Subseite checkout.success.php).
function check() {
global $success_order;
//38 - bei mir bedeutet Completed
if ($success_order->order_data['orders_status_id'] == 38) {
...
}
}[/PHP]
Obwohl die Bezahlung erfolgreich war, bekomme ich an der Stelle folgendes Ergebnis: $success_order->order_data['orders_status_id'] = [b]16[/b], das heißt, Bestellstatus scheint zu diesem Moment den Wert "Offen" zu haben. Field "orders_status" aus der Tabelle "xt_orders" von der Datenbank zum Moment der Status-Prüfung bringt das gleiche Resultat.
Am Ende des Vorgangs, wenn die Seite [b]subpage_success.html[/b] schon veröffentlicht war, steht in der Datenbank richtig [b]38[/b]. Wenn ich die Bestellstatusabfrage durch "Aktualisieren" des Browsers widerhole, bringt $success_order->order_data['orders_status_id'] auch richtig [b]38[/b].
Anscheinend benutze ich falsche Variable für die Statusabfrage. Profis, bitte, Hilfe!
P.S. Moneybookers hat im Shop fast den gleichen Programmablauf (Programmstruktur), aber funktioniert reibungslos.