epics 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e99c6268999de95d2fdfcb15b8301be4d286de06
4
- data.tar.gz: 682e7d256cab820ca8484fdfe4dd8d87357042e2
2
+ SHA256:
3
+ metadata.gz: 88bb61ee0bf9d6697c2af9c3556306da1786c4cfdcccc75d441867deebe74dac
4
+ data.tar.gz: 85bd5ae7345b2714ad2f40fbc4552129827d8cf33713d24a33f49a96a9046f2c
5
5
  SHA512:
6
- metadata.gz: 12e343da135bd0b38e060bf0f9b5d046bd49596dd42188483b457f7d017863a418e9a6a5b32c0ecb8ffd1530c11a5629769c184362044019d0d9f26d69d61f10
7
- data.tar.gz: 8f6f9eaf6f37c9099f3dd5d6dedfedc7a94b6118c928842356bea811327b1a1141e5c47012c87691b5c33531fcf5c082da4bf209c4efb9e5670a83a94c555920
6
+ metadata.gz: fb5a8d5de536f07a33ba0d9562cc8d7d37d6c15abfb981f084770c2dffd15850b60ea92bee78ba913e11e715eda472771a157fc49853c1a17269cff400bd34c5
7
+ data.tar.gz: 730228d7a3c439b773e5c989a66bafd7f1e5efe12e9d14932e0e4f1b42e979c26a09c222b63fd3b3e821296c75b921bd95f9189f945a009ca7f1ae2e8241c497
@@ -1,3 +1,9 @@
1
+ ### 1.7.0
2
+
3
+ * [ENHANCEMNT] adds CDB (thanks to @romanlehnert)
4
+ * [BUGFIX] fixes CCS order type and attribute (thanks to @gadimbaylisahil)
5
+ * [BUGXI] make CDZ callable via client
6
+
1
7
  ### 1.6.0
2
8
 
3
9
  * [BUGFIX] allow unstreamable zipfile handling
data/README.md CHANGED
@@ -8,7 +8,7 @@ Communication Standard).
8
8
 
9
9
  The client supports the complete initialization process comprising INI, HIA and HPB including the
10
10
  INI letter generation. It offers support for the most common download and upload order types
11
- (STA HAA HTD HPD PTK HAC HKD C52 C53 C54 CD1 CDD CCT VMK B2B).
11
+ (STA HAA HTD HPD PTK HAC HKD C52 C53 C54 CD1 CDB CDD CCT VMK).
12
12
 
13
13
 
14
14
  ## Installation
@@ -166,6 +166,7 @@ puts e.STA('2014-09-01', '2014-09-11')
166
166
  ### Uploads
167
167
 
168
168
  * CD1 (Uploads a SEPA Direct Debit document of type COR1)
169
+ * CDB (Uploads a SEPA Direct Debit document of type B2B)
169
170
  * CDD (Uploads a SEPA Direct Debit document of type CORE)
170
171
  * CCT (Uploads a SEPA Credit document)
171
172
  * ... more coming soon
@@ -262,4 +263,4 @@ EPICS_VERIFY_SSL=false
262
263
 
263
264
 
264
265
  ------------
