Hallo zusammen,
jetzt war ich hier schon lange unterwegs und habe nach vielen Antworten für mein Problem gesucht, mich jetzt aber doch angemeldet um einen Meinungsaustausch anzustreben.
Ich möchte ganz einfach Überweisungen für meine Finanztransaktionen über PHP veranlassen.
Ich empfinde es als sehr ineffizient mich jedes mal in meine Banksoftware einloggen zu müssen um eine einfache Überweisung zu tätigen.
Überlegt habe ich mir dazu folgende Struktur:
- Meine Bank stellt eine HBCI-Schnittstelle bereit
- Hibiscus-Payment-Server (ist bereits aufgesetzt) verwaltet die HBCI-Schnitstelle und stellt eine XML-RPC Schnittstelle bereit
- PHP-Script veranlasst eine Überweisung über XML-RPC
Den Payment-Server habe ich bereits aufgesetzt, jedoch scheitere ich noch an der Zugänglichkeit (kein Interface zu sehen). Das liegt wohl daran dass ich ein ISP-Config System verwende welches auch den 8080 Port verwendet und eine eigene /var/www Struktur hat.
Jedenfalls kann ich nicht auf das Interface zugreifen. Da prüfe ich derzeit noch was das Problem sein könnte.
Vielleicht hat jemand von euch dafür eine Idee.
Ist mein Vorhaben so machbar? Gibt es vielleicht eine einfachere, zeitgünstigere Methoden, Dienstleister oder Dienste um automatisiert Überweisungen zu tätigen?
Vielen Dank für euer Feedback!
############################################EDIT
Zugriff habe ich jetzt auch aufs Panel. War tatsächlich der Fehlerhafte Port.
############################################EDIT2
Super!
Hibiscus läuft, habe mein Konto angelegt und bin jetzt dann gespannt ob das mit den Überweisungen klappt wie ich mir das vorstelle. Wenn es hinhaut wär das echt eine große Arbeitslast die wegfällt.
############################################EDIT3
Jetzt bin ich ins Stocken geraten. Wenn ich mit der xmlrpc.inc die Schnittstelle aufrufen möchte erreicht mich folgender Fehler:
Meine Anfrage lautet:
[php]
require_once(/xmlrpc.inc');
$client = new xmlrpc_client('https://xxx:xxx@xxx:8082/xmlrpc/');
$client->setDebug(0);
$client->setSSLVerifyHost(0);
$client->setSSLVerifyPeer(0);
$msg = new xmlrpcmsg('hibiscus.xmlrpc.konto.find');
$response = $client->send($msg);
print_r($response);
exit();
[/php]
Fehlermeldung in der Konsole:
############################################EDIT4
Es läuft jetzt
Für Interessierte bei denen der Fehler auftritt:
Fehler war dabei, dass kein gültiges Zertifikat verwendet worden ist und somit Jetty wohl gestreikt hat. Da ich jedoch keine gesicherte Verbindung benötige da die Kommunikation zwischen PHP und Hibiscus ohnehin intern abläuft, kann man diese mit folgender Einstellung in der hibiscus/hibiscus-server/cfg/de.willuhn.jameica.webadmin.Plugin.properties umgehen.
Außerdem habe ich der Sicherheit wegen den jeweiligen TCP-Port geschlossen nachdem ich alle Einstellungen vorgenommen habe, damit man nicht mehr von außen zugreifen kann.
So sieht meine Config derzeit aus:
listener.http.address=127.0.0.1
listener.http.port=XXXX
listener.http.auth=true
listener.http.ssl=false
Funktional sind derzeit die Abfragen der Konten und Saldos, Überweisungen werde ich heute auch noch testen. Bin mal gespannt was mich erwartet
jetzt war ich hier schon lange unterwegs und habe nach vielen Antworten für mein Problem gesucht, mich jetzt aber doch angemeldet um einen Meinungsaustausch anzustreben.
Ich möchte ganz einfach Überweisungen für meine Finanztransaktionen über PHP veranlassen.
Ich empfinde es als sehr ineffizient mich jedes mal in meine Banksoftware einloggen zu müssen um eine einfache Überweisung zu tätigen.
Überlegt habe ich mir dazu folgende Struktur:
- Meine Bank stellt eine HBCI-Schnittstelle bereit
- Hibiscus-Payment-Server (ist bereits aufgesetzt) verwaltet die HBCI-Schnitstelle und stellt eine XML-RPC Schnittstelle bereit
- PHP-Script veranlasst eine Überweisung über XML-RPC
Den Payment-Server habe ich bereits aufgesetzt, jedoch scheitere ich noch an der Zugänglichkeit (kein Interface zu sehen). Das liegt wohl daran dass ich ein ISP-Config System verwende welches auch den 8080 Port verwendet und eine eigene /var/www Struktur hat.
Jedenfalls kann ich nicht auf das Interface zugreifen. Da prüfe ich derzeit noch was das Problem sein könnte.
Vielleicht hat jemand von euch dafür eine Idee.
Ist mein Vorhaben so machbar? Gibt es vielleicht eine einfachere, zeitgünstigere Methoden, Dienstleister oder Dienste um automatisiert Überweisungen zu tätigen?
Vielen Dank für euer Feedback!
############################################EDIT
Zugriff habe ich jetzt auch aufs Panel. War tatsächlich der Fehlerhafte Port.
############################################EDIT2
Super!

Hibiscus läuft, habe mein Konto angelegt und bin jetzt dann gespannt ob das mit den Überweisungen klappt wie ich mir das vorstelle. Wenn es hinhaut wär das echt eine große Arbeitslast die wegfällt.
############################################EDIT3
Jetzt bin ich ins Stocken geraten. Wenn ich mit der xmlrpc.inc die Schnittstelle aufrufen möchte erreicht mich folgender Fehler:
Code
xmlrpcresp Object
(
[val] => 0
[valtyp] =>
[errno] => 8
[errstr] => CURL error: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
[payload] =>
[hdrs] => Array
(
)
[_cookies] => Array
(
)
[content_type] => text/xml
[raw_data] =>
)
(
[val] => 0
[valtyp] =>
[errno] => 8
[errstr] => CURL error: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
[payload] =>
[hdrs] => Array
(
)
[_cookies] => Array
(
)
[content_type] => text/xml
[raw_data] =>
)
Meine Anfrage lautet:
[php]
require_once(/xmlrpc.inc');
$client = new xmlrpc_client('https://xxx:xxx@xxx:8082/xmlrpc/');
$client->setDebug(0);
$client->setSSLVerifyHost(0);
$client->setSSLVerifyPeer(0);
$msg = new xmlrpcmsg('hibiscus.xmlrpc.konto.find');
$response = $client->send($msg);
print_r($response);
exit();
[/php]
Fehlermeldung in der Konsole:
Code
[Sat Dec 15 10:40:40 CET 2012][WARN][org.slf4j.impl.JameicaLoggerAdapter.warn] EXCEPTION
javax.net.ssl.SSLException: java.security.ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DOMAIN_PARAMS_INVALID
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1902)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1860)
at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1843)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1362)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:630)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Caused by: java.security.ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DOMAIN_PARAMS_INVALID
at sun.security.pkcs11.P11KeyPairGenerator.generateKeyPair(P11KeyPairGenerator.java:323)
at java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:687)
at sun.security.ssl.ECDHCrypt.<init>(ECDHCrypt.java:63)
at sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys(ServerHandshaker.java:1206)
at sun.security.ssl.ServerHandshaker.trySetCipherSuite(ServerHandshaker.java:1060)
at sun.security.ssl.ServerHandshaker.chooseCipherSuite(ServerHandshaker.java:887)
at sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:620)
at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:167)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1032)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
... 3 more
Caused by: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DOMAIN_PARAMS_INVALID
at sun.security.pkcs11.wrapper.PKCS11.C_GenerateKeyPair(Native Method)
at sun.security.pkcs11.P11KeyPairGenerator.generateKeyPair(P11KeyPairGenerator.java:314)
... 15 more
javax.net.ssl.SSLException: java.security.ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DOMAIN_PARAMS_INVALID
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1902)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1860)
at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1843)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1362)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:630)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Caused by: java.security.ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DOMAIN_PARAMS_INVALID
at sun.security.pkcs11.P11KeyPairGenerator.generateKeyPair(P11KeyPairGenerator.java:323)
at java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:687)
at sun.security.ssl.ECDHCrypt.<init>(ECDHCrypt.java:63)
at sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys(ServerHandshaker.java:1206)
at sun.security.ssl.ServerHandshaker.trySetCipherSuite(ServerHandshaker.java:1060)
at sun.security.ssl.ServerHandshaker.chooseCipherSuite(ServerHandshaker.java:887)
at sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:620)
at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:167)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1032)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
... 3 more
Caused by: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DOMAIN_PARAMS_INVALID
at sun.security.pkcs11.wrapper.PKCS11.C_GenerateKeyPair(Native Method)
at sun.security.pkcs11.P11KeyPairGenerator.generateKeyPair(P11KeyPairGenerator.java:314)
... 15 more
############################################EDIT4
Es läuft jetzt

Für Interessierte bei denen der Fehler auftritt:
Fehler war dabei, dass kein gültiges Zertifikat verwendet worden ist und somit Jetty wohl gestreikt hat. Da ich jedoch keine gesicherte Verbindung benötige da die Kommunikation zwischen PHP und Hibiscus ohnehin intern abläuft, kann man diese mit folgender Einstellung in der hibiscus/hibiscus-server/cfg/de.willuhn.jameica.webadmin.Plugin.properties umgehen.
Außerdem habe ich der Sicherheit wegen den jeweiligen TCP-Port geschlossen nachdem ich alle Einstellungen vorgenommen habe, damit man nicht mehr von außen zugreifen kann.
So sieht meine Config derzeit aus:
Code
listener.http.address=127.0.0.1
listener.http.port=XXXX
listener.http.auth=true
listener.http.ssl=false
Funktional sind derzeit die Abfragen der Konten und Saldos, Überweisungen werde ich heute auch noch testen. Bin mal gespannt was mich erwartet
