From 13c094bd2c650b9b88e277142f0d0d0cb7af40ea Mon Sep 17 00:00:00 2001 From: DustinHaefele Date: Thu, 19 Sep 2024 15:18:53 -0400 Subject: [PATCH] update global collect to take object for payment_data --- lib/active_merchant/billing/gateways/global_collect.rb | 4 ++-- test/unit/gateways/global_collect_test.rb | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/active_merchant/billing/gateways/global_collect.rb b/lib/active_merchant/billing/gateways/global_collect.rb index 466b2be2de5..8e68c325267 100644 --- a/lib/active_merchant/billing/gateways/global_collect.rb +++ b/lib/active_merchant/billing/gateways/global_collect.rb @@ -297,7 +297,7 @@ def add_mobile_credit_card(post, payment, options, specifics_inputs, expirydate) post['mobilePaymentMethodSpecificInput'] = specifics_inputs if options[:use_encrypted_payment_data] - post['mobilePaymentMethodSpecificInput']['encryptedPaymentData'] = payment.payment_data + post['mobilePaymentMethodSpecificInput']['encryptedPaymentData'] = payment.payment_data.to_s&.gsub('=>', ':') else add_decrypted_payment_data(post, payment, options, expirydate) end @@ -315,7 +315,7 @@ def add_decrypted_payment_data(post, payment, options, expirydate) 'dpan' => payment.number } when :google_pay - payment.payment_data + payment.payment_data.to_s&.gsub('=>', ':') end post['mobilePaymentMethodSpecificInput']["#{data_type}PaymentData"] = data if data diff --git a/test/unit/gateways/global_collect_test.rb b/test/unit/gateways/global_collect_test.rb index 964e2739e83..ce8703e1916 100644 --- a/test/unit/gateways/global_collect_test.rb +++ b/test/unit/gateways/global_collect_test.rb @@ -22,7 +22,7 @@ def setup @google_pay_network_token = ActiveMerchant::Billing::NetworkTokenizationCreditCard.new({ source: :google_pay, - payment_data: "{ 'version': 'EC_v1', 'data': 'QlzLxRFnNP9/GTaMhBwgmZ2ywntbr9'}" + payment_data: { 'version' => 'EC_v1', 'data' => 'QlzLxRFnNP9/GTaMhBwgmZ2ywntbr9' } }) @declined_card = credit_card('5424180279791732') @@ -91,14 +91,14 @@ def test_successful_purchase_with_requires_approval_true def test_purchase_request_with_encrypted_google_pay google_pay = ActiveMerchant::Billing::NetworkTokenizationCreditCard.new({ source: :google_pay, - payment_data: "{ 'version': 'EC_v1', 'data': 'QlzLxRFnNP9/GTaMhBwgmZ2ywntbr9'}" + payment_data: { 'version' => 'EC_v1', 'data' => 'QlzLxRFnNP9/GTaMhBwgmZ2ywntbr9' } }) stub_comms(@gateway, :ssl_request) do @gateway.purchase(@accepted_amount, google_pay, { use_encrypted_payment_data: true }) end.check_request(skip_response: true) do |_method, _endpoint, data, _headers| assert_equal '320', JSON.parse(data)['mobilePaymentMethodSpecificInput']['paymentProductId'] - assert_equal google_pay.payment_data, JSON.parse(data)['mobilePaymentMethodSpecificInput']['encryptedPaymentData'] + assert_equal google_pay.payment_data.to_s&.gsub('=>', ':'), JSON.parse(data)['mobilePaymentMethodSpecificInput']['encryptedPaymentData'] end end @@ -131,7 +131,7 @@ def test_add_payment_for_google_pay assert_includes post.keys.first, 'mobilePaymentMethodSpecificInput' assert_equal post['mobilePaymentMethodSpecificInput']['paymentProductId'], '320' assert_equal post['mobilePaymentMethodSpecificInput']['authorizationMode'], 'FINAL_AUTHORIZATION' - assert_equal post['mobilePaymentMethodSpecificInput']['encryptedPaymentData'], @google_pay_network_token.payment_data + assert_equal post['mobilePaymentMethodSpecificInput']['encryptedPaymentData'], @google_pay_network_token.payment_data.to_s&.gsub('=>', ':') end def test_add_payment_for_apple_pay