Skip to content

Commit

Permalink
Merge pull request #8 from mycase/BMH-2918
Browse files Browse the repository at this point in the history
BMH-2918 Added support for saved card payment_method brand and name for gateway purchase
  • Loading branch information
dotcom900825 authored Feb 1, 2024
2 parents 5f49390 + d21c7b0 commit f1f37e6
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 7 deletions.
11 changes: 6 additions & 5 deletions lib/active_merchant/billing/gateways/litle.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
require 'nokogiri'
require 'active_merchant/billing/gateways/litle/paypage_registration'
require 'active_merchant/billing/gateways/litle/token'

module ActiveMerchant #:nodoc:
module Billing #:nodoc:
Expand Down Expand Up @@ -114,15 +115,15 @@ def add_line_item_information_for_level_three_visa(doc, payment_method, level_3_
doc.lineItemData do
level_3_data[:line_items].each do |line_item|
doc.itemSequenceNumber(line_item[:item_sequence_number]) if line_item[:item_sequence_number]
doc.commodityCode(line_item[:commodity_code]) if line_item[:commodity_code]
doc.itemDescription(line_item[:item_description]) if line_item[:item_description]
doc.productCode(line_item[:product_code]) if line_item[:product_code]
doc.quantity(line_item[:quantity]) if line_item[:quantity]
doc.unitOfMeasure(line_item[:unit_of_measure]) if line_item[:unit_of_measure]
doc.taxAmount(line_item[:tax_amount]) if line_item[:tax_amount]
doc.itemDiscountAmount(line_item[:discount_per_line_item]) unless line_item[:discount_per_line_item] < 0
doc.unitCost(line_item[:unit_cost]) unless line_item[:unit_cost] < 0
doc.lineItemTotal(line_item[:line_item_total]) if line_item[:line_item_total]
doc.itemDiscountAmount(line_item[:discount_per_line_item]) if line_item[:discount_per_line_item]
doc.commodityCode(line_item[:commodity_code]) if line_item[:commodity_code]
doc.unitCost(line_item[:unit_cost]) if line_item[:unit_cost]
doc.detailTax do
doc.taxIncludedInTotal(line_item[:tax_included_in_total]) if line_item[:tax_included_in_total]
doc.taxAmount(line_item[:tax_amount]) if line_item[:tax_amount]
Expand Down Expand Up @@ -320,10 +321,10 @@ def add_auth_purchase_params(doc, money, payment_method, options)
add_payment_method(doc, payment_method, options)
add_pos(doc, payment_method)
add_descriptor(doc, options)
add_processing_type(doc, options)
add_original_network_transaction(doc, options)
add_level_two_data(doc, payment_method, options)
add_level_three_data(doc, payment_method, options)
add_processing_type(doc, options)
add_original_network_transaction(doc, options)
add_merchant_data(doc, options)
add_debt_repayment(doc, options)
add_stored_credential_params(doc, options)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ module Billing
# The name parameter is allowed by Vantiv as a member of the billToAddress element.
# It is passed in here to be consistent with the rest of the Litle gateway and Activemerchant.
class LitlePaypageRegistration
attr_reader :paypage_registration_id, :month, :year, :verification_value, :name, :type
attr_reader :paypage_registration_id, :month, :year, :verification_value, :name, :type, :brand

def initialize(paypage_registration_id, options = {})
@paypage_registration_id = paypage_registration_id
Expand All @@ -22,6 +22,7 @@ def initialize(paypage_registration_id, options = {})
@verification_value = options[:verification_value]
@name = options[:name]
@type = options[:type]
@brand = options[:brand]
end
end
end
Expand Down
15 changes: 15 additions & 0 deletions lib/active_merchant/billing/gateways/litle/token.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
module ActiveMerchant
module Billing
# The name parameter is allowed by Vantiv as a member of the billToAddress element.
# It is passed in here to be consistent with the rest of the Litle gateway and Activemerchant.
class LitleToken
attr_reader :litle_token, :name, :brand

def initialize(litle_token, options = {})
@litle_token = litle_token
@name = options[:name]
@brand = options[:brand]
end
end
end
end
36 changes: 35 additions & 1 deletion test/unit/gateways/litle_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ def test_passing_level_3_data_for_visa
discount_amount: 0,
shipping_amount: 0,
duty_amount: 0,
total_tax_amount: 0,
tax_amount: 0,
line_items: [{
item_sequence_number: 1,
commodity_code: 'Comm',
Expand Down Expand Up @@ -293,6 +293,40 @@ def test_passing_level_3_data_for_visa
assert_match(%r(<quantity>1</quantity>), data)
assert_match(%r(<commodityCode>Comm</commodityCode>), data)
assert_match(%r(<itemSequenceNumber>1</itemSequenceNumber>), data)
assert_match(%r(<taxAmount>0</taxAmount>), data)
end.respond_with(successful_purchase_response)
end

def test_passing_with_litle_token_of_level_3_rates
litle_token = ActiveMerchant::Billing::LitleToken.new(
'XkNDRGZDTGZyS2RBSTVCazJNSmdWam5T',
brand: 'visa',
name: 'Joe Payer'
)
options = @options.merge(
level_3_data: {
discount_amount: 0,
shipping_amount: 0,
duty_amount: 0,
tax_amount: 0,
line_items: [{
item_sequence_number: 1,
commodity_code: 'Comm',
product_code: 'test',
item_description: 'Legal services',
quantity: 1,
unit_of_measure: 'EA',
discount_per_line_item: 0,
unit_cost: 500,
line_item_total: 500
}]
}
)
stub_comms do
@gateway.purchase(@amount, litle_token, options)
end.check_request do |_endpoint, data, _headers|
assert_match(%r(<unitCost>500</unitCost>), data)
assert_match(%r(<taxAmount>0</taxAmount>), data)
end.respond_with(successful_purchase_response)
end

Expand Down

0 comments on commit f1f37e6

Please sign in to comment.