From 3b3f5baf86053ca6a4ee12f4f828d2561f498427 Mon Sep 17 00:00:00 2001 From: David Burry Date: Mon, 13 Sep 2021 12:20:05 -0700 Subject: [PATCH 1/4] get rid of ruby deprecation warnings by upgrading json gem, seems to work with this version --- beanstream.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/beanstream.gemspec b/beanstream.gemspec index 591a920..f9d39ac 100644 --- a/beanstream.gemspec +++ b/beanstream.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |s| s.require_paths = ['lib'] s.add_dependency('rest-client', '~> 1.4') - s.add_dependency('json', '~> 1.8.1') + s.add_dependency('json', '~> 2.5.1') s.add_development_dependency('shoulda', '~> 3.4.0') s.add_development_dependency('test-unit') From 25a89a2edee5d8978530bf3f6e0b664844b9d555 Mon Sep 17 00:00:00 2001 From: David Burry Date: Mon, 13 Sep 2021 12:28:56 -0700 Subject: [PATCH 2/4] get rid of more ruby deprecation warnings by upgrading rest-client gem (which upgrades mime-types gem), seems to work with this version too --- beanstream.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/beanstream.gemspec b/beanstream.gemspec index f9d39ac..7552897 100644 --- a/beanstream.gemspec +++ b/beanstream.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |s| s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.require_paths = ['lib'] - s.add_dependency('rest-client', '~> 1.4') + s.add_dependency('rest-client', '~> 2.1') s.add_dependency('json', '~> 2.5.1') s.add_development_dependency('shoulda', '~> 3.4.0') From 4474561eac717a9a06b973cc06e19cfa83b96d81 Mon Sep 17 00:00:00 2001 From: Wesley Duerksen Date: Wed, 14 Dec 2022 10:31:44 -0800 Subject: [PATCH 3/4] add order_number to return_payment and void_payment --- lib/beanstream/payments_api.rb | 11 +++++++---- test/beanstream/payments_api_test.rb | 24 ++++++++++++++---------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/lib/beanstream/payments_api.rb b/lib/beanstream/payments_api.rb index e2c24c6..2a0459d 100644 --- a/lib/beanstream/payments_api.rb +++ b/lib/beanstream/payments_api.rb @@ -129,9 +129,10 @@ def make_payment(payment) val = transaction_post("POST", make_payment_url, Beanstream.merchant_id, Beanstream.payments_api_key, payment) end - def complete_preauth(transaciton_id, amount) + def complete_preauth(transaciton_id, amount, order_number = nil) complete_url = make_payment_url+transaciton_id+"/completions" - completion = { :amount => amount } + completion = { amount: amount } + completion[order_number] = order_number unless order_number.nil? val = transaction_post("POST", complete_url, Beanstream.merchant_id, Beanstream.payments_api_key, completion) end @@ -149,13 +150,15 @@ def get_transaction(transaction_id) transaction_post("GET", get_transaction_url(transaction_id), Beanstream.merchant_id, Beanstream.payments_api_key) end - def return_payment(transaction_id, amount) + def return_payment(transaction_id, amount, order_number = nil) data = { amount: amount } + data[order_number] = order_number unless order_number.nil? transaction_post("POST", payment_returns_url(transaction_id), Beanstream.merchant_id, Beanstream.payments_api_key, data) end - def void_payment(transaction_id, amount) + def void_payment(transaction_id, amount, order_number = nil) data = { amount: amount } + data[order_number] = order_number unless order_number.nil? transaction_post("POST", payment_void_url(transaction_id), Beanstream.merchant_id, Beanstream.payments_api_key, data) end diff --git a/test/beanstream/payments_api_test.rb b/test/beanstream/payments_api_test.rb index 40120ac..35c1f41 100644 --- a/test/beanstream/payments_api_test.rb +++ b/test/beanstream/payments_api_test.rb @@ -127,9 +127,10 @@ class PaymentsAPIIntegrationTest < Test::Unit::TestCase decline = false begin + order_number = PaymentsAPI.generateRandomOrderId("test") result = Beanstream.PaymentsAPI.make_payment( { - :order_number => PaymentsAPI.generateRandomOrderId("test"), + :order_number => order_number, :amount => 100, :payment_method => PaymentMethods::CARD, :card => { @@ -147,7 +148,7 @@ class PaymentsAPIIntegrationTest < Test::Unit::TestCase transaction_id = result['id'] puts "TransactionId: #{transaction_id}" - result = Beanstream.PaymentsAPI.complete_preauth(transaction_id, 59.50) + result = Beanstream.PaymentsAPI.complete_preauth(transaction_id, 59.50, order_number) puts "completion result: #{result}" assert(PaymentsAPI.payment_approved(result)) @@ -179,9 +180,10 @@ class PaymentsAPIIntegrationTest < Test::Unit::TestCase # 2) make pre-auth begin + order_number = PaymentsAPI.generateRandomOrderId("test") result = Beanstream.PaymentsAPI.make_payment( { - :order_number => PaymentsAPI.generateRandomOrderId("test"), + :order_number => order_number, :amount => 13.99, :payment_method => PaymentMethods::TOKEN, :token => { @@ -196,7 +198,7 @@ class PaymentsAPIIntegrationTest < Test::Unit::TestCase transaction_id = result['id'] # 3) complete purchase - result = Beanstream.PaymentsAPI.complete_preauth(transaction_id, 10.33) + result = Beanstream.PaymentsAPI.complete_preauth(transaction_id, 10.33, order_number) puts "completion result: #{result}" assert(PaymentsAPI.payment_approved(result)) rescue BeanstreamException => ex @@ -207,10 +209,11 @@ class PaymentsAPIIntegrationTest < Test::Unit::TestCase #Return should "have successful credit card payment, then get the payment, then return the payment" do - + + order_number = PaymentsAPI.generateRandomOrderId("test") result = Beanstream.PaymentsAPI.make_payment( { - :order_number => PaymentsAPI.generateRandomOrderId("test"), + :order_number => order_number, :amount => 100, :payment_method => PaymentMethods::CARD, :card => { @@ -232,7 +235,7 @@ class PaymentsAPIIntegrationTest < Test::Unit::TestCase assert_equal "Approved", get_result["message"] # => test return payment - return_result = Beanstream.PaymentsAPI.return_payment(transaction_id, 100) + return_result = Beanstream.PaymentsAPI.return_payment(transaction_id, 100, order_number) assert_equal "Approved", return_result["message"] assert_equal "R", return_result["type"] get_after_return = Beanstream.PaymentsAPI.get_transaction(transaction_id) @@ -247,9 +250,10 @@ class PaymentsAPIIntegrationTest < Test::Unit::TestCase #Void should "have successful credit card payment, then void the payment" do + order_number = PaymentsAPI.generateRandomOrderId("test") result = Beanstream.PaymentsAPI.make_payment( { - :order_number => PaymentsAPI.generateRandomOrderId("test"), + :order_number => order_number, :amount => 100, :payment_method => PaymentMethods::CARD, :card => { @@ -274,7 +278,7 @@ class PaymentsAPIIntegrationTest < Test::Unit::TestCase # => try to return the payment after voiding assert_raises InvalidRequestException do - Beanstream.PaymentsAPI.return_payment(transaction_id, 100) + Beanstream.PaymentsAPI.return_payment(transaction_id, 100, order_number) end end @@ -286,7 +290,7 @@ class PaymentsAPIIntegrationTest < Test::Unit::TestCase should "not return a random transaction id" do assert_raises InvalidRequestException do - Beanstream.PaymentsAPI.return_payment("500", 100) + Beanstream.PaymentsAPI.return_payment("500", 100, '100') end end From 6f86131dba0c7949ade44b667dec07bffda4b1d7 Mon Sep 17 00:00:00 2001 From: Wesley Duerksen Date: Thu, 15 Dec 2022 17:36:15 -0800 Subject: [PATCH 4/4] Cleanup --- lib/beanstream/payments_api.rb | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/beanstream/payments_api.rb b/lib/beanstream/payments_api.rb index 2a0459d..ebc0625 100644 --- a/lib/beanstream/payments_api.rb +++ b/lib/beanstream/payments_api.rb @@ -129,10 +129,9 @@ def make_payment(payment) val = transaction_post("POST", make_payment_url, Beanstream.merchant_id, Beanstream.payments_api_key, payment) end - def complete_preauth(transaciton_id, amount, order_number = nil) - complete_url = make_payment_url+transaciton_id+"/completions" - completion = { amount: amount } - completion[order_number] = order_number unless order_number.nil? + def complete_preauth(transaction_id, amount, order_number = nil) + complete_url = make_payment_url+transaction_id+"/completions" + completion = { amount: amount, order_number: order_number }.compact val = transaction_post("POST", complete_url, Beanstream.merchant_id, Beanstream.payments_api_key, completion) end @@ -151,14 +150,12 @@ def get_transaction(transaction_id) end def return_payment(transaction_id, amount, order_number = nil) - data = { amount: amount } - data[order_number] = order_number unless order_number.nil? + data = { amount: amount, order_number: order_number }.compact transaction_post("POST", payment_returns_url(transaction_id), Beanstream.merchant_id, Beanstream.payments_api_key, data) end def void_payment(transaction_id, amount, order_number = nil) - data = { amount: amount } - data[order_number] = order_number unless order_number.nil? + data = { amount: amount, order_number: order_number }.compact transaction_post("POST", payment_void_url(transaction_id), Beanstream.merchant_id, Beanstream.payments_api_key, data) end