epics 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/epics/client.rb +5 -5
- data/lib/epics/response.rb +14 -14
- data/lib/epics/version.rb +1 -1
- data/spec/client_spec.rb +2 -2
- data/spec/fixtures/xml/ebics_business_nok.xml +20 -21
- data/spec/fixtures/xml/ebics_technical_nok.xml +2 -2
- data/spec/fixtures/xml/hpb_response_ebics_ns.xml +20 -0
- data/spec/fixtures/xml/hpb_response_order.xml +4 -2
- data/spec/fixtures/xml/ini_response_h004_ns.xml +13 -0
- data/spec/fixtures/xml/upload_init_response.xml +1 -1
- data/spec/middleware/parse_ebics_spec.rb +1 -1
- data/spec/response_spec.rb +33 -3
- metadata +7 -5
- data/spec/fixtures/xml/hpb_response.xml +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61d881bf8791586ff4fa95db25764760a5ca0a1f
|
4
|
+
data.tar.gz: 63360ac97af8276e2338498e38f43e9c3460d10f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9d31d54ffdeb3c97f0a4c3b49192272b1ea6e1829a3de89b299a783cb28b487e12dfb5e1c531156a26083c38f3d774664942a9390dac99f0171c7b2e031137d
|
7
|
+
data.tar.gz: 856a8e8940b28ced56c3d02118dd1a819331d2eb16febbe08cf797e69e1099153456a3e3dcaec89d503a1b45a43a31f96f7287c740c81a9f4b22dd313983d460
|
data/CHANGELOG.md
CHANGED
data/lib/epics/client.rb
CHANGED
@@ -95,7 +95,7 @@ class Epics::Client
|
|
95
95
|
end
|
96
96
|
|
97
97
|
def HPB
|
98
|
-
Nokogiri::XML(download(Epics::HPB)).xpath("//xmlns:PubKeyValue").each do |node|
|
98
|
+
Nokogiri::XML(download(Epics::HPB)).xpath("//xmlns:PubKeyValue", xmlns: "urn:org:ebics:H004").each do |node|
|
99
99
|
type = node.parent.last_element_child.content
|
100
100
|
|
101
101
|
modulus = Base64.decode64(node.at_xpath(".//*[local-name() = 'Modulus']").content)
|
@@ -136,14 +136,14 @@ class Epics::Client
|
|
136
136
|
end
|
137
137
|
|
138
138
|
def HAA
|
139
|
-
Nokogiri::XML(download(Epics::HAA)).at_xpath("//xmlns:OrderTypes").content.split(/\s/)
|
139
|
+
Nokogiri::XML(download(Epics::HAA)).at_xpath("//xmlns:OrderTypes", xmlns: "urn:org:ebics:H004").content.split(/\s/)
|
140
140
|
end
|
141
141
|
|
142
142
|
def HTD
|
143
143
|
Nokogiri::XML(download(Epics::HTD)).tap do |htd|
|
144
|
-
@iban ||= htd.at_xpath("//xmlns:AccountNumber[@international='true']").text
|
145
|
-
@bic ||= htd.at_xpath("//xmlns:BankCode[@international='true']").text
|
146
|
-
@name ||= htd.at_xpath("//xmlns:Name").text
|
144
|
+
@iban ||= htd.at_xpath("//xmlns:AccountNumber[@international='true']", xmlns: "urn:org:ebics:H004").text
|
145
|
+
@bic ||= htd.at_xpath("//xmlns:BankCode[@international='true']", xmlns: "urn:org:ebics:H004").text
|
146
|
+
@name ||= htd.at_xpath("//xmlns:Name", xmlns: "urn:org:ebics:H004").text
|
147
147
|
end.to_xml
|
148
148
|
end
|
149
149
|
|
data/lib/epics/response.rb
CHANGED
@@ -12,7 +12,7 @@ class Epics::Response
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def technical_code
|
15
|
-
doc.xpath("//xmlns:header/xmlns:mutable/xmlns:ReturnCode").text
|
15
|
+
doc.xpath("//xmlns:header/xmlns:mutable/xmlns:ReturnCode", xmlns: "urn:org:ebics:H004").text
|
16
16
|
end
|
17
17
|
|
18
18
|
def business_error?
|
@@ -20,7 +20,7 @@ class Epics::Response
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def business_code
|
23
|
-
doc.xpath("//xmlns:body/xmlns:ReturnCode").text
|
23
|
+
doc.xpath("//xmlns:body/xmlns:ReturnCode", xmlns: "urn:org:ebics:H004").text
|
24
24
|
end
|
25
25
|
|
26
26
|
def ok?
|
@@ -28,34 +28,34 @@ class Epics::Response
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def last_segment?
|
31
|
-
!!doc.at_xpath("//xmlns:header/xmlns:mutable/*[@lastSegment='true']")
|
31
|
+
!!doc.at_xpath("//xmlns:header/xmlns:mutable/*[@lastSegment='true']", xmlns: "urn:org:ebics:H004")
|
32
32
|
end
|
33
33
|
|
34
34
|
def segmented?
|
35
|
-
!!doc.at_xpath("//xmlns:header/xmlns:mutable/xmlns:SegmentNumber")
|
35
|
+
!!doc.at_xpath("//xmlns:header/xmlns:mutable/xmlns:SegmentNumber", xmlns: "urn:org:ebics:H004")
|
36
36
|
end
|
37
37
|
|
38
38
|
def return_code
|
39
|
-
doc.xpath("//xmlns:ReturnCode").last.content
|
39
|
+
doc.xpath("//xmlns:ReturnCode", xmlns: "urn:org:ebics:H004").last.content
|
40
40
|
rescue NoMethodError
|
41
41
|
nil
|
42
42
|
end
|
43
43
|
|
44
44
|
def report_text
|
45
|
-
doc.xpath("//xmlns:ReportText").first.content
|
45
|
+
doc.xpath("//xmlns:ReportText", xmlns: "urn:org:ebics:H004").first.content
|
46
46
|
end
|
47
47
|
|
48
48
|
def transaction_id
|
49
|
-
doc.xpath("//xmlns:header/xmlns:static/xmlns:TransactionID").text
|
49
|
+
doc.xpath("//xmlns:header/xmlns:static/xmlns:TransactionID", xmlns: 'urn:org:ebics:H004').text
|
50
50
|
end
|
51
51
|
|
52
52
|
def order_id
|
53
|
-
doc.xpath("//xmlns:header/xmlns:mutable/xmlns:OrderID").text
|
53
|
+
doc.xpath("//xmlns:header/xmlns:mutable/xmlns:OrderID", xmlns: "urn:org:ebics:H004").text
|
54
54
|
end
|
55
55
|
|
56
56
|
def digest_valid?
|
57
57
|
authenticated = doc.xpath("//*[@authenticate='true']").map(&:canonicalize).join
|
58
|
-
digest_value = doc.xpath("//ds:DigestValue").first
|
58
|
+
digest_value = doc.xpath("//ds:DigestValue", ds: "http://www.w3.org/2000/09/xmldsig#").first
|
59
59
|
|
60
60
|
digest = Base64.encode64(digester.digest(authenticated)).strip
|
61
61
|
|
@@ -63,20 +63,20 @@ class Epics::Response
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def signature_valid?
|
66
|
-
signature = doc.xpath("//ds:SignedInfo").first.canonicalize
|
67
|
-
signature_value = doc.xpath("//ds:SignatureValue").first
|
66
|
+
signature = doc.xpath("//ds:SignedInfo", ds: "http://www.w3.org/2000/09/xmldsig#").first.canonicalize
|
67
|
+
signature_value = doc.xpath("//ds:SignatureValue", ds: "http://www.w3.org/2000/09/xmldsig#").first
|
68
68
|
|
69
69
|
client.bank_x.key.verify(digester, Base64.decode64(signature_value.content), signature)
|
70
70
|
end
|
71
71
|
|
72
72
|
def public_digest_valid?
|
73
|
-
encryption_pub_key_digest = doc.xpath("//xmlns:EncryptionPubKeyDigest").first
|
73
|
+
encryption_pub_key_digest = doc.xpath("//xmlns:EncryptionPubKeyDigest", xmlns: 'urn:org:ebics:H004').first
|
74
74
|
|
75
75
|
client.e.public_digest == encryption_pub_key_digest.content
|
76
76
|
end
|
77
77
|
|
78
78
|
def order_data
|
79
|
-
order_data_encrypted = Base64.decode64(doc.xpath("//xmlns:OrderData").first.content)
|
79
|
+
order_data_encrypted = Base64.decode64(doc.xpath("//xmlns:OrderData", xmlns: 'urn:org:ebics:H004').first.content)
|
80
80
|
|
81
81
|
data = (cipher.update(order_data_encrypted) + cipher.final)
|
82
82
|
|
@@ -93,7 +93,7 @@ class Epics::Response
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def transaction_key
|
96
|
-
transaction_key_encrypted = Base64.decode64(doc.xpath("//xmlns:TransactionKey").first.content)
|
96
|
+
transaction_key_encrypted = Base64.decode64(doc.xpath("//xmlns:TransactionKey", xmlns: 'urn:org:ebics:H004').first.content)
|
97
97
|
|
98
98
|
@transaction_key ||= client.e.key.private_decrypt(transaction_key_encrypted)
|
99
99
|
end
|
data/lib/epics/version.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -67,8 +67,8 @@ RSpec.describe Epics::Client do
|
|
67
67
|
|
68
68
|
before do
|
69
69
|
stub_request(:post, "https://194.180.18.30/ebicsweb/ebicsweb")
|
70
|
-
.with(:body => %r[
|
71
|
-
.to_return(status: 200, body: File.read(File.join(File.dirname(__FILE__), 'fixtures', 'xml', '
|
70
|
+
.with(:body => %r[ebicsNoPubKeyDigestsRequest])
|
71
|
+
.to_return(status: 200, body: File.read(File.join(File.dirname(__FILE__), 'fixtures', 'xml', 'hpb_response_ebics_ns.xml')))
|
72
72
|
end
|
73
73
|
|
74
74
|
it { expect(subject.HPB).to match([be_a(Epics::Key), be_a(Epics::Key)]) }
|
@@ -1,21 +1,20 @@
|
|
1
|
-
|
2
|
-
<
|
3
|
-
|
4
|
-
<
|
5
|
-
|
6
|
-
<
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
<
|
14
|
-
|
15
|
-
</
|
16
|
-
|
17
|
-
</
|
18
|
-
<
|
19
|
-
|
20
|
-
|
21
|
-
</ebicsKeyManagementResponse>
|
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
|
+
<ebics:header authenticate="true">
|
3
|
+
<ebics:static />
|
4
|
+
<ebics:mutable>
|
5
|
+
<ebics:ReturnCode>000000</ebics:ReturnCode>
|
6
|
+
<ebics:ReportText>[EBICS_OK] OK</ebics:ReportText>
|
7
|
+
</ebics:mutable>
|
8
|
+
</ebics:header>
|
9
|
+
<ebics:body>
|
10
|
+
<ebics:DataTransfer>
|
11
|
+
<ebics:DataEncryptionInfo authenticate="true">
|
12
|
+
<ebics:EncryptionPubKeyDigest Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" Version="E002">rwIxSUJAVEFDQ0sdYe+CybdspMllDG6ArNtdCzUbT1E=</ebics:EncryptionPubKeyDigest>
|
13
|
+
<ebics:TransactionKey>CPdd6ODXrCxHWpYrwS/5a3NIZ1R2SDscHHJSONc2I7g8ara7qv5Ra7H03W+336DPQLZQxH+EBRWdE2FQ1vrVTcypK6fkFarmO1dEtQt6Ka89AozC7aQMyp4yGl+zlF+XvFkJXZbRXgoEOPsgcG0xM6nKLXnr1ThYRFOoAasigLDGwqxliyhoR94F9dL7YB8Le/uZeRj78mNp4smkE5ZKKyPhwVx+0IW78YuVCSC2c2qbsMmm4evAvycdpLfuuoG4KVlNMIlvkKeBfMZFELcmeKKm85D2zPYkZ7cqG2IfAAp5qdS6K8P7RY4gtjUhOtP5mi8bZt/ZcjioUmIR9dAMnA==</ebics:TransactionKey>
|
14
|
+
</ebics:DataEncryptionInfo>
|
15
|
+
<ebics:OrderData>lJ/v1HvOYAZKTPkxULH4mOcUy01+EaAsxLzCPhtieAo9m5AtU5URdyBVfmclHbtWe3ELb02lR37bChynq0Esqpljxx7CiB+kl/bVs7XkNQQmtGPlh08O7ApJ7AHdKPFFvE+SM2OWpSwUrqJGtmyaU6s+RM66o/3Q0wvKi4y3+Q2jm8nkiWZpPfNt52g4ReE9Ge86o+L+EBOBgZm634L5Z/i6pq908mXBAklPdk1ERdEgWONaOeYYmB70FToplR1gINJEF2CnfAtD/wV+DuQFPDth+EWHqhe3a4xO0d9eJ55ou2QCYOPUC2g/qz1sp7GR74W7P5IWJdmnUEuPFsKJ6OvM+1V8S06jZGDa/QhUGDK8F3G/TMP09W1MsrlQTRr3YQ5H43+pMY7I6Jysze+X9OKZZTTpv4GmYm1USjmraGyMuPF3j9hrlmpttK+1gg2WzytCJO44YsZp9ckls8JNK4bT5uwTuomKZoRgmiIOTcMh4VP7V28TWj2XdF+T6rBFILTvQyXMOzvbe1kLwg2O31JDBdJ8X1fHCYJxKsIrYCSDPz4sha8h7QmHrCSFmjoXb+LUElnbLXZVRkY5/Dc73EM6Es3wAgjwSJK2asRqdqU0PhbS5qpIlgYKsNcb+Wes</ebics:OrderData>
|
16
|
+
</ebics:DataTransfer>
|
17
|
+
<ebics:ReturnCode authenticate="true">091116</ebics:ReturnCode>
|
18
|
+
<ebics:TimestampBankParameter authenticate="true">2007-10-19T14:58:39.467Z</ebics:TimestampBankParameter>
|
19
|
+
</ebics:body>
|
20
|
+
</ebics:ebicsKeyManagementResponse>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<ebicsKeyManagementResponse xmlns="
|
2
|
+
<ebicsKeyManagementResponse xmlns="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">
|
3
3
|
<header authenticate="true">
|
4
4
|
<static/>
|
5
5
|
<mutable>
|
@@ -9,4 +9,4 @@
|
|
9
9
|
</header>
|
10
10
|
<body>
|
11
11
|
</body>
|
12
|
-
</ebicsKeyManagementResponse>
|
12
|
+
</ebicsKeyManagementResponse>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<ebics:bicsKeyManagementResponse 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
|
+
<ebics:header authenticate="true">
|
3
|
+
<ebics:static />
|
4
|
+
<ebics:mutable>
|
5
|
+
<ebics:ReturnCode>000000</ebics:ReturnCode>
|
6
|
+
<ebics:ReportText>[EBICS_OK] OK</ebics:ReportText>
|
7
|
+
</ebics:mutable>
|
8
|
+
</ebics:header>
|
9
|
+
<ebics:body>
|
10
|
+
<ebics:DataTransfer>
|
11
|
+
<ebics:DataEncryptionInfo authenticate="true">
|
12
|
+
<ebics:EncryptionPubKeyDigest Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" Version="E002">rwIxSUJAVEFDQ0sdYe+CybdspMllDG6ArNtdCzUbT1E=</ebics:EncryptionPubKeyDigest>
|
13
|
+
<ebics:TransactionKey>CPdd6ODXrCxHWpYrwS/5a3NIZ1R2SDscHHJSONc2I7g8ara7qv5Ra7H03W+336DPQLZQxH+EBRWdE2FQ1vrVTcypK6fkFarmO1dEtQt6Ka89AozC7aQMyp4yGl+zlF+XvFkJXZbRXgoEOPsgcG0xM6nKLXnr1ThYRFOoAasigLDGwqxliyhoR94F9dL7YB8Le/uZeRj78mNp4smkE5ZKKyPhwVx+0IW78YuVCSC2c2qbsMmm4evAvycdpLfuuoG4KVlNMIlvkKeBfMZFELcmeKKm85D2zPYkZ7cqG2IfAAp5qdS6K8P7RY4gtjUhOtP5mi8bZt/ZcjioUmIR9dAMnA==</ebics:TransactionKey>
|
14
|
+
</ebics:DataEncryptionInfo>
|
15
|
+
<ebics:OrderData>tPp8sZbGSkjaUy4IoNektKEK1KekTQxLwIZ+AYhyuL99erg26xK1ZcvXd+vJwSfl5TV21qQHybID5CnnP5ZvjcxBdwrK0hyMyp2FYJAY16wLAt++Esydx55XSBvutQASBEnPd01uq3Gd4tPLLbrlBGCDEtqJcfbLEOyWvxYFNDb/HU6RpOCD7JN3jL+LRLsFfrZEK96QO8IzpCtiAYBJ6C3OaHsETt0wBx1lYy7JBSw+nIEEzE6+N3EjJjE3++9BfCDE0ca7kpWCSJ666dUuelPuIS45LjcFbTGROdZ1BTJc6F39Zjxud2yUJIEJINQUZA2O8628gVi2GvoUZuILFx1TsCik1T2ims7EVqkfSNEBpKCa3mtmNMEFepdXNTBm3Kf+J+5ATnqq1EJrYBkGpDPii4jgvVPNIkXJlx5DqqhgUUCShnCLOingwrE+z5ekRM5091iHl1C4APfR05gl0Q81D5HiV9m4CuMjx4Lp7mm0vdgP1LNiaA1BnKIeFob+4SN4Kv7AoP7nxk+3nINMd0yGujsnMx6WgGFn4lvv7IH250+LUZJM4rkdVx9FacxU+P+B6+GDHpLKZyT84WKvPXWnoIhPpykR/Pbysoe+WdAf7cMVp9K5Q5QhfPaMu2eIZjR5+IRIUXxhTo8k2vDG4XBcjgVygP5GJAN83pjXuwdo5JRxyGZAOqvBr7cHmmCG</ebics:OrderData>
|
16
|
+
</ebics:DataTransfer>
|
17
|
+
<ebics:ReturnCode authenticate="true">000000</ebics:ReturnCode>
|
18
|
+
<ebics:TimestampBankParameter authenticate="true">2007-10-19T14:58:39.467Z</ebics:TimestampBankParameter>
|
19
|
+
</ebics:body>
|
20
|
+
</ebics:ebicsKeyManagementResponse>
|
@@ -1,11 +1,12 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<HPBResponseOrderData xmlns="
|
2
|
+
<HPBResponseOrderData xmlns="urn:org:ebics:H004" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="http://www.ebics.org/H003 http://www.ebics.org/H003/ebics_orders.xsd">
|
3
3
|
<AuthenticationPubKeyInfo>
|
4
4
|
<PubKeyValue>
|
5
5
|
<ds:RSAKeyValue>
|
6
6
|
<ds:Modulus>AJ2/0OoIZydb9sgKbiwqDcwA0NtcUMIYi6GK7PqoRszu1uytGnxJjQhGt62kMslWvLgebUSwdq/T3YyGsa3KQeIGaUUn9iqyu3BoNOMdo2DLN4NdGMY1WR/HbYRKR3JHyURhTBKw27KScRRdKGl6jY+VcXcTKJL8PjXMQH5cD6Gz</ds:Modulus>
|
7
7
|
<ds:Exponent>AQAB</ds:Exponent>
|
8
8
|
</ds:RSAKeyValue>
|
9
|
+
<TimeStamp>2007-03-13T11:33:16.616Z</TimeStamp>
|
9
10
|
</PubKeyValue>
|
10
11
|
<AuthenticationVersion>X002</AuthenticationVersion>
|
11
12
|
</AuthenticationPubKeyInfo>
|
@@ -15,8 +16,9 @@
|
|
15
16
|
<ds:Modulus>AJ2/0OoIZydb9sgKbiwqDcwA0NtcUMIYi6GK7PqoRszu1uytGnxJjQhGt62kMslWvLgebUSwdq/T3YyGsa3KQeIGaUUn9iqyu3BoNOMdo2DLN4NdGMY1WR/HbYRKR3JHyURhTBKw27KScRRdKGl6jY+VcXcTKJL8PjXMQH5cD6Gz</ds:Modulus>
|
16
17
|
<ds:Exponent>AQAB</ds:Exponent>
|
17
18
|
</ds:RSAKeyValue>
|
19
|
+
<TimeStamp>2007-03-13T11:33:16.616Z</TimeStamp>
|
18
20
|
</PubKeyValue>
|
19
21
|
<EncryptionVersion>E002</EncryptionVersion>
|
20
22
|
</EncryptionPubKeyInfo>
|
21
23
|
<HostID>SIZBN001</HostID>
|
22
|
-
</HPBResponseOrderData>
|
24
|
+
</HPBResponseOrderData>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<h004:ebicsKeyManagementResponse xmlns:h004="urn:org:ebics:H004" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:org:ebics:H004 ebics_H004.xsd" Version="H004" Revision="1">
|
2
|
+
<h004:header authenticate="true">
|
3
|
+
<h004:static />
|
4
|
+
<h004:mutable>
|
5
|
+
<h004:OrderID>B004</h004:OrderID>
|
6
|
+
<h004:ReturnCode>000000</h004:ReturnCode>
|
7
|
+
<h004:ReportText>[EBICS_OK] OK</h004:ReportText>
|
8
|
+
</h004:mutable>
|
9
|
+
</h004:header>
|
10
|
+
<h004:body>
|
11
|
+
<h004:ReturnCode authenticate="true">000000</h004:ReturnCode>
|
12
|
+
</h004:body>
|
13
|
+
</h004:ebicsKeyManagementResponse>
|
@@ -5,7 +5,7 @@ RSpec.describe Epics::ParseEbics do
|
|
5
5
|
builder.adapter :test, Faraday::Adapter::Test::Stubs.new do |stub|
|
6
6
|
stub.post('/business_nok') {[ 200, {}, File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'ebics_business_nok.xml') ) ]}
|
7
7
|
stub.post('/technical_nok') {[ 200, {}, File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'ebics_technical_nok.xml') ) ]}
|
8
|
-
stub.post('/ok') {[ 200, {}, File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', '
|
8
|
+
stub.post('/ok') {[ 200, {}, File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'hpb_response_ebics_ns.xml') ) ]}
|
9
9
|
end
|
10
10
|
builder.use Epics::ParseEbics
|
11
11
|
end
|
data/spec/response_spec.rb
CHANGED
@@ -10,6 +10,22 @@ RSpec.describe Epics::Response do
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
describe '#technical_code' do
|
14
|
+
let(:ebics_response) { File.read('spec/fixtures/xml/ini_response_h004_ns.xml') }
|
15
|
+
|
16
|
+
it 'is extracted from the response' do
|
17
|
+
expect(subject.technical_code).to eq("000000")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#business_code' do
|
22
|
+
let(:ebics_response) { File.read('spec/fixtures/xml/ebics_business_nok.xml') }
|
23
|
+
|
24
|
+
it 'is extracted from the response' do
|
25
|
+
expect(subject.business_code).to eq("091116")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
13
29
|
describe '#signature_valid?' do
|
14
30
|
let(:ebics_response) { File.read('spec/fixtures/xml/upload_init_response.xml') }
|
15
31
|
|
@@ -19,7 +35,7 @@ RSpec.describe Epics::Response do
|
|
19
35
|
end
|
20
36
|
|
21
37
|
describe '#public_digest_valid?' do
|
22
|
-
let(:ebics_response) { File.read('spec/fixtures/xml/
|
38
|
+
let(:ebics_response) { File.read('spec/fixtures/xml/hpb_response_ebics_ns.xml') }
|
23
39
|
|
24
40
|
it "checks if //xmlns:EncryptionPubKeyDigest matches the user encryption key" do
|
25
41
|
expect(subject.public_digest_valid?).to be(true)
|
@@ -27,7 +43,7 @@ RSpec.describe Epics::Response do
|
|
27
43
|
end
|
28
44
|
|
29
45
|
describe 'order_data' do
|
30
|
-
let(:ebics_response) { File.read('spec/fixtures/xml/
|
46
|
+
let(:ebics_response) { File.read('spec/fixtures/xml/hpb_response_ebics_ns.xml') }
|
31
47
|
let(:order_data) { File.read('spec/fixtures/xml/hpb_response_order.xml') }
|
32
48
|
|
33
49
|
it "retrieves the decrypted order data" do
|
@@ -35,6 +51,13 @@ RSpec.describe Epics::Response do
|
|
35
51
|
end
|
36
52
|
end
|
37
53
|
|
54
|
+
describe '#report_text' do
|
55
|
+
let(:ebics_response) { File.read('spec/fixtures/xml/sta_response.xml') }
|
56
|
+
it 'pulls the report_text from the response' do
|
57
|
+
expect(subject.report_text).to eq('[EBICS_OK] OK')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
38
61
|
describe '#transaction_id' do
|
39
62
|
let(:ebics_response) { File.read('spec/fixtures/xml/sta_response.xml') }
|
40
63
|
it 'pulls the transaction_id from the response' do
|
@@ -42,6 +65,13 @@ RSpec.describe Epics::Response do
|
|
42
65
|
end
|
43
66
|
end
|
44
67
|
|
68
|
+
describe '#order_id' do
|
69
|
+
let(:ebics_response) { File.read('spec/fixtures/xml/cd1_init_response.xml') }
|
70
|
+
it 'pulls the order_id from the response' do
|
71
|
+
expect(subject.order_id).to eq('N00L')
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
45
75
|
describe '#last_segment?' do
|
46
76
|
describe 'when its the last segement' do
|
47
77
|
let(:ebics_response) { File.read('spec/fixtures/xml/sta_response.xml') }
|
@@ -69,7 +99,7 @@ RSpec.describe Epics::Response do
|
|
69
99
|
end
|
70
100
|
|
71
101
|
describe 'when the response is not segemnted' do
|
72
|
-
let(:ebics_response) { File.read('spec/fixtures/xml/
|
102
|
+
let(:ebics_response) { File.read('spec/fixtures/xml/hpb_response_ebics_ns.xml') }
|
73
103
|
|
74
104
|
it 'will be false' do
|
75
105
|
expect(subject.segmented?).to be(false)
|
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.3.
|
4
|
+
version: 1.3.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: 2015-08-
|
11
|
+
date: 2015-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -224,11 +224,12 @@ files:
|
|
224
224
|
- spec/fixtures/xml/hia_request_order_data.xml
|
225
225
|
- spec/fixtures/xml/hpb.xml
|
226
226
|
- spec/fixtures/xml/hpb_request.xml
|
227
|
-
- spec/fixtures/xml/
|
227
|
+
- spec/fixtures/xml/hpb_response_ebics_ns.xml
|
228
228
|
- spec/fixtures/xml/hpb_response_order.xml
|
229
229
|
- spec/fixtures/xml/hpb_response_order_without_ns.xml
|
230
230
|
- spec/fixtures/xml/htd_order_data.xml
|
231
231
|
- spec/fixtures/xml/ini.xml
|
232
|
+
- spec/fixtures/xml/ini_response_h004_ns.xml
|
232
233
|
- spec/fixtures/xml/signature_pub_key_order_data.xml
|
233
234
|
- spec/fixtures/xml/sta_response.xml
|
234
235
|
- spec/fixtures/xml/sta_response_continued.xml
|
@@ -294,7 +295,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
294
295
|
version: '0'
|
295
296
|
requirements: []
|
296
297
|
rubyforge_project:
|
297
|
-
rubygems_version: 2.4.
|
298
|
+
rubygems_version: 2.4.8
|
298
299
|
signing_key:
|
299
300
|
specification_version: 4
|
300
301
|
summary: a ruby implementation of the EBICS protocol
|
@@ -317,11 +318,12 @@ test_files:
|
|
317
318
|
- spec/fixtures/xml/hia_request_order_data.xml
|
318
319
|
- spec/fixtures/xml/hpb.xml
|
319
320
|
- spec/fixtures/xml/hpb_request.xml
|
320
|
-
- spec/fixtures/xml/
|
321
|
+
- spec/fixtures/xml/hpb_response_ebics_ns.xml
|
321
322
|
- spec/fixtures/xml/hpb_response_order.xml
|
322
323
|
- spec/fixtures/xml/hpb_response_order_without_ns.xml
|
323
324
|
- spec/fixtures/xml/htd_order_data.xml
|
324
325
|
- spec/fixtures/xml/ini.xml
|
326
|
+
- spec/fixtures/xml/ini_response_h004_ns.xml
|
325
327
|
- spec/fixtures/xml/signature_pub_key_order_data.xml
|
326
328
|
- spec/fixtures/xml/sta_response.xml
|
327
329
|
- spec/fixtures/xml/sta_response_continued.xml
|
@@ -1,21 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<ebicsKeyManagementResponse xmlns="http://www.ebics.org/H003" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Revision="1" Version="H003" xsi:schemaLocation="http://www.ebics.org/H003 http://www.ebics.org/H003/ebics_keymgmt_response.xsd">
|
3
|
-
<header authenticate="true">
|
4
|
-
<static/>
|
5
|
-
<mutable>
|
6
|
-
<ReturnCode>000000</ReturnCode>
|
7
|
-
<ReportText>[EBICS_OK] OK</ReportText>
|
8
|
-
</mutable>
|
9
|
-
</header>
|
10
|
-
<body>
|
11
|
-
<DataTransfer>
|
12
|
-
<DataEncryptionInfo authenticate="true">
|
13
|
-
<EncryptionPubKeyDigest Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" Version="E002">rwIxSUJAVEFDQ0sdYe+CybdspMllDG6ArNtdCzUbT1E=</EncryptionPubKeyDigest>
|
14
|
-
<TransactionKey>CPdd6ODXrCxHWpYrwS/5a3NIZ1R2SDscHHJSONc2I7g8ara7qv5Ra7H03W+336DPQLZQxH+EBRWdE2FQ1vrVTcypK6fkFarmO1dEtQt6Ka89AozC7aQMyp4yGl+zlF+XvFkJXZbRXgoEOPsgcG0xM6nKLXnr1ThYRFOoAasigLDGwqxliyhoR94F9dL7YB8Le/uZeRj78mNp4smkE5ZKKyPhwVx+0IW78YuVCSC2c2qbsMmm4evAvycdpLfuuoG4KVlNMIlvkKeBfMZFELcmeKKm85D2zPYkZ7cqG2IfAAp5qdS6K8P7RY4gtjUhOtP5mi8bZt/ZcjioUmIR9dAMnA==</TransactionKey>
|
15
|
-
</DataEncryptionInfo>
|
16
|
-
<OrderData>lJ/v1HvOYAZKTPkxULH4mOcUy01+EaAsxLzCPhtieAo9m5AtU5URdyBVfmclHbtWe3ELb02lR37bChynq0Esqpljxx7CiB+kl/bVs7XkNQQmtGPlh08O7ApJ7AHdKPFFvE+SM2OWpSwUrqJGtmyaU6s+RM66o/3Q0wvKi4y3+Q2jm8nkiWZpPfNt52g4ReE9Ge86o+L+EBOBgZm634L5Z/i6pq908mXBAklPdk1ERdEgWONaOeYYmB70FToplR1gINJEF2CnfAtD/wV+DuQFPDth+EWHqhe3a4xO0d9eJ55ou2QCYOPUC2g/qz1sp7GR74W7P5IWJdmnUEuPFsKJ6OvM+1V8S06jZGDa/QhUGDK8F3G/TMP09W1MsrlQTRr3YQ5H43+pMY7I6Jysze+X9OKZZTTpv4GmYm1USjmraGyMuPF3j9hrlmpttK+1gg2WzytCJO44YsZp9ckls8JNK4bT5uwTuomKZoRgmiIOTcMh4VP7V28TWj2XdF+T6rBFILTvQyXMOzvbe1kLwg2O31JDBdJ8X1fHCYJxKsIrYCSDPz4sha8h7QmHrCSFmjoXb+LUElnbLXZVRkY5/Dc73EM6Es3wAgjwSJK2asRqdqU0PhbS5qpIlgYKsNcb+Wes</OrderData>
|
17
|
-
</DataTransfer>
|
18
|
-
<ReturnCode authenticate="true">000000</ReturnCode>
|
19
|
-
<TimestampBankParameter authenticate="true">2009-06-16T17:56:05.698+02:00</TimestampBankParameter>
|
20
|
-
</body>
|
21
|
-
</ebicsKeyManagementResponse>
|