265
- 2014-2017 - built with love by [Railslove](http://railslove.com) and released under the [GNU LESSER GENERAL PUBLIC LICENSE](https://github.com/railslove/epics/blob/master/LICENSE.txt). We have built quite a number of FinTech products. If you need support we are happy to help. Please contact us at team@railslove.com.
266
+ 2014-2018 - built with love by [Railslove](http://railslove.com) and released under the [GNU LESSER GENERAL PUBLIC LICENSE](https://github.com/railslove/epics/blob/master/LICENSE.txt). We have built quite a number of FinTech products. If you need support we are happy to help. Please contact us at team@railslove.com.
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  STA HAA HTD HPD PKT HAC HKD C52 C53 C54
20
20
 
21
21
  And the following upload orders:
22
- CD1 CDD CCT B2B CDS CCS CDZ
22
+ CD1 CDD CCT CDB CDS CCS CDZ
23
23
  description
24
24
 
25
25
  spec.homepage = "https://github.com/railslove/epics"
@@ -1,6 +1,6 @@
1
1
  class Epics::CCS < Epics::CCT
2
2
  def order_attribute
3
- "DZHNN"
3
+ 'DZHNN'
4
4
  end
5
5
 
6
6
  def order_type
@@ -1,4 +1,12 @@
1
1
  class Epics::CCT < Epics::GenericUploadRequest
2
+ def order_attribute
3
+ 'OZHNN'
4
+ end
5
+
6
+ def order_type
7
+ 'CCT'
8
+ end
9
+
2
10
  def header
3
11
  Nokogiri::XML::Builder.new do |xml|
4
12
  xml.header(authenticate: true) {
@@ -10,8 +18,8 @@ class Epics::CCT < Epics::GenericUploadRequest
10
18
  xml.UserID user_id
11
19
  xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
12
20
  xml.OrderDetails {
13
- xml.OrderType 'CCT'
14
- xml.OrderAttribute 'OZHNN'
21
+ xml.OrderType order_type
22
+ xml.OrderAttribute order_attribute
15
23
  xml.StandardOrderParams
16
24
  }
17
25
  xml.BankPubKeyDigests {
@@ -127,6 +127,10 @@ class Epics::Client
127
127
  upload(Epics::CD1, document)
128
128
  end
129
129
 
130
+ def CDB(document)
131
+ upload(Epics::CDB, document)
132
+ end
133
+
130
134
  def CDD(document)
131
135
  upload(Epics::CDD, document)
132
136
  end
@@ -135,6 +139,10 @@ class Epics::Client
135
139
  upload(Epics::CDS, document)
136
140
  end
137
141
 
142
+ def CDZ(document)
143
+ upload(Epics::CDZ, document)
144
+ end
145
+
138
146
  def CCT(document)
139
147
  upload(Epics::CCT, document)
140
148
  end
@@ -1,3 +1,3 @@
1
1
  module Epics
2
- VERSION = "1.6.0"
2
+ VERSION = "1.7.0"
3
3
  end
@@ -88,7 +88,7 @@ RSpec.describe Epics::Client do
88
88
  end
89
89
 
90
90
  it 'extracts the accessible order types of a subscriber' do
91
- expect(subject.order_types).to match_array(%w(PTK HPD HTD STA HVD HPB HAA HVT HVU HVZ INI SPR PUB HIA HCA HSA HVE HVS CCS CCT CD1 CDD))
91
+ expect(subject.order_types).to match_array(%w(PTK HPD HTD STA HVD HPB HAA HVT HVU HVZ INI SPR PUB HIA HCA HSA HVE HVS CCS CCT CD1 CDB CDD))
92
92
  end
93
93
  end
94
94
 
@@ -130,6 +130,21 @@ RSpec.describe Epics::Client do
130
130
  end
131
131
  end
132
132
 
133
+
134
+ describe '#CDB' do
135
+ let(:cdb_document) { File.read(File.join(File.dirname(__FILE__), 'fixtures', 'xml', 'cdb.xml')) }
136
+ before do
137
+ stub_request(:post, "https://194.180.18.30/ebicsweb/ebicsweb")
138
+ .with(:body => %r[<TransactionPhase>Initialisation</TransactionPhase>])
139
+ .to_return(status: 200, body: File.read(File.join(File.dirname(__FILE__), 'fixtures', 'xml', 'cdb_init_response.xml')))
140
+ stub_request(:post, "https://194.180.18.30/ebicsweb/ebicsweb")
141
+ .with(:body => %r[<TransactionPhase>Transfer</TransactionPhase>])
142
+ .to_return(status: 200, body: File.read(File.join(File.dirname(__FILE__), 'fixtures', 'xml', 'cdb_transfer_response.xml')))
143
+ end
144
+
145
+ it { expect(subject.CDB(cdb_document)).to eq(["387B7BE88FE33B0F4B60AC64A63F18E2","N00L"]) }
146
+ end
147
+
133
148
  describe '#CD1' do
134
149
  let(:cd1_document) { File.read(File.join(File.dirname(__FILE__), 'fixtures', 'xml', 'cd1.xml')) }
135
150
  describe 'normal behaviour' do
@@ -0,0 +1,85 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <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">
3
+ <CstmrDrctDbtInitn>
4
+ <GrpHdr>
5
+ <MsgId>1434018161</MsgId>
6
+ <CreDtTm>2015-06-11T12:22:41+02:00</CreDtTm>
7
+ <NbOfTxs>1</NbOfTxs>
8
+ <CtrlSum>1.12</CtrlSum>
9
+ <InitgPty>
10
+ <Nm>Max Musterman</Nm>
11
+ </InitgPty>
12
+ </GrpHdr>
13
+ <PmtInf>
14
+ <PmtInfId>1434018161/1</PmtInfId>
15
+ <PmtMtd>DD</PmtMtd>
16
+ <BtchBookg>true</BtchBookg>
17
+ <NbOfTxs>1</NbOfTxs>
18
+ <CtrlSum>1.12</CtrlSum>
19
+ <PmtTpInf>
20
+ <SvcLvl>
21
+ <Cd>SEPA</Cd>
22
+ </SvcLvl>
23
+ <LclInstrm>
24
+ <Cd>B2B</Cd>
25
+ </LclInstrm>
26
+ <SeqTp>RCUR</SeqTp>
27
+ </PmtTpInf>
28
+ <ReqdColltnDt>2015-06-15</ReqdColltnDt>
29
+ <Cdtr>
30
+ <Nm>Max Mustermann</Nm>
31
+ </Cdtr>
32
+ <CdtrAcct>
33
+ <Id>
34
+ <IBAN>DE89370400440532013000</IBAN>
35
+ </Id>
36
+ </CdtrAcct>
37
+ <CdtrAgt>
38
+ <FinInstnId>
39
+ <BIC>COBADEFFXXX</BIC>
40
+ </FinInstnId>
41
+ </CdtrAgt>
42
+ <ChrgBr>SLEV</ChrgBr>
43
+ <CdtrSchmeId>
44
+ <Id>
45
+ <PrvtId>
46
+ <Othr>
47
+ <Id>DE98ZZZ09999999999</Id>
48
+ <SchmeNm>
49
+ <Prtry>SEPA</Prtry>
50
+ </SchmeNm>
51
+ </Othr>
52
+ </PrvtId>
53
+ </Id>
54
+ </CdtrSchmeId>
55
+ <DrctDbtTxInf>
56
+ <PmtId>
57
+ <EndToEndId>86</EndToEndId>
58
+ </PmtId>
59
+ <InstdAmt Ccy="EUR">1.12</InstdAmt>
60
+ <DrctDbtTx>
61
+ <MndtRltdInf>
62
+ <MndtId>M123123</MndtId>
63
+ <DtOfSgntr>2015-06-01</DtOfSgntr>
64
+ </MndtRltdInf>
65
+ </DrctDbtTx>
66
+ <DbtrAgt>
67
+ <FinInstnId>
68
+ <BIC>BKAUATWW</BIC>
69
+ </FinInstnId>
70
+ </DbtrAgt>
71
+ <Dbtr>
72
+ <Nm>Maria Musterfrau</Nm>
73
+ </Dbtr>
74
+ <DbtrAcct>
75
+ <Id>
76
+ <IBAN>AT611904300234573201</IBAN>
77
+ </Id>
78
+ </DbtrAcct>
79
+ <RmtInf>
80
+ <Ustrd>Purpose</Ustrd>
81
+ </RmtInf>
82
+ </DrctDbtTxInf>
83
+ </PmtInf>
84
+ </CstmrDrctDbtInitn>
85
+ </Document>
@@ -0,0 +1,31 @@
1
+ <ebicsResponse Revision="1" Version="H004" xsi:schemaLocation="urn:org:ebics:H004 ebics_response_H004.xsd" xmlns="urn:org:ebics:H004" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
2
+ <header authenticate="true">
3
+ <static>
4
+ <TransactionID>387B7BE88FE33B0F4B60AC64A63F18E2</TransactionID>
5
+ </static>
6
+ <mutable>
7
+ <TransactionPhase>Initialisation</TransactionPhase>
8
+ <OrderID>N00L</OrderID>
9
+ <ReturnCode>000000</ReturnCode>
10
+ <ReportText>[EBICS_OK] OK</ReportText>
11
+ </mutable>
12
+ </header>
13
+ <AuthSignature>
14
+ <ds:SignedInfo>
15
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
16
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
17
+ <ds:Reference URI="#xpointer(//*[@authenticate='true'])">
18
+ <ds:Transforms>
19
+ <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
20
+ </ds:Transforms>
21
+ <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
22
+ <ds:DigestValue>hSf/fZURBW6ihKUUZDMRpqc3kloVZZRjw+DTBxjS7AM=</ds:DigestValue>
23
+ </ds:Reference>
24
+ </ds:SignedInfo>
25
+ <ds:SignatureValue>IFHzo6jch33gA0Ovxh4VWtAwJOJRdxffMy7Yi+a+UUWPM/ekNqcewCWxgjbcWgD/LiH6eQc58iKcZdNKpaKfplQ09CJi1VBry5sd97i4tlCAhoM95JTrJjp2O6PhswAo+a6dpuXmA11u57BK0/nHENMIh4+Qw3aGszn21Ft8qwo=</ds:SignatureValue>
26
+ </AuthSignature>
27
+ <body>
28
+ <ReturnCode authenticate="true">000000</ReturnCode>
29
+ <TimestampBankParameter authenticate="true">2007-10-19T14:58:39.467Z</TimestampBankParameter>
30
+ </body>
31
+ </ebicsResponse>
@@ -0,0 +1,32 @@
1
+ <ebicsResponse Revision="1" Version="H004" xsi:schemaLocation="urn:org:ebics:H004 ebics_response_H004.xsd" xmlns="urn:org:ebics:H004" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
2
+ <header authenticate="true">
3
+ <static>
4
+ <TransactionID>387B7BE88FE33B0F4B60AC64A63F18E2</TransactionID>
5
+ </static>
6
+ <mutable>
7
+ <TransactionPhase>Transfer</TransactionPhase>
8
+ <SegmentNumber lastSegment="true">1</SegmentNumber>
9
+ <OrderID>N00L</OrderID>
10
+ <ReturnCode>000000</ReturnCode>
11
+ <ReportText>[EBICS_OK] OK</ReportText>
12
+ </mutable>
13
+ </header>
14
+ <AuthSignature>
15
+ <ds:SignedInfo>
16
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
17
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
18
+ <ds:Reference URI="#xpointer(//*[@authenticate='true'])">
19
+ <ds:Transforms>
20
+ <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
21
+ </ds:Transforms>
22
+ <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
23
+ <ds:DigestValue></ds:DigestValue>
24
+ </ds:Reference>
25
+ </ds:SignedInfo>
26
+ <ds:SignatureValue></ds:SignatureValue>
27
+ </AuthSignature>
28
+ <body>
29
+ <ReturnCode authenticate="true">000000</ReturnCode>
30
+ <TimestampBankParameter authenticate="true">2007-10-19T14:58:39.467Z</TimestampBankParameter>
31
+ </body>
32
+ </ebicsResponse>
@@ -133,6 +133,12 @@
133
133
  <Description>CD1</Description>
134
134
  <NumSigRequired>1</NumSigRequired>
135
135
  </OrderInfo>
136
+ <OrderInfo>
137
+ <OrderType>CDB</OrderType>
138
+ <TransferType>Upload</TransferType>
139
+ <Description>CDB</Description>
140
+ <NumSigRequired>1</NumSigRequired>
141
+ </OrderInfo>
136
142
  <OrderInfo>
137
143
  <OrderType>CDD</OrderType>
138
144
  <TransferType>Upload</TransferType>
@@ -147,7 +153,7 @@
147
153
  <OrderTypes>PTK HPD HTD STA HVD HPB HAA HVT HVU HVZ</OrderTypes>
148
154
  </Permission>
149
155
  <Permission AuthorisationLevel="E">
150
- <OrderTypes>INI SPR PUB HIA HCA HSA HVE HVS CCS CCT CD1 CDD</OrderTypes>
156
+ <OrderTypes>INI SPR PUB HIA HCA HSA HVE HVS CCS CCT CD1 CDB CDD</OrderTypes>
151
157
  </Permission>
152
158
  </UserInfo>
153
- </HTDResponseOrderData>
159
+ </HTDResponseOrderData>
@@ -0,0 +1,21 @@
1
+ RSpec.describe Epics::CCS do
2
+
3
+ let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), '..', 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
4
+ let(:document) { File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'cd1.xml') ) }
5
+ subject { described_class.new(client, document) }
6
+
7
+ describe 'order attributes' do
8
+ it { expect(subject.header.to_s).to include('<OrderAttribute>DZHNN</OrderAttribute>') }
9
+ it { expect(subject.header.to_s).to include('<OrderType>CCS</OrderType>') }
10
+ end
11
+
12
+ describe '#to_xml' do
13
+ specify { expect(subject.to_xml).to be_a_valid_ebics_doc }
14
+ end
15
+
16
+ describe '#to_transfer_xml' do
17
+ before { subject.transaction_id = SecureRandom.hex(16) }
18
+
19
+ specify { expect(subject.to_transfer_xml).to be_a_valid_ebics_doc }
20
+ end
21
+ end
@@ -4,6 +4,11 @@ RSpec.describe Epics::CCT do
4
4
  let(:document) { File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'cd1.xml') ) }
