epics 1.4.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +38 -30
- data/lib/epics.rb +1 -0
- data/lib/epics/cdb.rb +1 -1
- data/lib/epics/client.rb +4 -0
- data/lib/epics/version.rb +1 -1
- data/lib/epics/vmk.rb +55 -0
- data/spec/fixtures/xml/hpb_response_ebics_ns.xml +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51b94d179773db218f4e12893aad065b478fe4fc
|
4
|
+
data.tar.gz: 221ef01157bbcd652e17e6bd7d05d97edeef0765
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf71172943ed9c56975b555550277cc1a066a93f6e473b03819833f047c4ae328d50baf7419f535c1c8a62f4ecc64c46dba6fd68ad236d775d676dba5030dbef
|
7
|
+
data.tar.gz: b99b8db9d8a5a332012600d74ccde6fbcfeab0962edb33d34359c2abc2c37fdcfa94052edd0cfe622d23ad09414fc97d422cc2a8627f2da2554667c612115001
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -3,9 +3,12 @@
|
|
3
3
|
|
4
4
|
# Epics
|
5
5
|
|
6
|
-
EPICS is a ruby implementation of the [EBICS](http://www.ebics.org/) (Electronic Banking Internet
|
6
|
+
EPICS is a ruby implementation of the [EBICS](http://www.ebics.org/) (Electronic Banking Internet
|
7
|
+
Communication Standard).
|
7
8
|
|
8
|
-
The client supports the complete initialization process comprising INI, HIA and HPB including the
|
9
|
+
The client supports the complete initialization process comprising INI, HIA and HPB including the
|
10
|
+
INI letter generation. It offers support for the most common download and upload order types
|
11
|
+
(STA HAA HTD HPD PKT HAC HKD C52 C53 CD1 CDD CCT VMK).
|
9
12
|
|
10
13
|
|
11
14
|
## Installation
|
@@ -23,20 +26,19 @@ Or install it yourself as:
|
|
23
26
|
|
24
27
|
## Getting started
|
25
28
|
|
26
|
-
In case you are new to EBICS, you'll have to complete
|
27
|
-
your bank. Epics can help you
|
28
|
-
them for later use
|
29
|
+
In case you are new to EBICS, you'll have to complete an initialization process with
|
30
|
+
your bank. Epics can help you generate all necessary keys and directly store
|
31
|
+
them for later use. But first you'll have to lift some contractually work with your
|
29
32
|
bank.
|
30
33
|
|
31
34
|
Once the paperwork is done, your bank should provide you with:
|
32
35
|
|
33
|
-
*
|
34
|
-
*
|
35
|
-
*
|
36
|
-
*
|
36
|
+
* _a_ URL to their EBICS Server
|
37
|
+
* _a_ HOST ID
|
38
|
+
* _a_ PARTNER ID
|
39
|
+
* _n_ User IDs (depends on your bank and needs)
|
37
40
|
|
38
|
-
Take
|
39
|
-
you want to initialize):
|
41
|
+
Take these parameters and start setting up an UserID (repeat this for every user you want to initialize):
|
40
42
|
|
41
43
|
```ruby
|
42
44
|
e = Epics::Client.setup("my-super-secret", "https://ebics.sandbox", "SIZBN001", "EBIX", "EPICS")
|
@@ -56,7 +58,6 @@ Submit the keys to your bank:
|
|
56
58
|
|
57
59
|
```ruby
|
58
60
|
e.INI # sends the signature key
|
59
|
-
|
60
61
|
e.HIA # sends the encryption and authentication keys
|
61
62
|
```
|
62
63
|
|
@@ -66,15 +67,15 @@ The next step is to print the INI letter and post it to your bank:
|
|
66
67
|
e.save_ini_letter( 'My Banks Name', "/home/epics/ini.html" )
|
67
68
|
```
|
68
69
|
|
69
|
-
Open the generated HTML file in your favorite browser and print it
|
70
|
-
header and footer sounds like a solid setting here ;) In case
|
70
|
+
Open the generated HTML file in your favorite browser and print it (skipping
|
71
|
+
header and footer sounds like a solid setting here ;). In case you're having difficulties
|
71
72
|
with the encoding, try forcing your browser to use UTF-8.
|
72
73
|
|
73
|
-
Put the INI letter in
|
74
|
+
Put the INI letter in an envelope and mail it to your bank!
|
74
75
|
|
75
|
-
Done! ... Well not
|
76
|
+
Done! ... Well not completely :)
|
76
77
|
|
77
|
-
Once the bank confirms that your user is completely initialized
|
78
|
+
Once the bank confirms that your user is completely initialized, you'll have to
|
78
79
|
download the public keys of your bank:
|
79
80
|
|
80
81
|
```ruby
|
@@ -93,10 +94,13 @@ e.HAA
|
|
93
94
|
To get a list of all supported order types.
|
94
95
|
|
95
96
|
|
96
|
-
## Need help? Having questions?
|
97
|
+
## Need help? Having questions?
|
97
98
|
|
98
|
-
We have many years of experience in developing innovative applications for the finance sector and
|
99
|
-
|
99
|
+
We have many years of experience in developing innovative applications for the finance sector and
|
100
|
+
integrating applications with financial institutions. - you might want to have a look at our
|
101
|
+
[portfolio](http://www.railslove.com/portfolio)
|
102
|
+
__If you need help we are happy to provide consulting or development services. Contact us:
|
103
|
+
[team@railslove.com](mailto:team@railslove.com)__
|
100
104
|
|
101
105
|
|
102
106
|
## Usage
|
@@ -132,6 +136,7 @@ Currently this EPICS implementation supports the following order types:
|
|
132
136
|
* HPD (the available bank parameters)
|
133
137
|
* PKT (customer usage report in text format)
|
134
138
|
* HAC (customer usage report in xml format)
|
139
|
+
* VMK (customer usage report in xml format)
|
135
140
|
* ... more coming soon
|
136
141
|
|
137
142
|
Example:
|
@@ -169,7 +174,7 @@ Example:
|
|
169
174
|
|
170
175
|
```ruby
|
171
176
|
puts e.CD1("i-am-PAIN-xml")
|
172
|
-
# res is a the transaction id and id of the order
|
177
|
+
# res is a the transaction id and id of the order
|
173
178
|
|
174
179
|
# if the XML is a file in your FS, read it first and give if epics to consume
|
175
180
|
puts e.CD1(File.read("/where/the/xml/is/stored.xml"))
|
@@ -178,7 +183,7 @@ puts e.CD1(File.read("/where/the/xml/is/stored.xml"))
|
|
178
183
|
|
179
184
|
### Lazy Mode
|
180
185
|
|
181
|
-
Once you have a client, go ahead and start playing! There are 3
|
186
|
+
Once you have a client, go ahead and start playing! There are 3 convenience methods
|
182
187
|
that are hiding some strange names from you:
|
183
188
|
|
184
189
|
* debit( _xml_ ) (submits a PAIN.008.003.02 document via CDD)
|
@@ -191,30 +196,33 @@ about the supported functionalities.
|
|
191
196
|
|
192
197
|
## Issues and Feature Requests
|
193
198
|
|
194
|
-
[Railslove](http://railslove.com) is commited to provide the best developer tools for integrating
|
195
|
-
|
199
|
+
[Railslove](http://railslove.com) is commited to provide the best developer tools for integrating
|
200
|
+
with financial institutions. Epics is one of our many tools and services.
|
201
|
+
If you are missing some features or something is not working as expected please create an issue.
|
196
202
|
|
197
203
|
|
198
204
|
|
199
205
|
## Supported Banks
|
200
206
|
|
201
|
-
This gem provides a full implementation of the Electronic Banking Internet Communication Standard
|
207
|
+
This gem provides a full implementation of the Electronic Banking Internet Communication Standard
|
208
|
+
and works with any bank that supports this standard. Please ask your bank if they support EBICS and
|
209
|
+
what order types are available.
|
202
210
|
|
203
|
-
Besides EBCIS being a standard, some server implementations are slighty different.
|
204
|
-
Is Epics working with your institution?
|
211
|
+
Besides EBCIS being a standard, some server implementations are slighty different.
|
212
|
+
Is Epics working with your institution?
|
205
213
|
Please help us to grow this list of supported banks:
|
206
214
|
|
207
215
|
* Handelsbank
|
208
216
|
* Deutsche Bank
|
209
|
-
* Sparkasse
|
210
|
-
*
|
217
|
+
* Sparkasse Köln Bonn
|
218
|
+
* Commerzbank
|
211
219
|
|
212
220
|
## Links
|
213
221
|
|
214
222
|
* [ebics.de](http://www.ebics.de/)
|
215
223
|
* [EBICS specification](http://www.ebics.de/index.php?id=30)
|
216
224
|
* [Common Integrative Implementation Guide to Supplement the EBICS Specification (pdf)](http://www.ebics.de/fileadmin/unsecured/specification/implementation_guide_DE/EBICS_Common_IG_basiert_auf_EBICS_2.5.pdf)
|
217
|
-
* [Die Deutsche Kreditwirtschaft](http://www.die-deutsche-kreditwirtschaft.de/)
|
225
|
+
* [Die Deutsche Kreditwirtschaft](http://www.die-deutsche-kreditwirtschaft.de/)
|
218
226
|
|
219
227
|
|
220
228
|
## Contributing
|
data/lib/epics.rb
CHANGED
data/lib/epics/cdb.rb
CHANGED
data/lib/epics/client.rb
CHANGED
data/lib/epics/version.rb
CHANGED
data/lib/epics/vmk.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
class Epics::VMK < Epics::GenericRequest
|
2
|
+
attr_accessor :from, :to
|
3
|
+
|
4
|
+
def initialize(client, from = nil, to = nil)
|
5
|
+
super(client)
|
6
|
+
self.from = from
|
7
|
+
self.to = to
|
8
|
+
end
|
9
|
+
|
10
|
+
def date_range
|
11
|
+
if !!from && !!to
|
12
|
+
{ "DateRange" => { "Start" => from, "End" => to } }
|
13
|
+
else
|
14
|
+
{ :content! => '' }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def header
|
19
|
+
{
|
20
|
+
:@authenticate => true,
|
21
|
+
static: {
|
22
|
+
"HostID" => host_id,
|
23
|
+
"Nonce" => nonce,
|
24
|
+
"Timestamp" => timestamp,
|
25
|
+
"PartnerID" => partner_id,
|
26
|
+
"UserID" => user_id,
|
27
|
+
"Product" => {
|
28
|
+
:@Language => "de",
|
29
|
+
:content! => "EPICS - a ruby ebics kernel"
|
30
|
+
},
|
31
|
+
"OrderDetails" => {
|
32
|
+
"OrderType" => "VMK",
|
33
|
+
"OrderAttribute" => "DZHNN",
|
34
|
+
"StandardOrderParams" => date_range
|
35
|
+
},
|
36
|
+
"BankPubKeyDigests" => {
|
37
|
+
"Authentication" => {
|
38
|
+
:@Version => "X002",
|
39
|
+
:@Algorithm => "http://www.w3.org/2001/04/xmlenc#sha256",
|
40
|
+
:content! => client.bank_x.public_digest
|
41
|
+
},
|
42
|
+
"Encryption" => {
|
43
|
+
:@Version => "E002",
|
44
|
+
:@Algorithm => "http://www.w3.org/2001/04/xmlenc#sha256",
|
45
|
+
:content! => client.bank_e.public_digest
|
46
|
+
}
|
47
|
+
},
|
48
|
+
"SecurityMedium" => "0000"
|
49
|
+
},
|
50
|
+
"mutable" => {
|
51
|
+
"TransactionPhase" => "Initialisation"
|
52
|
+
}
|
53
|
+
}
|
54
|
+
end
|
55
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<ebics:
|
1
|
+
<ebics:ebicsKeyManagementResponse xmlns:ebics="urn:org:ebics:H004" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Revision="1" Version="H004" xsi:schemaLocation="urn:org:ebics:H004 ebics_keymgmt_response_H004.xsd">
|
2
2
|
<ebics:header authenticate="true">
|
3
3
|
<ebics:static />
|
4
4
|
<ebics:mutable>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Brillert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -205,6 +205,7 @@ files:
|
|
205
205
|
- lib/epics/signer.rb
|
206
206
|
- lib/epics/sta.rb
|
207
207
|
- lib/epics/version.rb
|
208
|
+
- lib/epics/vmk.rb
|
208
209
|
- lib/letter/ini.erb
|
209
210
|
- spec/.DS_Store
|
210
211
|
- spec/client_spec.rb
|
@@ -295,7 +296,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
295
296
|
version: '0'
|
296
297
|
requirements: []
|
297
298
|
rubyforge_project:
|
298
|
-
rubygems_version: 2.
|
299
|
+
rubygems_version: 2.5.1
|
299
300
|
signing_key:
|
300
301
|
specification_version: 4
|
301
302
|
summary: a ruby implementation of the EBICS protocol
|