Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
paypal_plus [2017/06/08 18:26] – [Oxid] geraldpaypal_plus [2024/02/29 13:36] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 71: Zeile 71:
  
 Mein Verdacht lt. metadata.php (PayPal): 'payment'   => 'payp/paypalplus/controllers/payppaypalpluspayment', Mein Verdacht lt. metadata.php (PayPal): 'payment'   => 'payp/paypalplus/controllers/payppaypalpluspayment',
 +
 +OK, der Ajax-Request hat offenbar nicht (nur) Sicherheitsaspekte. Die überlagernde Mathode validatePayment() in der 'payp/paypalplus/controllers/payppaypalpluspayment.php' updated anscheinend das PayPal-Payment.Offenbar wird die Methode nicht ausgeführt, wenn mein Modul geladen ist. 
 +
 +OK, das ist es auch nicht. /payppaypalpluspayment.php wird ausgeführt. Bei der Funktion _updatePayment() (ca. Z. 374) fibt es eine IF-Abfrage:
 +<code>
 +        $oShop = paypPayPalPlusShop::getShop();
 +        if ($oShop->getValidator()->isPaymentCreated() and $oShop->getRequestParameter('ajax')) {
 +</code>
 +Der 1. Teil der Abfrage (isPaymentCreated()) ist nicht 1. Daher gibt es einen Fehler. Bin ein Stück weiter.
 +
 +Jetzt weiter: im File core/payppaypalplusvalidator.php die Methode isPaymentCreated($oPayment = null) (ca. Z. 135). Der Aufruf '$mPayment = $this->getShop()->getPayPalPlusSession()->getPayment();' fibt ein (bool)false zurück, obwohl $this->getShop()->getPayPalPlusSession() bis dahin ein Objekt ist. Dann geht das folgende if ($mPayment instanceof PayPal\Api\Payment) { schief.
 +
 +Hängt es vielleicht doch damit zusammen, dass ich vor die Bestellnummer stets noch ein 'NB' setze??? Nachrecherchiert: ne, ich ändere die Bestellnummer nicht intern, sondern nur in der Repräsentation. Kann es also auch nicht sein. Versuche, bei PayPal noch ein NB davorzisetzen, wenn nötig, scheitern auch.
 +
 +Also: in der _updatePayment() kommt die InvoiceNumer MIT NB an. Wenn ich $oShop->getValidator()->isPaymentCreated("ajax") im IF unschädlich mache, gibt es Fehlermeldung, weil das Update $oPayPalPaymentHandler->update($oPayPalSession->getApiContext()); kein Objekt übergeben bekommt. ABER: Wenn ich $this->_ajaxResponseSuccess(); nach oben setze, dann kommt der korrekte Token so wie er soll und und die ganze Chose funktioniert!
 +Es liegt also tatsächlich daran, dass $oShop->getValidator()->isPaymentCreated() false ist. Offenbar kann er die (PayPal)Session nicht korrekt auslesen ($mPayment = $this->getShop()->getPayPalPlusSession()->getPayment(); in ...validator.php) . Oh. Oder die Session wird gar nicht korrekt gespeichert.
 +
 +
 +
 +
 +
 +
 +
 +
  
  
 
Nach oben
paypal_plus.1496946409.txt.gz · Zuletzt geändert: 2024/02/29 13:35 (Externe Bearbeitung)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0
DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp   Dogecoin Donations Accepted Here    DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp  DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp