Jump to content
xt:Commerce Community Forum

[saferpay]: Doppelt vergebene IDs


tenner

Recommended Posts

Hallo,

leider kann ich nicht im saferpay download bereich

posten. Daher poste ich hier. Sollte das Forum

falsch sein, bitte (@admin) topic moven.

Frage zum saferpay bezahl modul

Folgender Fehler tritt manchmal auf:

An saferpay übermittelte OrderIds werden teilweise

doppelt vergeben (bei zeitlich nahe gelegenden Be-

stellungen).

Folgender Saferpay Quellcode (saferpaygw.php, Zeile 106)

bestimmt anscheinend die OrderID:

$query  = xtc_db_query("SELECT MAX(orders_id)+1 as new_id FROM " .

TABLE_ORDERS );
Hierbei wird die neue OrderId wie folgt gesetzt (saferpaygw.php, Z.113):
$this->orderid = $orders['new_id'];

So, wie es aussieht wird die OrderID, die an saferpay

übermittelt wird, wie folgt generiert :

Die Höchste OrderID wird um eins erhöht als neue OrderID

verwendet.

Da diese OrderID zu diesem Zeitpunkt noch nicht in die

Datenbank geschrieben wird, ist diese Technik meiner

Meinung doch fehleranfällig.

Denn wenn jemand zeitnah auch eine Bestellung aufrufen

möchte, dann erhält er die gleich OrderID?

Hat irgendjemand auch das Problem und eine Workaround

gefunden ?

Danke im voraus.

Gruß!

Link to comment
Share on other sites

  • 1 year later...

Hi tenner,

hast du eine lösung gefunden, stehe vor dem gleichen problem.

kurz danach kommt ja noch folgendes:

// order_id + Time XXX_HHMMSS

#$this->orderid .= '_' . date("YmdHis");

//the checking for a posibility to send a request

//

die ID wird hier um das Datum erweitert.

So wird die ID wenigstens wieder eindeutig.

...wird die an saferpay übermittelte ID nach getätigtere Zahlung wieder zurück an den Shop übermittelt.

Dann könnte es hier Probleme wegen der nicht mehr übereinstimmenden ID gegeben.

es wurde auch eine bestellung saferpay zugeordnet, die eigentlich per nachnahme im shop eingegangen ist.

Danke und Grüße

Pepe

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...