buckaruby 1.4.0 → 1.5.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ab1013d3e02cc89d5b23dd6ae7add4b03b35a4a78074ff7f7e73933eef6ac08
4
- data.tar.gz: 5091ec7ec11e9239e883438802f09771fbc1bcc0041408b03bf522462ea96882
3
+ metadata.gz: '0919fe881e55079692ccd64dc45cae08ce54073ec33e2176b0bbfada27a333de'
4
+ data.tar.gz: b4b3a163d7365c76191d6b7988d82a40f50686adb318dac85f37f2baca9cae10
5
5
  SHA512:
6
- metadata.gz: ed0d306e8879e68be60de01d0bac9c3f9644ebd64fa80a2d774db697c166b035b31c59edc91b8674fcc8a5fa5d4ca31725331ae03b63e52b2c5615ac6c147a55
7
- data.tar.gz: 87274e74e76ab2772420acbf89919d74b1adc5f621ff0f40e077dcc2283f2863d2be53f63da91419e54dd52e863756e6be5e7120819e95b12e230c9b91972b21
6
+ metadata.gz: f9d4e71c901fccf8fcedc932e1c7c7e0086dffad4d6611dfc45343a0b62f5ce9c2f8bff764654be3e56006baccb78225fb97e03b1bb53c86b5f1bb1bc7839120
7
+ data.tar.gz: 5a54bc947866b1973a72023dcf3092850df0d9379b03eda9a3f5e4922f93418cae8be615f03d66804c9a6ea554bb110164ca59d7a57dd549b9705b1335e30b48
@@ -5,8 +5,7 @@ before_install:
5
5
  - gem update --system
6
6
  - gem install bundler -v '< 2'
7
7
  rvm:
8
- - 2.3.8
9
- - 2.4.9
8
+ - 2.4.10
10
9
  - 2.5.8
11
10
  - 2.6.6
12
- - 2.7.1
11
+ - 2.7.2
@@ -1,10 +1,14 @@
1
1
  # Buckaruby changelog
2
2
 
3
+ ## 1.5.0 (2020-11-17)
4
+
5
+ - Add payment method Sofort.
6
+
3
7
  ## 1.4.0 (2020-04-06)
4
8
 
5
9
  - Add `payment_methods` to retrieve all payment methods enabled by Buckaroo and supported by this library.
6
10
  - Add `specify_transaction` to get a specification for setting up a transaction.
7
- - Fix calcuating the signature for long responses and indexed fields.
11
+ - Fix calculating the signature for long responses and indexed fields.
8
12
 
9
13
  ## 1.3.1 (2019-12-04)
