Skip to content

Commit

Permalink
update global collect to take object for payment_data
Browse files Browse the repository at this point in the history
  • Loading branch information
DustinHaefele committed Sep 19, 2024
1 parent 317c7a6 commit 13c094b
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions lib/active_merchant/billing/gateways/global_collect.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
8 changes: 4 additions & 4 deletions test/unit/gateways/global_collect_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 13c094b

Please sign in to comment.