buckaruby 1.2.0 → 1.3.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: d4513790fda002b5a98011b97768f0e4daad118822dc2d8acfbb0eabe259f86b
4
- data.tar.gz: 86fcda3eaf10ff9129d074c236e0e1b4037a3c905ab48cc72c8769e1bae22fd2
3
+ metadata.gz: 855a453200b91387930947cdd68b6d315e5cf3072f0f96af43c9aedd602d2a19
4
+ data.tar.gz: 811de69c1218ab1e5a10c8f9d3ca1ddf8e8e01bea31da9157bc6203fde9a3a1a
5
5
  SHA512:
6
- metadata.gz: b50d76de5cebb6bae5c698b7f052619657a2afb9745e1c7dcf235d9be21e83ca4f05dc23be13dede2881c82fda4b47a1d117dfe90629a7b3d942b54dbab9a2ab
7
- data.tar.gz: d6a9032e3b38d91ff1d4353aec269c558dbb0a034282ece2fbd512f69e000ccb65e2c738c0f2992bf040b0315bb8024bb932c7000c212a8c62846aff178dd75c
6
+ metadata.gz: 4ce0ce26ff6272ccd8fa73d95c7af0078b1f68a20723a6c8214cb1a1fafe1e2a8755ee8ccf05202f921904f8d54b603daed3d378f0465467be958da346fe756d
7
+ data.tar.gz: c569a0978c2723ba373a00f620a08dc8593f6fb9a0e4e8e21a1804fbf34e3163f0cb06ff8802b588e020bb92fcbae96e5d20a6a00f84a1c6f48e0f76764590b1
@@ -1,6 +1,10 @@
1
1
  # Buckaruby changelog
2
2
 
3
- ## 1.2.0 (2019-08-11)
3
+ ## 1.3.0 (2019-10-08)
4
+
5
+ - Added payment method American Express.
6
+
7
+ ## 1.2.0 (2019-08-06)
4
8
 
5
9
  - Added support for sending custom & additional variables with the request.
