Closed ElishaDev closed 4 years ago
Kannst du evtl. das XML was generiert wird hier posten?
Vermutlich fehlt dort das Summenfeld, was deine Bank zwingend zu brauchen scheint.
(Ich kenne die abcaeffchen/sephpa lib nicht)
Lass uns mal ein paar Konfiguration abgleichen:
$directDebitFile->addCollection
...:
'btchBookg' => 'false'
und es wurde nur eine Zahlung per $directDebitCollection->addPayment
hinzugefügt?
Kannst du evtl. das XML was generiert wird hier posten?
Vermutlich fehlt dort das Summenfeld, was deine Bank zwingend zu brauchen scheint.
(Ich kenne die abcaeffchen/sephpa lib nicht)
Ich meine, dass das Problem dadurch verursacht wird, dass in SendSEPADirectDebit::createRequest()
nur unter bestimmten Umständen das Feld $hkdxe->summenfeld
gesetzt wird, z.B. wenn es sich nicht um eine Batch-Verarbeitung bzw. nicht um mehrere Zahlungen handelt.
Ich meine, dass das Problem dadurch verursacht wird, dass in
SendSEPADirectDebit::createRequest()
nur unter bestimmten Umständen das Feld$hkdxe->summenfeld
gesetzt wird, z.B. wenn es sich nicht um eine Batch-Verarbeitung bzw. nicht um mehrere Zahlungen handelt.
Ich guck es mir noch mal an.
@D3vJust Kannst du es mit #241 mal probieren?
Lass uns mal ein paar Konfiguration abgleichen:
$directDebitFile->addCollection
...:
'btchBookg' => 'false'
und es wurde nur eine Zahlung per
$directDebitCollection->addPayment
hinzugefügt?
Korrekt, btchBookg auf false und über addPayment nur eine Zahlung hinzugefügt.
@D3vJust Kannst du es mit #241 mal probieren?
Habe ich gemacht, bringt leider die selbe Meldung.
Kannst du evtl. das XML was generiert wird hier posten?
Vermutlich fehlt dort das Summenfeld, was deine Bank zwingend zu brauchen scheint.
(Ich kenne die abcaeffchen/sephpa lib nicht)
Reiche ich nachher nach!
Kannst du evtl. das XML was generiert wird hier posten?
Vermutlich fehlt dort das Summenfeld, was deine Bank zwingend zu brauchen scheint.
(Ich kenne die abcaeffchen/sephpa lib nicht)
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.003.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.003.02 pain.008.003.02.xsd">
<CstmrDrctDbtInitn>
<GrpHdr>
<MsgId>*UniqueMessageID*</MsgId>
<CreDtTm>2020-02-28T21:34:51</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<CtrlSum>1.00</CtrlSum>
<InitgPty>
<Nm>*Toller Name*</Nm>
</InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>PaymentID-1235-Test</PmtInfId>
<PmtMtd>DD</PmtMtd>
<BtchBookg>false</BtchBookg>
<NbOfTxs>1</NbOfTxs>
<CtrlSum>1.00</CtrlSum>
<PmtTpInf>
<SvcLvl>
<Cd>SEPA</Cd>
</SvcLvl>
<LclInstrm>
<Cd>CORE</Cd>
</LclInstrm>
<SeqTp>RCUR</SeqTp>
</PmtTpInf>
<ReqdColltnDt>2020-03-06</ReqdColltnDt>
<Cdtr>
<Nm>*Toller Name*</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>*Unsere IBAN*</IBAN>
</Id>
<Ccy>EUR</Ccy>
</CdtrAcct>
<CdtrAgt>
<FinInstnId>
<BIC>*Unsere BIC*</BIC>
</FinInstnId>
</CdtrAgt>
<UltmtCdtr>
<Nm>*Toller Name*</Nm>
</UltmtCdtr>
<ChrgBr>SLEV</ChrgBr>
<CdtrSchmeId>
<Id>
<PrvtId>
<Othr>
<Id>*GläubigerId*</Id>
<SchmeNm>
<Prtry>SEPA</Prtry>
</SchmeNm>
</Othr>
</PrvtId>
</Id>
</CdtrSchmeId>
<DrctDbtTxInf>
<PmtId>
<EndToEndId>R-0000/Testrechnung/20200226</EndToEndId>
</PmtId>
<InstdAmt Ccy="EUR">1.00</InstdAmt>
<DrctDbtTx>
<MndtRltdInf>
<MndtId>*MandatsId*</MndtId>
<DtOfSgntr>2020-02-20</DtOfSgntr>
<AmdmntInd>false</AmdmntInd>
</MndtRltdInf>
</DrctDbtTx>
<DbtrAgt>
<FinInstnId>
<BIC>*BIC vom Kunden*</BIC>
</FinInstnId>
</DbtrAgt>
<Dbtr>
<Nm>*name vom Kunden*</Nm>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>*IBAN vom Kunden*</IBAN>
</Id>
</DbtrAcct>
<UltmtDbtr>
<Nm>*Toller Name*</Nm>
</UltmtDbtr>
<RmtInf>
<Ustrd>Testlastschrift-Abbuchung 02/2020</Ustrd>
</RmtInf>
</DrctDbtTxInf>
</PmtInf>
</CstmrDrctDbtInitn>
</Document>
Also mit dem XML ist alles in Ordnung.
Bist du wirklich ganz sicher, dass bei deinem zweiten Test in SendSEPADirectDebit
statt
if ($useSingleDirectDebit) {
die Negierung
if (!$useSingleDirectDebit) {
stand und auch aktiv war. (Opcache etc.)?
Ansonsten kommentier doch bitte mal testweise
if ($useSingleDirectDebit && !is_null($this->ctrlSum) && !is_null($bpd->getLatestSupportedParameters('HIDMES'))) {
$useSingleDirectDebit = false;
}
aus. Dann wird es als Einzellastschrift gesendet, wofür dann auch kein Summenfeld nötig ist. (Aber dann funktioniert eine Sammellastschrift trotzdem noch nicht, also keine Lösung.)
Die Negierung habe ich noch einmal überprüft, sie ist definitiv aktiv.
Wenn ich das if-Statement auskommentiere, scheint alles zu funktionieren.
Ich habe von der Bank jetzt folgende Rückmeldung bekommen: HIRMS:3:2:3+0020::Auftrag ausgeführt.
Edit:
Es lag an einem Tippfehler. 🤦♂ Das Betragsfeld wurde daher nie gesendet, siehe #242
Top, perfekt :D
Werde ich die nächsten Tage testen.
Ist es schwer was ordentliches bezüglich Callbacks zu implementieren?
Was genau meinst du mit Callbacks? Was hast du vor?
Aktuell erfahre ich ja nicht, ob ich von derBank z.B. ein "Wert im Summenfeld erwartet." oder ein "Auftrag ausgeführt." bekomme, außer ich schau mir die Log Messages an.
Ah ok. Da ist das Beispiel nicht so gut momentan.
Du hast zwei Möglichkeiten:
$sendSEPADirectDebit->ensureSuccess();
Oder
if (!$sendSEPADirectDebit->isSuccess()) {
$sendSEPADirectDebit->getError();
}
Die Negierung habe ich noch einmal überprüft, sie ist definitiv aktiv.
Wenn ich das if-Statement auskommentiere, scheint alles zu funktionieren.
Ich habe von der Bank jetzt folgende Rückmeldung bekommen:
HIRMS:3:2:3+0020::Auftrag ausgeführt.
Wenn nun keine Lastschrift abgebucht wurde. Wo fange ich mit der Fehlersuche an? Kann mir meine Bank da weiterhelfen?
Ah ok. Da ist das Beispiel nicht so gut momentan.
Du hast zwei Möglichkeiten:
$sendSEPADirectDebit->ensureSuccess();
Oder
if (!$sendSEPADirectDebit->isSuccess()) { $sendSEPADirectDebit->getError(); }
Top, danke :)
Wenn nun keine Lastschrift abgebucht wurde. Wo fange ich mit der Fehlersuche an? Kann mir meine Bank da weiterhelfen?
Wenn die Bank den Auftrag entgegengenommen hat, dann hat FinTs seitig alles geklappt. Da musst du dann vermutlich mit der Bank sprechen. Ich kenne es so, dass die Lastschrift zum gewünschten Einzugstag als Umsatz auftaucht und falls die Lastschrift nicht geklappt hat, gibt es (evtl auch erst irgendwann später) einen Rücklastschriftumsatz.
Dann schließe ich bis hierhin erst einmal das Issue. Vielen Dank auf jeden Fall schon einmal für die Unterstützung!
Hey :)
Zusammen mit der FinTSNew-Class und und dem directDebit Example (https://github.com/nemiah/phpFinTS/blob/master/SamplesNew/directDebit.php), bekomme ich beim Einreichen der Lastschrift folgende Meldung (Postbank):
Jemand eine Idee, woran das liegen könnte?