10
14
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- buckaruby (1.4.0)
4
+ buckaruby (1.5.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -11,7 +11,7 @@ GEM
11
11
  ast (2.4.0)
12
12
  crack (0.4.3)
13
13
  safe_yaml (~> 1.0.0)
14
- diff-lcs (1.3)
14
+ diff-lcs (1.4.4)
15
15
  hashdiff (1.0.0)
16
16
  jaro_winkler (1.5.4)
17
17
  parallel (1.19.1)
@@ -21,19 +21,19 @@ GEM
21
21
  rainbow (3.0.0)
22
22
  rake (12.3.3)
23
23
  rexml (3.2.4)
24
- rspec (3.8.0)
25
- rspec-core (~> 3.8.0)
26
- rspec-expectations (~> 3.8.0)
27
- rspec-mocks (~> 3.8.0)
28
- rspec-core (3.8.2)
29
- rspec-support (~> 3.8.0)
30
- rspec-expectations (3.8.4)
24
+ rspec (3.10.0)
25
+ rspec-core (~> 3.10.0)
26
+ rspec-expectations (~> 3.10.0)
27
+ rspec-mocks (~> 3.10.0)
28
+ rspec-core (3.10.0)
29
+ rspec-support (~> 3.10.0)
30
+ rspec-expectations (3.10.0)
31
31
  diff-lcs (>= 1.2.0, < 2.0)
32
- rspec-support (~> 3.8.0)
33
- rspec-mocks (3.8.1)
32
+ rspec-support (~> 3.10.0)
33
+ rspec-mocks (3.10.0)
34
34
  diff-lcs (>= 1.2.0, < 2.0)
35
- rspec-support (~> 3.8.0)
36
- rspec-support (3.8.2)
35
+ rspec-support (~> 3.10.0)
36
+ rspec-support (3.10.0)
37
37
  rubocop (0.81.0)
38
38
  jaro_winkler (~> 1.5.1)
39
39
  parallel (~> 1.10)
@@ -4,8 +4,10 @@ require_relative 'support/case_insensitive_hash'
4
4
 
5
5
  module Buckaruby
6
6
  # Map NVP fields to hashes and multiple values (with index) to arrays.
7
- class FieldMapper
8
- def self.map_fields(params, prefix)
7
+ module FieldMapper
8
+ module_function
9
+
10
+ def map_fields(params, prefix)
9
11
  results = []
10
12
  index = 1
11
13
 
@@ -22,7 +22,7 @@ module Buckaruby
22
22
  valid_payment_methods = [
23
23
  PaymentMethod::IDEAL, PaymentMethod::IDEAL_PROCESSING, PaymentMethod::VISA, PaymentMethod::MASTER_CARD,
24
24
  PaymentMethod::MAESTRO, PaymentMethod::AMERICAN_EXPRESS, PaymentMethod::SEPA_DIRECT_DEBIT,
25
- PaymentMethod::PAYPAL, PaymentMethod::BANCONTACT_MISTER_CASH
25
+ PaymentMethod::PAYPAL, PaymentMethod::BANCONTACT_MISTER_CASH, PaymentMethod::SOFORT
26
26
  ]
27
27
 
28
28
  response = execute_request(:specify_transaction)
@@ -173,7 +173,7 @@ module Buckaruby
173
173
  valid_payment_methods = [
174
174
  PaymentMethod::IDEAL, PaymentMethod::IDEAL_PROCESSING, PaymentMethod::VISA, PaymentMethod::MASTER_CARD,
175
175
  PaymentMethod::MAESTRO, PaymentMethod::AMERICAN_EXPRESS, PaymentMethod::SEPA_DIRECT_DEBIT,
176
- PaymentMethod::PAYPAL, PaymentMethod::BANCONTACT_MISTER_CASH
176
+ PaymentMethod::PAYPAL, PaymentMethod::BANCONTACT_MISTER_CASH, PaymentMethod::SOFORT
177
177
  ]
178
178
  validate_payment_method!(options, valid_payment_methods)
179
179
 
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Buckaruby
4
4
  # Helper for calculating the IBAN for a given account number, bank code and country code.
5
- class Iban
6
- def self.calculate_iban(account_number, bank_code, country_code = "NL")
5
+ module Iban
6
+ module_function
7
+
8
+ def calculate_iban(account_number, bank_code, country_code = "NL")
7
9
  if account_number.nil? || account_number.to_s.empty?
8
10
  raise ArgumentError, "Invalid account number"
9
11
  end
@@ -8,6 +8,7 @@ module Buckaruby
8
8
  SEPA_DIRECT_DEBIT = "sepadirectdebit"
9
9
  PAYPAL = "paypal"
10
10
  BANCONTACT_MISTER_CASH = "bancontactmrcash"
11
+ SOFORT = "sofortueberweisung"
11
12
  TRANSFER = "transfer"
12
13
 
13
14
  # Credit cards
@@ -22,19 +22,7 @@ module Buckaruby
22
22
  end
23
23
 
24
24
  def status
25
- # See http://support.buckaroo.nl/index.php/Statuscodes
26
- case params[:brq_statuscode]
27
- when '190'
28
- TransactionStatus::SUCCESS
29
- when '490', '491', '492'
30
- TransactionStatus::FAILED
31
- when '690'
32
- TransactionStatus::REJECTED
33
- when '790', '791', '792', '793'
34
- TransactionStatus::PENDING
35
- when '890', '891'
36
- TransactionStatus::CANCELLED
37
- end
25
+ TransactionStatus.parse(params[:brq_statuscode])
38
26
  end
39
27
 
40
28
  def timestamp
@@ -85,7 +73,7 @@ module Buckaruby
85
73
  end
86
74
 
87
75
  def verify_signature!(response, config)
88
- if params[:brq_apiresult].nil? || !params[:brq_apiresult].casecmp("fail").zero?
76
+ if params[:brq_apiresult].nil? || params[:brq_apiresult].casecmp("fail") != 0
89
77
  sent_signature = params[:brq_signature]
90
78
  generated_signature = Signature.generate_signature(response, config)
91
79
 
@@ -176,76 +164,7 @@ module Buckaruby
176
164
  end
177
165
 
178
166
  def transaction_type
179
- if params[:brq_transaction_type] && !params[:brq_transaction_type].empty?
180
- # See http://support.buckaroo.nl/index.php/Transactietypes
181
- case params[:brq_transaction_type]
182
- when 'C021', 'V021', # iDEAL
183
- 'C002', 'C004', 'C005', # (SEPA) Direct Debit
184
- 'V010', 'V014', # PayPal
185
- 'C090', 'V090', # Bancontact
186
- 'C001', # Transfer
187
-
188
- 'C044', 'C192', 'C283', 'C293', 'C318', 'C345',
189
- 'C880', 'C963', 'V002', 'V032', 'V038', 'V044',
190
- 'V192', 'V283', 'V293', 'V313', 'V318', 'V345',
191
- 'V696', # Visa
192
-
193
- 'C043', 'C089', 'C273', 'C303', 'C328', 'C355',
194
- 'C876', 'C969', 'V001', 'V031', 'V037', 'V043',
195
- 'V089', 'V273', 'V303', 'V328', 'V355', 'V702', # MasterCard
196
-
197
- 'C046', 'C251', 'C288', 'C308', 'C333', 'C872',
198
- 'C972', 'V034', 'V040', 'V046', 'V094', 'V245',
199
- 'V288', 'V308', 'V333', 'V705', # Maestro
200
-
201
- 'V003', 'V030', 'V036', 'V042' # American Express
202
-
203
- # Check the recurring flag to detect a normal or recurring transaction.
204
- if params[:brq_recurring] && params[:brq_recurring].casecmp("true").zero?
205
- TransactionType::PAYMENT_RECURRENT
206
- else
207
- TransactionType::PAYMENT
208
- end
209
- when 'C121', # iDEAL
210
- 'C102', 'C500', # (SEPA) Direct Debit
211
- 'V110', # PayPal
212
- 'C092', 'V092', # Bancontact
213
- 'C101', # Transfer
214
-
215
- 'C080', 'C194', 'C281', 'C290', 'C315', 'C342',
216
- 'C881', 'C961', 'V068', 'V074', 'V080', 'V102',
217
- 'V194', 'V281', 'V290', 'V315', 'V342', 'V694', # Visa
218
-
219
- 'C079', 'C197', 'C300', 'C325', 'C352', 'C371',
220
- 'C877', 'C967', 'V067', 'V073', 'V079', 'V101',
221
- 'V149', 'V197', 'V300', 'V325', 'V352', 'V371',
222
- 'V700', # MasterCard
223
-
224
- 'C082', 'C252', 'C286', 'C305', 'C330', 'C873',
225
- 'C970', 'V070', 'V076', 'V082', 'V246', 'V286',
226
- 'V305', 'V330', 'V703', # Maestro
227
-
228
- 'V066', 'V072', 'V078', 'V103' # American Express
229
- TransactionType::REFUND
230
- when 'C501', 'C502', 'C562', # (SEPA) Direct Debit
231
- 'V111', # PayPal
232
-
233
- 'C554', 'C593', 'C882', 'V132', 'V138', 'V144',
234
- 'V544', 'V592', # Visa
235
-
236
- 'C553', 'C589', 'C878', 'V131', 'V137', 'V143',
237
- 'V543', 'V589', # MasterCard
238
-
239
- 'C546', 'C551', 'C874', 'V134', 'V140', 'V146',
240
- 'V545', 'V546', # Maestro
241
-
242
- 'V130', 'V136', 'V142' # American Express
243
- TransactionType::REVERSAL
244
- end
245
- else
246
- # Fallback when transaction type is not known (cancelling credit card)
247
- TransactionType::PAYMENT
248
- end
167
+ TransactionType.parse(params[:brq_transaction_type], params[:brq_recurring])
249
168
  end
250
169
 
251
170
  def transaction_status
@@ -5,8 +5,10 @@ require 'digest'
5
5
  module Buckaruby
6
6
  # Calculate a signature based on the parameters of the payment request or response.
7
7
  # -> see BPE 3.0 Gateway NVP, chapter 4 'Digital Signature'
8
- class Signature
9
- def self.generate_signature(params, config)
8
+ module Signature
9
+ module_function
10
+
11
+ def generate_signature(params, config)
10
12
  case config.hash_method
11
13
  when :sha1
12
14
  Digest::SHA1.hexdigest(generate_signature_string(params, config.secret))
@@ -19,7 +21,7 @@ module Buckaruby
19
21
  end
20
22
  end
21
23
 
22
- def self.generate_signature_string(params, secret)
24
+ def generate_signature_string(params, secret)
23
25
  sign_params = params.select { |key, _value| key.to_s.upcase.start_with?("BRQ_", "ADD_", "CUST_") && key.to_s.casecmp("BRQ_SIGNATURE").nonzero? }
24
26
  sign_params = order_signature_params(sign_params)
25
27
 
@@ -36,7 +38,7 @@ module Buckaruby
36
38
  # a_a, a0, a0a, a1a, aaA, aab, aba, aCa
37
39
  CHAR_ORDER = "_01234567890abcdefghijklmnopqrstuvwxyz"
38
40
 
39
- def self.order_signature_params(params)
41
+ def order_signature_params(params)
40
42
  params.sort_by do |key, _value|
41
43
  key.to_s.downcase.each_char.map { |c| CHAR_ORDER.index(c) }
42
44
  end
@@ -1,11 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Buckaruby
4
+ # Parses the transaction status code from Buckaroo.
4
5
  module TransactionStatus
5
6
  SUCCESS = 1
6
7
  FAILED = 2
7
8
  REJECTED = 3
8
9
  CANCELLED = 4
9
10
  PENDING = 5
11
+
12
+ module_function
13
+
14
+ # See https://support.buckaroo.nl/categorie%C3%ABn/transacties/status
15
+ def parse(brq_statuscode)
16
+ case brq_statuscode
17
+ when '190'
18
+ TransactionStatus::SUCCESS
19
+ when '490', '491', '492'
20
+ TransactionStatus::FAILED
21
+ when '690'
22
+ TransactionStatus::REJECTED
23
+ when '790', '791', '792', '793'
24
+ TransactionStatus::PENDING
25
+ when '890', '891'
26
+ TransactionStatus::CANCELLED
27
+ end
28
+ end
10
29
  end
11
30
  end
@@ -1,10 +1,89 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Buckaruby
4
+ # Parses the transaction type from Buckaroo.
4
5
  module TransactionType
5
6
  PAYMENT = 1
6
7
  PAYMENT_RECURRENT = 2
7
8
  REFUND = 3
8
9
  REVERSAL = 4
10
+
11
+ module_function
12
+
13
+ # See https://support.buckaroo.nl/categorie%C3%ABn/integratie/transactietypes-overzicht
14
+ def parse(brq_transaction_type, brq_recurring)
15
+ if brq_transaction_type && !brq_transaction_type.empty?
16
+ case brq_transaction_type
17
+ when 'C021', 'V021', # iDEAL
18
+ 'C002', 'C004', 'C005', # (SEPA) Direct Debit
19
+ 'V010', 'V014', # PayPal
20
+ 'C090', 'V090', # Bancontact
21
+ 'N074', 'C075', # Sofort
22
+ 'C001', # Transfer
23
+
24
+ 'C044', 'C192', 'C283', 'C293', 'C318', 'C345',
25
+ 'C880', 'C963', 'V002', 'V032', 'V038', 'V044',
26
+ 'V192', 'V283', 'V293', 'V313', 'V318', 'V345',
27
+ 'V696', # Visa
28
+
29
+ 'C043', 'C089', 'C273', 'C303', 'C328', 'C355',
30
+ 'C876', 'C969', 'V001', 'V031', 'V037', 'V043',
31
+ 'V089', 'V273', 'V303', 'V328', 'V355', 'V702', # MasterCard
32
+
33
+ 'C046', 'C251', 'C288', 'C308', 'C333', 'C872',
34
+ 'C972', 'V034', 'V040', 'V046', 'V094', 'V245',
35
+ 'V288', 'V308', 'V333', 'V705', # Maestro
36
+
37
+ 'V003', 'V030', 'V036', 'V042' # American Express
38
+
39
+ # Check the recurring flag to detect a normal or recurring transaction.
40
+ if brq_recurring && brq_recurring.casecmp("true").zero?
41
+ TransactionType::PAYMENT_RECURRENT
42
+ else
43
+ TransactionType::PAYMENT
44
+ end
45
+ when 'C121', # iDEAL
46
+ 'C102', 'C500', # (SEPA) Direct Debit
47
+ 'V110', # PayPal
48
+ 'C092', 'V092', # Bancontact
49
+ 'N540', 'C543', # Sofort
50
+ 'C101', # Transfer
51
+
52
+ 'C080', 'C194', 'C281', 'C290', 'C315', 'C342',
53
+ 'C881', 'C961', 'V068', 'V074', 'V080', 'V102',
54
+ 'V194', 'V281', 'V290', 'V315', 'V342', 'V694', # Visa
55
+
56
+ 'C079', 'C197', 'C300', 'C325', 'C352', 'C371',
57
+ 'C877', 'C967', 'V067', 'V073', 'V079', 'V101',
58
+ 'V149', 'V197', 'V300', 'V325', 'V352', 'V371',
59
+ 'V700', # MasterCard
60
+
61
+ 'C082', 'C252', 'C286', 'C305', 'C330', 'C873',
62
+ 'C970', 'V070', 'V076', 'V082', 'V246', 'V286',
63
+ 'V305', 'V330', 'V703', # Maestro
64
+
65
+ 'V066', 'V072', 'V078', 'V103' # American Express
66
+ TransactionType::REFUND
67
+ when 'C501', 'C502', 'C562', # (SEPA) Direct Debit
68
+ 'V111', # PayPal
69
+ 'C544', # Sofort
70
+
71
+ 'C554', 'C593', 'C882', 'V132', 'V138', 'V144',
72
+ 'V544', 'V592', # Visa
73
+
74
+ 'C553', 'C589', 'C878', 'V131', 'V137', 'V143',
75
+ 'V543', 'V589', # MasterCard
76
+
77
+ 'C546', 'C551', 'C874', 'V134', 'V140', 'V146',
78
+ 'V545', 'V546', # Maestro
79
+
80
+ 'V130', 'V136', 'V142' # American Express
81
+ TransactionType::REVERSAL
82
+ end
83
+ else
84
+ # Fallback when transaction type is not known (e.g. cancelling credit card)
85
+ TransactionType::PAYMENT
86
+ end
87
+ end
9
88
  end
10
89
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Buckaruby
4
- VERSION = "1.4.0"
4
+ VERSION = "1.5.0"
5
5
  end
@@ -218,6 +218,16 @@ RSpec.describe Buckaruby::Gateway do
218
218
  expect(response.to_h).to be_an_instance_of(Hash)
219
219
  end
220
220
 
221
+ it 'initiates a transaction for payment method sofort' do
222
+ response = subject.setup_transaction(amount: 10, payment_method: Buckaruby::PaymentMethod::SOFORT, invoicenumber: "12345", return_url: "http://www.return.url/")
223
+ expect(response).to be_an_instance_of(Buckaruby::SetupTransactionResponse)
224
+ expect(response.transaction_id).to eq("41C48B55FA9164E123CC73B1157459E840BE5D24")
225
+ expect(response.transaction_status).to eq(Buckaruby::TransactionStatus::PENDING)
226
+ expect(response.redirect_url).not_to be nil
227
+ expect(response.timestamp).to be_an_instance_of(Time)
228
+ expect(response.to_h).to be_an_instance_of(Hash)
229
+ end
230
+
221
231
  context 'with custom variables' do
222
232
  it 'sends the custom variables with the request' do
223
233
  response = subject.setup_transaction(amount: 10, payment_method: Buckaruby::PaymentMethod::IDEAL, payment_issuer: "ABNANL2A", invoicenumber: "12345", return_url: "http://www.return.url/", custom: { foo: :bar, quux: "42" })
@@ -226,7 +236,7 @@ RSpec.describe Buckaruby::Gateway do
226
236
  expect(response.custom[:quux]).to eq("42")
227
237
 
228
238
  expect(WebMock).to have_requested(:post, "https://testcheckout.buckaroo.nl/nvp/?op=TransactionRequest")
229
- .with(body: "brq_websitekey=12345678&brq_payment_method=ideal&brq_culture=nl-NL&brq_currency=EUR&brq_amount=10.0&brq_invoicenumber=12345&brq_service_ideal_action=Pay&brq_service_ideal_issuer=ABNANL2A&brq_service_ideal_version=2&brq_return=http%3A%2F%2Fwww.return.url%2F&cust_foo=bar&cust_quux=42&add_buckaruby=Buckaruby+#{Buckaruby::VERSION}&brq_signature=8a51fbebb05a3f0ac47d92c509328baa1c7ea265")
239
+ .with(body: "brq_websitekey=12345678&brq_payment_method=ideal&brq_culture=nl-NL&brq_currency=EUR&brq_amount=10.0&brq_invoicenumber=12345&brq_service_ideal_action=Pay&brq_service_ideal_issuer=ABNANL2A&brq_service_ideal_version=2&brq_return=http%3A%2F%2Fwww.return.url%2F&cust_foo=bar&cust_quux=42&add_buckaruby=Buckaruby+#{Buckaruby::VERSION}&brq_signature=93952aef5786f00f62e4aa33597672845b2ac8dd")
230
240
  end
231
241
  end
232
242
 
@@ -238,7 +248,7 @@ RSpec.describe Buckaruby::Gateway do
238
248
  expect(response.additional[:myreference]).to eq("12345")
239
249
 
240
250
  expect(WebMock).to have_requested(:post, "https://testcheckout.buckaroo.nl/nvp/?op=TransactionRequest")
241
- .with(body: "brq_websitekey=12345678&brq_payment_method=ideal&brq_culture=nl-NL&brq_currency=EUR&brq_amount=10.0&brq_invoicenumber=12345&brq_service_ideal_action=Pay&brq_service_ideal_issuer=ABNANL2A&brq_service_ideal_version=2&brq_return=http%3A%2F%2Fwww.return.url%2F&add_myreference=12345&add_buckaruby=Buckaruby+#{Buckaruby::VERSION}&brq_signature=e34adab910c42df19d7b25aff26a749dc90697ad")
251
+ .with(body: "brq_websitekey=12345678&brq_payment_method=ideal&brq_culture=nl-NL&brq_currency=EUR&brq_amount=10.0&brq_invoicenumber=12345&brq_service_ideal_action=Pay&brq_service_ideal_issuer=ABNANL2A&brq_service_ideal_version=2&brq_return=http%3A%2F%2Fwww.return.url%2F&add_myreference=12345&add_buckaruby=Buckaruby+#{Buckaruby::VERSION}&brq_signature=b7332fefcf5a9aeb02b9c242ef52eaad118e2da4")
242
252
  end
243
253
  end
244
254
  end
@@ -642,6 +652,20 @@ RSpec.describe Buckaruby::Gateway do
642
652
  expect(response.timestamp).to be_an_instance_of(Time)
643
653
  expect(response.to_h).to be_an_instance_of(Hash)
644
654
  end
655
+
656
+ it 'sets the transaction type to payment and payment method to Sofrt for sort callback' do
657
+ params = File.read("spec/fixtures/responses/callback_payment_sofort.txt")
658
+
659
+ response = subject.callback(params)
660
+ expect(response.transaction_status).to eq(Buckaruby::TransactionStatus::PENDING)
661
+ expect(response.transaction_type).to eq(Buckaruby::TransactionType::PAYMENT)
662
+ expect(response.payment_method).to eq(Buckaruby::PaymentMethod::SOFORT)
663
+ expect(response.transaction_id).to eq("41C48B55FA9164E123CC73B1157459E840BE5D24")
664
+ expect(response.payment_id).to eq("E86256B2787EE7FF0C33D0D4C6159CD922227B79")
665
+ expect(response.invoicenumber).to eq("12345")
666
+ expect(response.timestamp).to be_an_instance_of(Time)
667
+ expect(response.to_h).to be_an_instance_of(Hash)
668
+ end
645
669
  end
646
670
 
647
671
  context 'when callback is a payment recurrent response' do
@@ -0,0 +1 @@
1
+ brq_amount=10.00&brq_currency=EUR&brq_customer_name=Warnecke+Hans-Gerd&brq_description=test&brq_invoicenumber=12345&brq_mutationtype=Collecting&brq_payment=E86256B2787EE7FF0C33D0D4C6159CD922227B79&brq_service_sofortueberweisung_bankstatementid=35DRJQ5&brq_service_sofortueberweisung_customerbic=SFRTNL20XXX&brq_service_sofortueberweisung_customeriban=NL56SFRT0012345678&brq_statuscode=791&brq_statuscode_detail=P192&brq_statusmessage=Sofort+payment+request+complete%2C+payment+not+yet+received.&brq_test=true&brq_timestamp=2020-11-16+20%3A14%3A21&brq_transaction_method=sofortueberweisung&brq_transaction_type=N074&brq_transactions=41C48B55FA9164E123CC73B1157459E840BE5D24&brq_websitekey=12345678&brq_signature=3183281d1c634b656f7879293f29d3b8c6ede8b1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buckaruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kentaa
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-06 00:00:00.000000000 Z
11
+ date: 2020-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -117,6 +117,7 @@ files:
117
117
  - spec/fixtures/responses/callback_payment_pending.txt
118
118
  - spec/fixtures/responses/callback_payment_rejected.txt
119
119
  - spec/fixtures/responses/callback_payment_sepa.txt
120
+ - spec/fixtures/responses/callback_payment_sofort.txt
120
121
  - spec/fixtures/responses/callback_payment_success.txt
121
122
  - spec/fixtures/responses/callback_payment_visa.txt
122
123
  - spec/fixtures/responses/callback_recurrent_sepa.txt
@@ -142,7 +143,7 @@ homepage: https://github.com/KentaaNL/buckaruby
142
143
  licenses:
143
144
  - MIT
144
145
  metadata: {}
145
- post_install_message:
146
+ post_install_message:
146
147
  rdoc_options: []
147
148
  require_paths:
148
149
  - lib
@@ -157,8 +158,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
158
  - !ruby/object:Gem::Version
158
159
  version: '0'
159
160
  requirements: []
160
- rubygems_version: 3.0.6
161
- signing_key:
161
+ rubygems_version: 3.0.8
162
+ signing_key:
162
163
  specification_version: 4
163
164
  summary: Ruby library for communicating with the Buckaroo Payment Engine 3.0.
164
165
  test_files:
@@ -176,6 +177,7 @@ test_files:
176
177
  - spec/fixtures/responses/callback_payment_pending.txt
177
178
  - spec/fixtures/responses/callback_payment_rejected.txt
178
179
  - spec/fixtures/responses/callback_payment_sepa.txt
180
+ - spec/fixtures/responses/callback_payment_sofort.txt
179
181
  - spec/fixtures/responses/callback_payment_success.txt
180
182
  - spec/fixtures/responses/callback_payment_visa.txt
181
183
  - spec/fixtures/responses/callback_recurrent_sepa.txt