6
10
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- buckaruby (1.2.0)
4
+ buckaruby (1.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -151,7 +151,7 @@ module Buckaruby
151
151
 
152
152
  valid_payment_methods = [
153
153
  PaymentMethod::IDEAL, PaymentMethod::IDEAL_PROCESSING, PaymentMethod::VISA, PaymentMethod::MASTER_CARD, PaymentMethod::MAESTRO,
154
- PaymentMethod::SEPA_DIRECT_DEBIT, PaymentMethod::PAYPAL, PaymentMethod::BANCONTACT_MISTER_CASH
154
+ PaymentMethod::AMERICAN_EXPRESS, PaymentMethod::SEPA_DIRECT_DEBIT, PaymentMethod::PAYPAL, PaymentMethod::BANCONTACT_MISTER_CASH
155
155
  ]
156
156
  validate_payment_method!(options, valid_payment_methods)
157
157
 
@@ -191,7 +191,7 @@ module Buckaruby
191
191
  validate_amount!(options)
192
192
 
193
193
  valid_payment_methods = [
194
- PaymentMethod::VISA, PaymentMethod::MASTER_CARD, PaymentMethod::MAESTRO,
194
+ PaymentMethod::VISA, PaymentMethod::MASTER_CARD, PaymentMethod::MAESTRO, PaymentMethod::AMERICAN_EXPRESS,
195
195
  PaymentMethod::SEPA_DIRECT_DEBIT, PaymentMethod::PAYPAL
196
196
  ]
197
197
  validate_payment_method!(options, valid_payment_methods)
@@ -14,5 +14,6 @@ module Buckaruby
14
14
  VISA = "visa"
15
15
  MASTER_CARD = "mastercard"
16
16
  MAESTRO = "maestro"
17
+ AMERICAN_EXPRESS = "amex"
17
18
  end
18
19
  end
@@ -177,18 +177,38 @@ module Buckaruby
177
177
  if params[:brq_transaction_type] && !params[:brq_transaction_type].empty?
178
178
  # See http://support.buckaroo.nl/index.php/Transactietypes
179
179
  case params[:brq_transaction_type]
180
- when 'C001', 'C002', 'C004', 'C021', 'C043', 'C044', 'C046', 'C089', 'C090', 'C192', 'C251', 'V001', 'V002', 'V010', 'V021', 'V032', 'V034', 'V043', 'V044', 'V046', 'V089', 'V090', 'V192', 'V245'
180
+ when 'C021', 'V021', # iDEAL
181
+ 'C002', 'C004', 'C005', # (SEPA) Direct Debit
182
+ 'V010', 'V014', # PayPal
183
+ 'C090', 'V090', # Bancontact
184
+ 'C001', # Transfer
185
+ 'C044', 'C192', 'V002', 'V032', 'V044', 'V192', # Visa
186
+ 'C043', 'C089', 'V001', 'V043', 'V089', 'V031', # MasterCard
187
+ 'C046', 'C251', 'V034', 'V046', 'V245', 'V094', # Maestro
188
+ 'V003', 'V030', 'V036', 'V042' # American Express
189
+
181
190
  # Check the recurring flag to detect a normal or recurring transaction.
182
191
  if params[:brq_recurring] && params[:brq_recurring].casecmp("true").zero?
183
192
  TransactionType::PAYMENT_RECURRENT
184
193
  else
185
194
  TransactionType::PAYMENT
186
195
  end
187
- when 'C005', 'V014', 'V031', 'V094'
188
- TransactionType::PAYMENT_RECURRENT
189
- when 'C079', 'C080', 'C082', 'C092', 'C101', 'C102', 'C121', 'C194', 'C197', 'C252', 'C500', 'V067', 'V068', 'V070', 'V079', 'V080', 'V082', 'V092', 'V101', 'V102', 'V110', 'V149', 'V194', 'V197', 'V246'
196
+ when 'C121', # iDEAL
197
+ 'C102', 'C500', # (SEPA) Direct Debit
198
+ 'V110', # PayPal
199
+ 'C092', 'V092', # Bancontact
200
+ 'C101', # Transfer
201
+ 'C080', 'C194', 'V068', 'V080', 'V102', 'V194', # Visa
202
+ 'C079', 'C197', 'V067', 'V079', 'V101', 'V149', 'V197', # MasterCard
203
+ 'C082', 'C252', 'V070', 'V082', 'V246', # Maestro
204
+ 'V066', 'V072', 'V078', 'V103' # American Express
190
205
  TransactionType::REFUND
191
- when 'C501', 'C502', 'C546', 'C551', 'C553', 'C554', 'C562', 'C589', 'C593', 'V111', 'V131', 'V132', 'V134', 'V143', 'V144', 'V146', 'V543', 'V544', 'V545', 'V546', 'V589', 'V592'
206
+ when 'C501', 'C502', 'C562', # (SEPA) Direct Debit
207
+ 'V111', # PayPal
208
+ 'C554', 'C593', 'V132', 'V144', 'V544', 'V592', # Visa
209
+ 'C553', 'C589', 'V131', 'V143', 'V543', 'V589', # MasterCard
210
+ 'C546', 'C551', 'V134', 'V146', 'V545', 'V546', # Maestro
211
+ 'V130', 'V136', 'V142' # American Express
192
212
  TransactionType::REVERSAL
193
213
  end
194
214
  else
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Buckaruby
4
- VERSION = "1.2.0"
4
+ VERSION = "1.3.0"
5
5
  end
@@ -215,7 +215,7 @@ RSpec.describe Buckaruby::Gateway do
215
215
  expect(response.custom[:quux]).to eq("42")
216
216
 
217
217
  expect(WebMock).to have_requested(:post, "https://testcheckout.buckaroo.nl/nvp/?op=TransactionRequest")
218
- .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=0fb3ff3c1f140b5aede33a0fdacbc5675830120d")
218
+ .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=e185c8a1bce030a3e0d001f0c09fbf6b0c8f88ab")
219
219
  end
220
220
  end
221
221
 
@@ -227,7 +227,7 @@ RSpec.describe Buckaruby::Gateway do
227
227
  expect(response.additional[:myreference]).to eq("12345")
228
228
 
229
229
  expect(WebMock).to have_requested(:post, "https://testcheckout.buckaroo.nl/nvp/?op=TransactionRequest")
230
- .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=f7996840436bdd55dada28b80c62ed88af10cd23")
230
+ .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=40ee09a9b7ccac816318c9e9bc81493fcee183f7")
231
231
  end
232
232
  end
233
233
  end
@@ -573,6 +573,20 @@ RSpec.describe Buckaruby::Gateway do
573
573
  expect(response.timestamp).to be_an_instance_of(Time)
574
574
  expect(response.to_h).to be_an_instance_of(Hash)
575
575
  end
576
+
577
+ it 'sets the transaction type to payment and payment method to American Express for amex callback' do
578
+ params = File.read("spec/fixtures/responses/callback_payment_amex.txt")
579
+
580
+ response = subject.callback(params)
581
+ expect(response.transaction_status).to eq(Buckaruby::TransactionStatus::SUCCESS)
582
+ expect(response.transaction_type).to eq(Buckaruby::TransactionType::PAYMENT)
583
+ expect(response.payment_method).to eq(Buckaruby::PaymentMethod::AMERICAN_EXPRESS)
584
+ expect(response.transaction_id).to eq("41C48B55FA9164E123CC73B1157459E840BE5D24")
585
+ expect(response.payment_id).to eq("E86256B2787EE7FF0C33D0D4C6159CD922227B79")
586
+ expect(response.invoicenumber).to eq("12345")
587
+ expect(response.timestamp).to be_an_instance_of(Time)
588
+ expect(response.to_h).to be_an_instance_of(Hash)
589
+ end
576
590
  end
577
591
 
578
592
  context 'when callback is a payment recurrent response' do
@@ -635,6 +649,21 @@ RSpec.describe Buckaruby::Gateway do
635
649
  expect(response.timestamp).to be_an_instance_of(Time)
636
650
  expect(response.to_h).to be_an_instance_of(Hash)
637
651
  end
652
+
653
+ it 'recognizes an amex refund response' do
654
+ params = File.read("spec/fixtures/responses/callback_refund_amex.txt")
655
+
656
+ response = subject.callback(params)
657
+ expect(response.transaction_status).to eq(Buckaruby::TransactionStatus::SUCCESS)
658
+ expect(response.transaction_type).to eq(Buckaruby::TransactionType::REFUND)
659
+ expect(response.payment_method).to eq(Buckaruby::PaymentMethod::AMERICAN_EXPRESS)
660
+ expect(response.transaction_id).to eq("B51118F58785274E117EFE1BF99D4D50CCB96949")
661
+ expect(response.payment_id).to be nil
662
+ expect(response.invoicenumber).to eq("12345")
663
+ expect(response.refund_transaction_id).to eq("41C48B55FA9164E123CC73B1157459E840BE5D24")
664
+ expect(response.timestamp).to be_an_instance_of(Time)
665
+ expect(response.to_h).to be_an_instance_of(Hash)
666
+ end
638
667
  end
639
668
 
640
669
  context 'when callback is a reversal response' do
@@ -0,0 +1 @@
1
+ brq_amount=1.00&brq_currency=EUR&brq_customer_name=Test&brq_description=Test+American+Express&brq_invoicenumber=12345&brq_issuing_country=NL&brq_mutationtype=Processing&brq_payer_hash=ec4dcf6c815f12bd75b7f5a2ef61d0307c868bd2a48a7af4ab5425c4abd475bb9c5c85f279baed6e4e4576a59b9d16311dcc1c9dd6be100386876905d909c99e&brq_payment=E86256B2787EE7FF0C33D0D4C6159CD922227B79&brq_SERVICE_amex_Authentication=Y&brq_SERVICE_amex_CardExpirationDate=2019-10&brq_SERVICE_amex_CardNumberEnding=8084&brq_SERVICE_amex_Enrolled=Y&brq_SERVICE_amex_MaskedCreditcardNumber=375317%2A%2A%2A%2A%2A8084&brq_statuscode=190&brq_statuscode_detail=S001&brq_statusmessage=Transaction+successfully+processed&brq_test=true&brq_timestamp=2019-10-08+10%3A02%3A31&brq_transaction_method=amex&brq_transaction_type=V036&brq_transactions=41C48B55FA9164E123CC73B1157459E840BE5D24&brq_websitekey=12345678&brq_signature=495dbdbb3c87c04351bec97cd40bafe0addec0f3
@@ -0,0 +1 @@
1
+ brq_amount_credit=1.00&brq_currency=EUR&brq_invoicenumber=12345&brq_mutationtype=Processing&brq_relatedtransaction_refund=41C48B55FA9164E123CC73B1157459E840BE5D24&brq_statuscode=190&brq_statusmessage=Success&brq_test=true&brq_timestamp=2019-10-08+10%3A21%3A28&brq_transaction_method=amex&brq_transaction_type=V072&brq_transactions=B51118F58785274E117EFE1BF99D4D50CCB96949&brq_websitekey=1234567&brq_signature=feccc64fd8bdf9c17b1dd48961513f2361991439
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.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kentaa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-06 00:00:00.000000000 Z
11
+ date: 2019-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,7 @@ files:
108
108
  - spec/buckaruby/signature_spec.rb
109
109
  - spec/buckaruby/support/case_insensitive_hash_spec.rb
110
110
  - spec/fixtures/responses/callback_invalid_signature.txt
111
+ - spec/fixtures/responses/callback_payment_amex.txt
111
112
  - spec/fixtures/responses/callback_payment_cancelled.txt
112
113
  - spec/fixtures/responses/callback_payment_empty_transaction_type.txt
113
114
  - spec/fixtures/responses/callback_payment_failed.txt
@@ -117,6 +118,7 @@ files:
117
118
  - spec/fixtures/responses/callback_payment_success.txt
118
119
  - spec/fixtures/responses/callback_recurrent_sepa.txt
119
120
  - spec/fixtures/responses/callback_recurrent_visa.txt
121
+ - spec/fixtures/responses/callback_refund_amex.txt
120
122
  - spec/fixtures/responses/callback_refund_ideal.txt
121
123
  - spec/fixtures/responses/callback_refund_paypal.txt
122
124
  - spec/fixtures/responses/callback_reversal_paypal.txt
@@ -151,8 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
153
  - !ruby/object:Gem::Version
152
154
  version: '0'
153
155
  requirements: []
154
- rubyforge_project:
155
- rubygems_version: 2.7.9
156
+ rubygems_version: 3.0.6
156
157
  signing_key:
157
158
  specification_version: 4
158
159
  summary: Ruby library for communicating with the Buckaroo Payment Engine 3.0.
@@ -163,6 +164,7 @@ test_files:
163
164
  - spec/buckaruby/signature_spec.rb
164
165
  - spec/buckaruby/support/case_insensitive_hash_spec.rb
165
166
  - spec/fixtures/responses/callback_invalid_signature.txt
167
+ - spec/fixtures/responses/callback_payment_amex.txt
166
168
  - spec/fixtures/responses/callback_payment_cancelled.txt
167
169
  - spec/fixtures/responses/callback_payment_empty_transaction_type.txt
168
170
  - spec/fixtures/responses/callback_payment_failed.txt
@@ -172,6 +174,7 @@ test_files:
172
174
  - spec/fixtures/responses/callback_payment_success.txt
173
175
  - spec/fixtures/responses/callback_recurrent_sepa.txt
174
176
  - spec/fixtures/responses/callback_recurrent_visa.txt
177
+ - spec/fixtures/responses/callback_refund_amex.txt
175
178
  - spec/fixtures/responses/callback_refund_ideal.txt
176
179
  - spec/fixtures/responses/callback_refund_paypal.txt
177
180
  - spec/fixtures/responses/callback_reversal_paypal.txt