5
5
  subject { described_class.new(client, document) }
6
6
 
7
+ describe 'order attributes' do
8
+ it { expect(subject.header.to_s).to include('<OrderAttribute>OZHNN</OrderAttribute>') }
9
+ it { expect(subject.header.to_s).to include('<OrderType>CCT</OrderType>') }
10
+ end
11
+
7
12
  describe '#to_xml' do
8
13
  specify { expect(subject.to_xml).to be_a_valid_ebics_doc }
9
14
  end
@@ -13,5 +18,4 @@ RSpec.describe Epics::CCT do
13
18
 
14
19
  specify { expect(subject.to_transfer_xml).to be_a_valid_ebics_doc }
15
20
  end
16
-
17
- end
21
+ end
@@ -1,7 +1,7 @@
1
1
  RSpec.describe Epics::CDB do
2
2
 
3
3
  let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), '..', 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
4
- let(:document) { File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'cd1.xml') ) }
4
+ let(:document) { File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'cdb.xml') ) }
5
5
  subject { described_class.new(client, document) }
6
6
 
7
7
  describe '#to_xml' do
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.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Brillert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-16 00:00:00.000000000 Z
11
+ date: 2018-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -146,7 +146,7 @@ description: |2
146
146
  STA HAA HTD HPD PKT HAC HKD C52 C53 C54
