Re: XH-Shop
Posted: Sun Jul 07, 2019 1:41 pm
Doch, etwas Trost ist immer gut danke! Und nebenbei war mir nicht klar, dass das wohl eher "ein externes Problem" ist.frase wrote:Ich kann es ja gar nicht mit ansehen, wie du hier leidest.
Nur versuchen, etwas Trost zu spenden ...
Wenn die Ausfälle sporadisch sind, also zwischendurch wieder mal was klappt, dann deutet das eher auf externe Ursachen hin.
Ich weiß, das hilft dir alles nichts
Danke dir dass du dich trotz Zeitmangel meiner annimmst. Hab die Zeile geändert - möge es nützen! Aufgrund eines früheren Problems steht bei mir noch ein bißchen was anderes drin. Insgesamt also jetzt:cmb wrote: ↑Sun Jul 07, 2019 1:27 pmAls Debug-Hilfe könntest du mal diese Zeile ändern zu:Code: Select all
$this->handshakeFailed(sprintf('unexpected response for IPN pingback request [%s]: %s', $payload, trim($body)));
Code: Select all
} elseif (in_array('INVALID', $lines)) {
// just ignore this IPN
// siehe https://cmsimpleforum.com/viewtopic.php?p=65047#p65047
$this->handshakeFailed('IPN pingback request is INVALID');
} else {
// siehe https://cmsimpleforum.com/viewtopic.php?p=72092#p72092
$this->handshakeFailed(sprintf('unexpected response for IPN pingback request [%s]: %s', $payload, trim($body)));
}
fclose($fp);
while (ob_get_level()) {
ob_end_clean();
}
header('HTTP/1.1 200 OK');
exit;
}
Code: Select all
2019-07-09 17:38:38 error xhshop ipn Handshake failed! (unexpected response for IPN pingback request [POST /cgi-bin/webscr HTTP/1.1
Host: ipnpb.paypal.com:443
Content-Type: application/x-www-form-urlencoded
Content-Length: 1216
User-Agent: XH-Shop-IPN-VerificationScript
Connection: close
cmd=_notify-validate& ... usw. Bestelldaten die vorher nicht protokolliert wurden.
Du hast eigentlich da abgeschnitten, wo es für mich interessant geworden wäre. Mir ging es v.a. darum, ob der Request-Body (also ab cmd=_notify-validate&) auch korrekt kodiert wurde, und ob die angegebenen Felder auch tatsächlich aus dem Formular stammen. Falls das so ist, dann wäre die Antwort "Bad Request" nämlich möglicherweise ein Fehler seitens des Bezahlkumpels.
Geht auf jeden Fall. Ich denke, man müsste direkt vor dieser Zeile etwa folgende einfügen:
Code: Select all
XH_logMessage('info', 'xhshop', 'final_checkout', serialize($_SESSION));
Code: Select all
cmd=_notify-validate&mc_gross=66.70&protection_eligibility=Eligible&address_status=confirmed&item_number1=1&item_number2=2&payer_id=TYS627X...&address_street=...str.+40&payment_date=08%3A38%3A23+Jul+09%2C+2019+PDT&payment_status=Completed&charset=UTF-8&address_zip=70197&mc_handling=0.00&first_name=R...&mc_fee=2.01&address_country_code=DE&address_name=R...+S...¬ify_version=3.9&custom=8b9a4bd47ca16a2738a4e6911d2f5092&payer_status=verified&business=info%40natur-und-handgemacht.de&address_country=Germany&num_cart_items=2&address_city=stuttgart&verify_sign=AW134ETOT.ABR9MxinB5hcWpf2MaAtqYM6UxWBfPFYz9vWRGf15Jiw1Y&payer_email=s...r...%40web.de&txn_id=0XU09...325&payment_type=instant&last_name=S...&address_state=&item_name1=Dinkelkissen%2C+Dinkel-Kopfkissen+40x80+cm+-+incl.+5+Liter+Reserve%2C&receiver_email=info%40natur-und-handgemacht.de&item_name2=Schulter-Nackenkissen%2C+Affen+blau&payment_fee=&shipping_discount=0.00&quantity1=2&insurance_amount=0.00&quantity2=1&receiver_id=C5QFABZ3ZSZCG&txn_type=cart&discount=0.00&mc_gross_1=49.80&mc_currency=EUR&mc_gross_2=16.90&residence_country=DE&shipping_method=Default&transaction_subject=&payment_gross=&ipn_track_id=e2ad8ea8bc3f0]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>)
Code: Select all
2019-07-10 08:45:47 info xhshop mail Bestätigung versendet an info@...de
2019-07-10 08:45:48 info xhshop mail Benachrichtigung über Bestellung von info@...de versendet
2019-07-10 08:45:48 info xhshop final_checkout a:3:{s:8:"xhsToken";s:24:"e1fefee ...
Der Ablauf sollte so sein: bei final checkout werden die Daten protokolliert; dann wird die IPN verarbeitet; bei Erfolg wird dann die Mail gesendet. Es müssten also auch bei IPN Fehlschlag zumindest die Daten gespeichert werden.
Wie ich befürchtet hatte: Bei paypal "handshake failed" wird diese logMessage nicht geschrieben!cmb wrote: ↑Tue Jul 09, 2019 9:09 pmGeht auf jeden Fall. Ich denke, man müsste direkt vor dieser Zeile etwa folgende einfügen:Code: Select all
XH_logMessage('info', 'xhshop', 'final_checkout', serialize($_SESSION));
Code: Select all
XH_logMessage('info', 'xhshop', 'final_checkout', serialize($_SESSION['xhsCustomer']));