C# SEPA CORE Beispiel?

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 13
Dabei seit: 03 / 2008
Betreff:

C# SEPA CORE Beispiel?

 · 
Gepostet: 27.11.2013 - 15:37 Uhr  ·  #1
Hi, ich versuche mich gerade mit der API und will einen ganz einfach Lastschrifteinzug (CORE) realisieren. Den nötigen XML-Teil habe ich bereits als String vorliegen (DFÜ 2.7) und ist auch durch die Bank validiert (die Hypo hat ein tolles Testtool dafür).

Ich tu mich jedoch ein wenig schwer damit da bei den Beispielen sowas nicht mit bei ist.

So sieht mein Quellcode momentan aus:
Code
SepaDocument document = SepaDocument.NewDocumentXml(XmlReader.Create(new StringReader(_sepa_xml)));
FinSepaSubmitPostdatedSingRemittBuilder builder = new FinSepaSubmitPostdatedSingRemittBuilder(contact);
FinOrder order = builder.Build(account, document);

FinScriptSendOrder.Execute(this, contact, order, "1234567890");


_sepa_xml ist der String mit den XML-Daten, die ausführung schlägt jedoch fehl mit einem Nullpointer. Trace:

Code
   bei Subsembly.FinTS.FinDataElement..ctor(String sStringData)
   bei Subsembly.FinTS.FinSegment.SetStringElement(Int32 nDEG, Int32 nGD, String sStringData)
   bei Subsembly.FinTS.FinSepaOrderBuilder.BuildSepaSegment(FinSepaRemitt aSepaRemitt)
   bei Subsembly.FinTS.FinSepaOrderBuilder.Build(FinAcct aAcct, SepaDocument aSepaDoc)
   bei HBCITesttApp.Form1.btnAbbuchung_Click(Object sender, EventArgs e) in c:\Users\dbecker\Documents\Visual Studio 2013\Projects\HBCITesttApp\HBCITesttApp\Form1.cs:Zeile 281.
   bei System.Windows.Forms.Control.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bei System.Windows.Forms.Button.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   bei System.Windows.Forms.Application.Run(Form mainForm)
   bei HBCITesttApp.Program.Main() in c:\Users\dbecker\Documents\Visual Studio 2013\Projects\HBCITesttApp\HBCITesttApp\Program.cs:Zeile 19.
   bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   ...


Und noch mein verwendetes XML, IBAN habe ich jetzt natürlich was anderes eingetragen, zum testen verwende ich aber korrekte Daten:
Code
<?xml version="1.0" encoding="UTF-8"?>
<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>HW-GHD-0000000000000</MsgId><CreDtTm>2013-11-27T12:00:00Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>0.01</CtrlSum><InitgPty><Nm>MAX MUSTERMANN</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>HW-PMT-0000000000000</PmtInfId><PmtMtd>DD</PmtMtd><NbOfTxs>1</NbOfTxs><CtrlSum>0.01</CtrlSum><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl><LclInstrm><Cd>CORE</Cd></LclInstrm><SeqTp>FRST</SeqTp></PmtTpInf><ReqdColltnDt>2013-12-04</ReqdColltnDt><Cdtr><Nm>MAX MUSTERMANN</Nm></Cdtr><CdtrAcct><Id><IBAN>DE55100208900123456789</IBAN></Id></CdtrAcct><CdtrAgt><FinInstnId><BIC>HYVEDEMM488</BIC></FinInstnId></CdtrAgt><ChrgBr>SLEV</ChrgBr><CdtrSchmeId><Id><PrvtId><Othr><Id>DE00ZZZ00000000000</Id><SchmeNm><Prtry>SEPA</Prtry></SchmeNm></Othr></PrvtId></Id></CdtrSchmeId><DrctDbtTxInf><PmtId><EndToEndId>20131124120000-10000</EndToEndId></PmtId><InstdAmt Ccy="EUR">0.01</InstdAmt><DrctDbtTx><MndtRltdInf><MndtId>TEST-10000</MndtId><DtOfSgntr>2013-01-01</DtOfSgntr><AmdmntInd>false</AmdmntInd></MndtRltdInf></DrctDbtTx><DbtrAgt><FinInstnId><BIC>HYVEDEMM488</BIC></FinInstnId></DbtrAgt><Dbtr><Nm>MAX MUSTERMANN</Nm></Dbtr><DbtrAcct><Id><IBAN>DE89100208909876543210</IBAN></Id></DbtrAcct><RmtInf><Ustrd>SEPA-TEST-CORE</Ustrd></RmtInf></DrctDbtTxInf></PmtInf></CstmrDrctDbtInitn></Document>


Benötige ich eigentlich unbedingt noch die SEPA-API zusätzlich oder kann ich die XML als String irgendwie direkt an die Bank senden (low-level)?!

Bin für jede Hilfe dankbar.
Benutzer
Avatar
Geschlecht:
Beiträge: 3338
Dabei seit: 05 / 2013
Betreff:

Re: C# SEPA CORE Beispiel?

 · 
Gepostet: 27.11.2013 - 16:38 Uhr  ·  #2
Zitat geschrieben von MasterEvil
Benötige ich eigentlich unbedingt noch die SEPA-API zusätzlich oder kann ich die XML als String irgendwie direkt an die Bank senden (low-level)?!

Bei der Api ist auch eine FinCmd.exe dabei. Damit kann man das XML roh zur Bank senden ohne Schnickschnack.
In der Konsole mal fincmd eingeben, dann kommt der Hilfetext. Für rohes XML verwendest du den Parameter "sepa", nicht xml!
Restliche Parameter zur Authentifizierung sind angegeben.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: München
Homepage: subsembly.com/
Beiträge: 4527
Dabei seit: 11 / 2004
Betreff:

Re: C# SEPA CORE Beispiel?

 · 
Gepostet: 28.11.2013 - 10:57 Uhr  ·  #3
Möglicherweise kann die Bank (welche?) noch gar kein pain.008.003.02.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 13
Dabei seit: 03 / 2008
Betreff:

Re: C# SEPA CORE Beispiel?

 · 
Gepostet: 28.11.2013 - 14:20 Uhr  ·  #4
Das Problem ist das unsere Bank (Hypo Vereinsbank) keine Einzellastschriften(HKDSE) unterstützt sondern nur Sammellastschriften(HKDME).
Muss ich mal gucken wo da überhaupt der Unterschied ist.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 13
Dabei seit: 03 / 2008
Betreff:

Re: C# SEPA CORE Beispiel?

 · 
Gepostet: 28.11.2013 - 15:16 Uhr  ·  #5
Kann man den Wert HbciSegmentType irgendwie beeinflussen?
Also so, dass ich eine Lastschrift als Sammellastschrift einreiche?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: München
Homepage: subsembly.com/
Beiträge: 4527
Dabei seit: 11 / 2004
Betreff:

Re: C# SEPA CORE Beispiel?

 · 
Gepostet: 28.11.2013 - 16:31 Uhr  ·  #6
Hallo,

Du musst nur den FinSepaSubmitPostdatedMultRemittBuilder nehmen.
Gewählte Zitate für Mehrfachzitierung:   0