147
147
 
148
148
  And the following upload orders:
149
- CD1 CDD CCT B2B CDS CCS CDZ
149
+ CD1 CDD CCT CDB CDS CCS CDZ
150
150
  email:
151
151
  - lars@railslove.com
152
152
  executables: []
@@ -212,6 +212,9 @@ files:
212
212
  - spec/fixtures/xml/cd1.xml
213
213
  - spec/fixtures/xml/cd1_init_response.xml
214
214
  - spec/fixtures/xml/cd1_transfer_response.xml
215
+ - spec/fixtures/xml/cdb.xml
216
+ - spec/fixtures/xml/cdb_init_response.xml
217
+ - spec/fixtures/xml/cdb_transfer_response.xml
215
218
  - spec/fixtures/xml/ebics_business_nok.xml
216
219
  - spec/fixtures/xml/ebics_technical_nok.xml
217
220
  - spec/fixtures/xml/haa.xml
@@ -242,6 +245,7 @@ files:
242
245
  - spec/orders/c52_spec.rb
243
246
  - spec/orders/c53_spec.rb
244
247
  - spec/orders/c54_spec.rb
248
+ - spec/orders/ccs_spec.rb
245
249
  - spec/orders/cct_spec.rb
246
250
  - spec/orders/cd1_spec.rb
