Ankündigung

Einklappen
Keine Ankündigung bisher.

SEPA Sammelüberweisungen erzeugen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SEPA Sammelüberweisungen erzeugen

    Hi!

    Man hat bei diversen Online-Banking-Anwendungen die Möglichkeit eine Sammelüberweisung zu importieren. Innerhalb Deutschlands geht das wunderbar mit dem DTAUS-Format, dazu gibt es diverse Implementierungen (z.b. Payment_DTA).
    Für den europäischen Zahlungsverkehr wird/wurde SEPA eingeführt. Informationen dazu gibt es z.B. von der Sparkasse: SEPA-Datenformat, Single Euro Payments Area - www.sparkasse.de

    Ist euch eine Implementierung bekannt, welche die XML-Erzeugung von SEPA-Sammelüberweisungen wrappt?

    Danke und Gruß
    Sebastian

  • #2
    Ich greife mal die Frage nochmals auf, da ich auch so eine Klasse suche.
    Warum das Rad neu erfinden?!
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Zitat von Paul.Schramenko Beitrag anzeigen
      Ich greife mal die Frage nochmals auf, da ich auch so eine Klasse suche.
      Warum das Rad neu erfinden?!
      Hallo Paul,

      ich habe das Thema für meine Anwendung auch zurückgestellt. Falls ich irgendwann den Weg als erster beschreiten sollte, werde ich den Code hier zur Verfügung stellen.

      Gruß
      Sebastian

      Kommentar


      • #4
        Ich habe mir jetzt eine einfache Lösung zusammengeschraubt, die für eine bestimmte Firma ausreicht. Eine große Hilfe und Quelle der u.g. Vorlage war http://sepa.suessenbach.de/index.htm.

        Hab mir eine Sepa-Vorlage gebaut, bei der die Absender-Firmna hat kodiert ist. (Vorlage im Anhang). Kann natürlich auch generisch erweitert werden. Ich hatte einfach keine Lust das komplette SEPA-Format zusammenzubauen, so wie es das PEAR-Paket für DTAUS macht. Ist also eine quick&dirty Lösung.

        Dann folgende Schritte in einer beliebigen Klasse:

        PHP-Code:
        //XML-Schnipsel für die jeweilige ausgehenden Positionen:

        const REC_XML '<CdtTrfTxInf><PmtId><EndToEndId></EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR"></InstdAmt></Amt><CdtrAgt><FinInstnId><BIC></BIC></FinInstnId></CdtrAgt><Cdtr><Nm></Nm></Cdtr><CdtrAcct><Id><IBAN></IBAN></Id></CdtrAcct><RmtInf><Ustrd></Ustrd></RmtInf></CdtTrfTxInf>';

        var 
        $xml;
        var 
        $count 0;
        var 
        $totalAmount 0;
        var 
        $root;

        function 
        loadXML() {
          
        $this->xml simplexml_load_file("sepa-vorlage.xml"); 
          
        $this->root $this->xml->{'pain.001.001.02'};
        }

        //Pro ausgehender Position aufzurufen
        function addPosition($receiver) {

          
        $recXML simplexml_load_string(self::REC_XML);
          
        $recXML->CdtrAgt[0]->FinInstnId[0]->BIC[0] = $receiver["bic"];
          
        $recXML->Cdtr[0]->Nm[0] = $receiver["name"];    
          
        $recXML->CdtrAcct[0]->Id[0]->IBAN[0] = $receiver["iban"];
          
        $recXML->RmtInf[0]->Ustrd[0] = $receiver["verwendungszweck"];
          
        $recXML->PmtId[0]->EndToEndId[0] = $receiver["ref-nummer"];
          
        $recXML->Amt[0]->InstdAmt[0] = str_replace(',','.',$receiver["amount"]);

          
        $this->totalAmount += $receiver["amount"];        
          
        append_simplexml($this->root->PmtInf[0], $recXML);
          
        $this->count++;
        }

        function 
        getXML() {

          
        $this->root->GrpHdr[0]->MsgId[0] = uniqid("MSG"true);
          
        $this->root->GrpHdr[0]->CreDtTm[0] = date('c'time());
         
          
        //Anzahl der gesamten Transaktionen setzen
          
        $this->root->GrpHdr[0]->NbOfTxs[0] = $this->count;

          
        //Gesamtsumme der Transaktionen setzen (für SEPA-Prüfzwecke)
          
        $this->root->GrpHdr[0]->CtrlSum[0] = str_replace(',','.',$this->totalAmount);

          
        //Ausführungsdatum setzen
          
        $this->root->PmtInf[0]->ReqdExctnDt[0] = strftime('%Y-%m-%d'time());
           
          return 
        $this->xml->asXML();

        Hoffe es hilft jemanden. Mit der Sparkasse klappt es. Helfen tut der SEPA XML Checker der Sparkassen.
        Angehängte Dateien

        Kommentar

        Lädt...
        X