Guten Morgen, ich habe ein komisches Verhalten. Es geht um eine Plugin welches folgende Events und Hooks registriert: private function subscribeEvents() { $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Backend\_Customer', 'onBackendCustomerPostDispatch' ); $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Backend\_Order', 'onBackendOrderPostDispatch' ); $this-\>subscribeEvent( 'Shopware\Models\Customer\Repository::getCustomerDetailQueryBuilder::after', 'aftergetCustomerDetailQueryBuilder' ); $this-\>subscribeEvent( 'Shopware\Models\Order\Repository::getBackendAdditionalOrderDataQuery::after', 'aftergetOrdersQueryBuilder' ); $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Account', 'onPostDispatchAccount' ); $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Checkout', 'onPostDispatchCheckout' ); $event = $this-\>createHook( 'sOrder', 'sSaveOrder', 'onOrder', Enlight\_Hook\_HookHandler::TypeAfter, 0 ); $this-\>subscribeHook($event); $event = $this-\>createEvent( 'Enlight\_Controller\_Dispatcher\_ControllerPath\_Frontend\_GetDocument', 'onGetControllerPath'); $this-\>subscribeEvent($event); }
Es verändert das verhalten der Lastschrift Bezahlung in Shopware. Wird aber als Zahlart Paypal ausgewählt, so bricht dieses mit folgender Info ab: [10412] - Duplicate invoice. Payment has already been made for this InvoiceID. array( [‚TIMESTAMP‘] => ‚2014-06-04T15:35:59Z‘ [‚CORRELATIONID‘] => ‚eeec8bd17dcc‘ [‚ACK‘] => ‚Failure‘ [‚VERSION‘] => 93.0 [‚BUILD‘] => 11307182 [‚L_ERRORCODE0‘] => 10412 [‚L_SHORTMESSAGE0‘] => ‚Duplicate invoice‘ [‚L_LONGMESSAGE0‘] => ‚Payment has already been made for this InvoiceID.‘ [‚L_SEVERITYCODE0‘] => ‚Error‘ [‚INVNUM‘] => ‚prefix1‘ [‚CUSTOM‘] => ‚dd56e5821fa5adb56d84e64bd68e99d7‘ ) Was hier auffällt, es wird die 1 als Rechnungsnummer übergeben. Wenn ich das Plugin nun ohne Ioncube Verschlüsselung installiere, so erschein bei Paypal keine Fehlermeldung und ich kann ganz normal bestellen. Ich verstehe leider den Zusammenhang überhaupt nicht. Hat jemand eine Idee? Danke
Im Detail kann ich Dir leider nicht helfen, vielleicht aber bei der Ursachenforschung. Im Paypal Profil kannst Du festlegen ob doppelte Zahlungen auf eine Rechnungsnummer erlaubt sind oder nicht (um Doppelzahlungen zu verhindern). Da prüft Paypal die übergebene RechnungsID und wenn die schon einmal bezahlt wurde, kommt genau die Meldung. Egal ob es nun eine neuer Betrag ist oder nicht. Ist die Option abgeschaltet kannst Du ohne Fehlermeldung Rechnungen doppelt bezahlen. Entweder hast Du das bei Deinen Tests nicht berücksichtigt oder die übermittelte ID der Rechnung passt aus irgendwelchen Gründen nicht.
Danke für den Tipp. Werde ich mal prüfen. Aber ich denke eher die ID ist falsch. Es irritiert mich auch, dass dort 1 übergeben wird mit dem Prefix. Nur der Zusammenhang ist mir völlig unklar. IonCube Verschlüsselt und IonCube unverschlüsselt. Evtl. war dies auch nur ein Zufall.