247
251
  - spec/orders/cdb_spec.rb
@@ -298,7 +302,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
298
302
  version: '0'
299
303
  requirements: []
300
304
  rubyforge_project:
301
- rubygems_version: 2.5.1
305
+ rubygems_version: 2.7.6
302
306
  signing_key:
303
307
  specification_version: 4
304
308
  summary: a ruby implementation of the EBICS protocol
@@ -316,6 +320,9 @@ test_files:
316
320
  - spec/fixtures/xml/cd1.xml
317
321
  - spec/fixtures/xml/cd1_init_response.xml
318
322
  - spec/fixtures/xml/cd1_transfer_response.xml
323
+ - spec/fixtures/xml/cdb.xml
324
+ - spec/fixtures/xml/cdb_init_response.xml
325
+ - spec/fixtures/xml/cdb_transfer_response.xml
319
326
  - spec/fixtures/xml/ebics_business_nok.xml
320
327
  - spec/fixtures/xml/ebics_technical_nok.xml
321
328
  - spec/fixtures/xml/haa.xml
@@ -346,6 +353,7 @@ test_files:
346
353
  - spec/orders/c52_spec.rb
347
354
  - spec/orders/c53_spec.rb
348
355
  - spec/orders/c54_spec.rb
356
+ - spec/orders/ccs_spec.rb
349
357
  - spec/orders/cct_spec.rb
350
358
  - spec/orders/cd1_spec.rb
351
359
  - spec/orders/cdb_spec.rb