Modify

Opened 7 years ago

Closed 7 years ago

#1602 closed Bug/Fehler (fixed)

Bankdaten-Prüfmethode 16 unvollständig

Reported by: Volker Rehn Owned by: somebody
Priority: hoch Milestone: modified-shop-2.0.5.0
Component: Shop Version: 2.0.4.2
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by Volker Rehn)

Aufgefallen, weil eine korrekte Kontonr der Fidor-Bank in der Bankdatenprüfung hängenblieb. Ursache war Prüfmethode 16, hier definiert:
https://www.bundesbank.de/resource/blob/603320/16a80c739bbbae592ca575905975c2d0/mL/pruefzifferberechnungsmethoden-data.pdf und in /includes/classes/banktransfer_validation.php implementiert.

Der Sonderfall, dass die Kontonr auch dann ok ist, wenn zwar die Prüfsumme 1 ist, aber die beiden letzten Ziffern der Kontonr gleich sind, wird im Code bisher nicht berücksichtigt. Es wird dann zwar die Prüfsumme mit der vorletzten Ziffer verglichen, aber nicht die beiden letzten Ziffern untereinander, und das ist hier die Ergänzung.

Neue Version der Methode16:

private function Method16($AccountNo, $Significance, $Checkpoint) {
    $Help = 0;
    $Method16 = 1;
    $AccountNo = $this->ExpandAccount($AccountNo);
    for ($Run = 0; $Run < strlen($Significance); $Run++) {
      $Help += (substr($AccountNo, $Run, 1) * substr($Significance, $Run, 1));
    }
    $Help = $Help % 11;
    $Checksum = 11 - $Help;
    if ($Help == 0) {
      $Checksum = 0;
    }
    if ($Checksum == substr($AccountNo, $Checkpoint - 1, 1)) {
       $Method16 = 0;
    }
    if ($Help == 1) {
      if ($Checksum == substr($AccountNo, $Checkpoint - 2, 1)) {
        $Method16 = 0;
      }
      
      // BOF Sonderfall fehlte: Vergleich der letzten beiden Stellen (9. und 10. bei Mark16 bzw 6. und 7. bei Mark23) 7.3.2019 vr
      $Checksum = substr($AccountNo, $Checkpoint - 1, 1);
      if ($Checksum == substr($AccountNo, $Checkpoint - 2, 1)) {
        $Method16 = 0;
      }
      // EOF
      
    }
    return $Method16;
  }  /* End of Method16 */

Attachments (0)

Change History (4)

comment:1 by Volker Rehn, 7 years ago

Component: AdminShop

comment:2 by Volker Rehn, 7 years ago

Description: modified (diff)

comment:3 by Torsten Riemer, 7 years ago

Milestone: modified-shop-2.0.5.0
Priority: normalhoch
Version: 2.0.4.2

comment:4 by Gerhard Waldemair, 7 years ago

Resolution: fixed
Status: newclosed

In 11713:

fix #1602

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.