Hallo
ich arbeite gerade an einer Hibiscusanbindung in Python, die Einzellastschriften funktionieren problemlos werden aber leider von meiner bank nicht unterstützt.
Hier mal der Code für Einzellastschriften (In einem django manage command, könnte leicht abgewandelt auch in das XML-RPC Tutorial im Wiki übernommen werden):
#!/usr/bin/env python
from django.core.management.base import BaseCommand
from django.db import models
import ssl
import xmlrpclib
import datetime
class HibiscusSocket(object):
def __init__(self, password, xmlrpc_host="172.30.80.16", xmlrpc_port=8080, proto="https", username="admin"):
self.proto = proto
sock = xmlrpclib.ServerProxy('%s://%s:%s@%s:%s/xmlrpc/' % (
self.proto, username, password, xmlrpc_host, xmlrpc_port,
), context=ssl._create_unverified_context())
self.sock = sock
def set_sepa_direct_debit(self, data):
return self.sock.hibiscus.xmlrpc.sepalastschrift.create(data)
class Command(BaseCommand):
def handle(self, *args, **options):
currentDate = datetime.datetime.today()
transactionDate = currentDate + datetime.timedelta(days=2)
data = {
'konto': 1,
'termin': transactionDate,
'blz': 'GENODEM1GLS',
'kontonummer': 'DE12500105170648489890',
'name': 'Max Mustermann',
'betrag': 10.00,
'verwendungszweck': 'Test-Lastschrift',
'ausgefuehrt': False,
'endtoendid': '',
'pmtinfid': '',
'purposecode': '',
'mandateid': '6696',
'creditorid': 'Beispielhafte CreditorID',
'sigdate': currentDate, # Signature date of mandate, use subscription date
'sequencetype': 'OOFF',
'sepatype': 'COR1',
'targetdate': transactionDate
}
s = HibiscusSocket(password="geheimesPasswort")
returnvalue = s.set_sepa_direct_debit(data)
print returnvalue
Hier der Code für Sammellastschriften
#!/usr/bin/env python
from django.core.management.base import BaseCommand
import ssl
import xmlrpclib
import datetime
class HibiscusSocket(object):
def __init__(self, password, xmlrpc_host="192.168.0.27", xmlrpc_port=8080, proto="https", username="admin"):
self.proto = proto
sock = xmlrpclib.ServerProxy('%s://%s:%s@%s:%s/xmlrpc/' % (
self.proto, username, password, xmlrpc_host, xmlrpc_port,
), context=ssl._create_unverified_context())
self.sock = sock
def send_sepa_direct_debit(self, data):
return self.sock.hibiscus.xmlrpc.sepasammellastschrift.create(data)
class Command(BaseCommand):
def handle(self, *args, **options):
currentDate = datetime.datetime.today()
targetDate = currentDate + datetime.timedelta(days=2)
data = {
'name': 'Collective SEPA Direct Debit from ' + str(currentDate),
'konto': 1,
'termin': currentDate, # The day, hibiscus hands in the depit to the bank
'buchungen': [{
'blz': 'GENODEM1GLS',
'kontonummer': 'DE12500105170648489890',
'name': 'Tschonny Flash',
'betrag': 5.00,
'verwendungszweck': 'Test-Lastschrift',
'ausgefuehrt': False,
'endtoendid': '',
'pmtinfid': '',
'purposecode': '',
'mandateid': '66963',
'creditorid': 'creditor ID',
'sigdate': currentDate, # Signature date of mandate, use subscription date
'sequencetype': 'OOFF',
'sepatype': 'COR1',
'targetdate': targetDate
}]
}
s = HibiscusSocket(password="geheimesPasswort")
returnvalue = s.send_sepa_direct_debit(data)
print returnvalue
Der Code für die Sammellastschrift wirft leider folgenden fehler:
java.lang.NullPointerException: Name is null
at java.lang.Enum.valueOf(Enum.java:236)
at de.willuhn.jameica.hbci.rmi.SepaLastSequenceType.valueOf(SepaLastSequenceType.java:18)
at de.willuhn.jameica.hbci.xmlrpc.server.SepaSammelLastschriftServiceImpl.beforeStore(SepaSammelLastschriftServiceImpl.java:67)
at de.willuhn.jameica.hbci.xmlrpc.server.SepaSammelLastschriftServiceImpl.beforeStore(SepaSammelLastschriftServiceImpl.java:27)
at de.willuhn.jameica.hbci.xmlrpc.server.AbstractSepaSammelTransferServiceImpl.create(AbstractSepaSammelTransferServiceImpl.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:112)
at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:103)
at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:43)
at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:83)
at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:191)
at org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:104)
at de.willuhn.jameica.xmlrpc.server.XmlRpcServlet.doPost(XmlRpcServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:635)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Kann mir jemand helfen? ich kenne mich im code von hibiscus gar nicht aus.
ich arbeite gerade an einer Hibiscusanbindung in Python, die Einzellastschriften funktionieren problemlos werden aber leider von meiner bank nicht unterstützt.
Hier mal der Code für Einzellastschriften (In einem django manage command, könnte leicht abgewandelt auch in das XML-RPC Tutorial im Wiki übernommen werden):
Code
#!/usr/bin/env python
from django.core.management.base import BaseCommand
from django.db import models
import ssl
import xmlrpclib
import datetime
class HibiscusSocket(object):
def __init__(self, password, xmlrpc_host="172.30.80.16", xmlrpc_port=8080, proto="https", username="admin"):
self.proto = proto
sock = xmlrpclib.ServerProxy('%s://%s:%s@%s:%s/xmlrpc/' % (
self.proto, username, password, xmlrpc_host, xmlrpc_port,
), context=ssl._create_unverified_context())
self.sock = sock
def set_sepa_direct_debit(self, data):
return self.sock.hibiscus.xmlrpc.sepalastschrift.create(data)
class Command(BaseCommand):
def handle(self, *args, **options):
currentDate = datetime.datetime.today()
transactionDate = currentDate + datetime.timedelta(days=2)
data = {
'konto': 1,
'termin': transactionDate,
'blz': 'GENODEM1GLS',
'kontonummer': 'DE12500105170648489890',
'name': 'Max Mustermann',
'betrag': 10.00,
'verwendungszweck': 'Test-Lastschrift',
'ausgefuehrt': False,
'endtoendid': '',
'pmtinfid': '',
'purposecode': '',
'mandateid': '6696',
'creditorid': 'Beispielhafte CreditorID',
'sigdate': currentDate, # Signature date of mandate, use subscription date
'sequencetype': 'OOFF',
'sepatype': 'COR1',
'targetdate': transactionDate
}
s = HibiscusSocket(password="geheimesPasswort")
returnvalue = s.set_sepa_direct_debit(data)
print returnvalue
Hier der Code für Sammellastschriften
Code
#!/usr/bin/env python
from django.core.management.base import BaseCommand
import ssl
import xmlrpclib
import datetime
class HibiscusSocket(object):
def __init__(self, password, xmlrpc_host="192.168.0.27", xmlrpc_port=8080, proto="https", username="admin"):
self.proto = proto
sock = xmlrpclib.ServerProxy('%s://%s:%s@%s:%s/xmlrpc/' % (
self.proto, username, password, xmlrpc_host, xmlrpc_port,
), context=ssl._create_unverified_context())
self.sock = sock
def send_sepa_direct_debit(self, data):
return self.sock.hibiscus.xmlrpc.sepasammellastschrift.create(data)
class Command(BaseCommand):
def handle(self, *args, **options):
currentDate = datetime.datetime.today()
targetDate = currentDate + datetime.timedelta(days=2)
data = {
'name': 'Collective SEPA Direct Debit from ' + str(currentDate),
'konto': 1,
'termin': currentDate, # The day, hibiscus hands in the depit to the bank
'buchungen': [{
'blz': 'GENODEM1GLS',
'kontonummer': 'DE12500105170648489890',
'name': 'Tschonny Flash',
'betrag': 5.00,
'verwendungszweck': 'Test-Lastschrift',
'ausgefuehrt': False,
'endtoendid': '',
'pmtinfid': '',
'purposecode': '',
'mandateid': '66963',
'creditorid': 'creditor ID',
'sigdate': currentDate, # Signature date of mandate, use subscription date
'sequencetype': 'OOFF',
'sepatype': 'COR1',
'targetdate': targetDate
}]
}
s = HibiscusSocket(password="geheimesPasswort")
returnvalue = s.send_sepa_direct_debit(data)
print returnvalue
Der Code für die Sammellastschrift wirft leider folgenden fehler:
Code
java.lang.NullPointerException: Name is null
at java.lang.Enum.valueOf(Enum.java:236)
at de.willuhn.jameica.hbci.rmi.SepaLastSequenceType.valueOf(SepaLastSequenceType.java:18)
at de.willuhn.jameica.hbci.xmlrpc.server.SepaSammelLastschriftServiceImpl.beforeStore(SepaSammelLastschriftServiceImpl.java:67)
at de.willuhn.jameica.hbci.xmlrpc.server.SepaSammelLastschriftServiceImpl.beforeStore(SepaSammelLastschriftServiceImpl.java:27)
at de.willuhn.jameica.hbci.xmlrpc.server.AbstractSepaSammelTransferServiceImpl.create(AbstractSepaSammelTransferServiceImpl.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:112)
at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:103)
at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:43)
at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:83)
at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:191)
at org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:104)
at de.willuhn.jameica.xmlrpc.server.XmlRpcServlet.doPost(XmlRpcServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:635)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Kann mir jemand helfen? ich kenne mich im code von hibiscus gar nicht aus.