activemerchant 1.125.0 → 1.129.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +316 -0
- data/lib/active_merchant/billing/check.rb +40 -8
- data/lib/active_merchant/billing/credit_card.rb +28 -1
- data/lib/active_merchant/billing/credit_card_methods.rb +91 -23
- data/lib/active_merchant/billing/gateway.rb +2 -1
- data/lib/active_merchant/billing/gateways/adyen.rb +74 -12
- data/lib/active_merchant/billing/gateways/airwallex.rb +370 -0
- data/lib/active_merchant/billing/gateways/alelo.rb +256 -0
- data/lib/active_merchant/billing/gateways/authorize_net.rb +21 -4
- data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +2 -1
- data/lib/active_merchant/billing/gateways/beanstream.rb +18 -0
- data/lib/active_merchant/billing/gateways/blue_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/blue_snap.rb +53 -22
- data/lib/active_merchant/billing/gateways/bogus.rb +4 -0
- data/lib/active_merchant/billing/gateways/borgun.rb +56 -16
- data/lib/active_merchant/billing/gateways/braintree/braintree_common.rb +6 -1
- data/lib/active_merchant/billing/gateways/braintree/token_nonce.rb +113 -0
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +151 -32
- data/lib/active_merchant/billing/gateways/card_connect.rb +28 -10
- data/lib/active_merchant/billing/gateways/card_stream.rb +23 -0
- data/lib/active_merchant/billing/gateways/checkout_v2.rb +228 -57
- data/lib/active_merchant/billing/gateways/commerce_hub.rb +361 -0
- data/lib/active_merchant/billing/gateways/credorax.rb +56 -26
- data/lib/active_merchant/billing/gateways/cyber_source/cyber_source_common.rb +36 -0
- data/lib/active_merchant/billing/gateways/cyber_source.rb +112 -58
- data/lib/active_merchant/billing/gateways/cyber_source_rest.rb +456 -0
- data/lib/active_merchant/billing/gateways/d_local.rb +93 -5
- data/lib/active_merchant/billing/gateways/decidir.rb +32 -5
- data/lib/active_merchant/billing/gateways/decidir_plus.rb +185 -14
- data/lib/active_merchant/billing/gateways/ebanx.rb +39 -26
- data/lib/active_merchant/billing/gateways/element.rb +21 -1
- data/lib/active_merchant/billing/gateways/global_collect.rb +98 -37
- data/lib/active_merchant/billing/gateways/ipg.rb +14 -10
- data/lib/active_merchant/billing/gateways/iveri.rb +39 -3
- data/lib/active_merchant/billing/gateways/kushki.rb +21 -1
- data/lib/active_merchant/billing/gateways/litle.rb +118 -6
- data/lib/active_merchant/billing/gateways/mastercard.rb +1 -8
- data/lib/active_merchant/billing/gateways/mercado_pago.rb +17 -0
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +44 -10
- data/lib/active_merchant/billing/gateways/monei.rb +2 -0
- data/lib/active_merchant/billing/gateways/moneris.rb +55 -13
- data/lib/active_merchant/billing/gateways/mundipagg.rb +3 -0
- data/lib/active_merchant/billing/gateways/nmi.rb +12 -7
- data/lib/active_merchant/billing/gateways/ogone.rb +35 -7
- data/lib/active_merchant/billing/gateways/openpay.rb +20 -3
- data/lib/active_merchant/billing/gateways/orbital.rb +378 -335
- data/lib/active_merchant/billing/gateways/pay_trace.rb +64 -18
- data/lib/active_merchant/billing/gateways/payeezy.rb +59 -4
- data/lib/active_merchant/billing/gateways/payflow.rb +62 -0
- data/lib/active_merchant/billing/gateways/paymentez.rb +44 -13
- data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +4 -0
- data/lib/active_merchant/billing/gateways/paysafe.rb +37 -29
- data/lib/active_merchant/billing/gateways/payu_latam.rb +28 -15
- data/lib/active_merchant/billing/gateways/plexo.rb +308 -0
- data/lib/active_merchant/billing/gateways/priority.rb +185 -140
- data/lib/active_merchant/billing/gateways/rapyd.rb +319 -0
- data/lib/active_merchant/billing/gateways/reach.rb +277 -0
- data/lib/active_merchant/billing/gateways/redsys.rb +9 -5
- data/lib/active_merchant/billing/gateways/safe_charge.rb +1 -4
- data/lib/active_merchant/billing/gateways/sage_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/securion_pay.rb +40 -0
- data/lib/active_merchant/billing/gateways/shift4.rb +342 -0
- data/lib/active_merchant/billing/gateways/simetrik.rb +368 -0
- data/lib/active_merchant/billing/gateways/stripe.rb +25 -3
- data/lib/active_merchant/billing/gateways/stripe_payment_intents.rb +155 -70
- data/lib/active_merchant/billing/gateways/tns.rb +2 -5
- data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +1 -1
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +14 -3
- data/lib/active_merchant/billing/gateways/vanco.rb +12 -3
- data/lib/active_merchant/billing/gateways/visanet_peru.rb +6 -2
- data/lib/active_merchant/billing/gateways/vpos.rb +7 -4
- data/lib/active_merchant/billing/gateways/wompi.rb +8 -4
- data/lib/active_merchant/billing/gateways/worldpay.rb +117 -9
- data/lib/active_merchant/billing/response.rb +15 -1
- data/lib/active_merchant/connection.rb +0 -2
- data/lib/active_merchant/country.rb +1 -0
- data/lib/active_merchant/errors.rb +4 -1
- data/lib/active_merchant/version.rb +1 -1
- metadata +28 -3
@@ -144,6 +144,11 @@ module ActiveMerchant #:nodoc:
|
|
144
144
|
store_request(credit_card, options)
|
145
145
|
end
|
146
146
|
|
147
|
+
def inquire(authorization, options = {})
|
148
|
+
order_id = order_id_from_authorization(authorization.to_s) || options[:order_id]
|
149
|
+
commit('direct_inquiry', build_order_inquiry_request(order_id, options), :ok, options)
|
150
|
+
end
|
151
|
+
|
147
152
|
def supports_scrubbing
|
148
153
|
true
|
149
154
|
end
|
@@ -237,6 +242,7 @@ module ActiveMerchant #:nodoc:
|
|
237
242
|
add_sub_merchant_data(xml, options[:sub_merchant_data]) if options[:sub_merchant_data]
|
238
243
|
add_hcg_additional_data(xml, options) if options[:hcg_additional_data]
|
239
244
|
add_instalments_data(xml, options) if options[:instalments]
|
245
|
+
add_additional_data(xml, money, options) if options[:level_2_data] || options[:level_3_data]
|
240
246
|
add_moto_flag(xml, options) if options.dig(:metadata, :manual_entry)
|
241
247
|
add_additional_3ds_data(xml, options) if options[:execute_threed] && options[:three_ds_version] && options[:three_ds_version] =~ /^2/
|
242
248
|
add_3ds_exemption(xml, options) if options[:exemption_type]
|
@@ -245,6 +251,91 @@ module ActiveMerchant #:nodoc:
|
|
245
251
|
end
|
246
252
|
end
|
247
253
|
|
254
|
+
def add_additional_data(xml, amount, options)
|
255
|
+
level_two_data = options[:level_2_data] || {}
|
256
|
+
level_three_data = options[:level_3_data] || {}
|
257
|
+
level_two_and_three_data = level_two_data.merge(level_three_data).symbolize_keys
|
258
|
+
|
259
|
+
xml.branchSpecificExtension do
|
260
|
+
xml.purchase do
|
261
|
+
add_level_two_and_three_data(xml, amount, level_two_and_three_data)
|
262
|
+
end
|
263
|
+
end
|
264
|
+
end
|
265
|
+
|
266
|
+
def add_level_two_and_three_data(xml, amount, data)
|
267
|
+
xml.invoiceReferenceNumber data[:invoice_reference_number] if data.include?(:invoice_reference_number)
|
268
|
+
xml.customerReference data[:customer_reference] if data.include?(:customer_reference)
|
269
|
+
xml.cardAcceptorTaxId data[:card_acceptor_tax_id] if data.include?(:card_acceptor_tax_id)
|
270
|
+
|
271
|
+
{
|
272
|
+
sales_tax: 'salesTax',
|
273
|
+
discount_amount: 'discountAmount',
|
274
|
+
shipping_amount: 'shippingAmount',
|
275
|
+
duty_amount: 'dutyAmount'
|
276
|
+
}.each do |key, tag|
|
277
|
+
next unless data.include?(key)
|
278
|
+
|
279
|
+
xml.tag! tag do
|
280
|
+
data_amount = data[key].symbolize_keys
|
281
|
+
add_amount(xml, data_amount[:amount].to_i, data_amount)
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
xml.discountName data[:discount_name] if data.include?(:discount_name)
|
286
|
+
xml.discountCode data[:discount_code] if data.include?(:discount_code)
|
287
|
+
|
288
|
+
add_date_element(xml, 'shippingDate', data[:shipping_date]) if data.include?(:shipping_date)
|
289
|
+
|
290
|
+
if data.include?(:shipping_courier)
|
291
|
+
xml.shippingCourier(
|
292
|
+
data[:shipping_courier][:priority],
|
293
|
+
data[:shipping_courier][:tracking_number],
|
294
|
+
data[:shipping_courier][:name]
|
295
|
+
)
|
296
|
+
end
|
297
|
+
|
298
|
+
add_optional_data_level_two_and_three(xml, data)
|
299
|
+
|
300
|
+
if data.include?(:item) && data[:item].kind_of?(Array)
|
301
|
+
data[:item].each { |item| add_items_into_level_three_data(xml, item.symbolize_keys) }
|
302
|
+
elsif data.include?(:item)
|
303
|
+
add_items_into_level_three_data(xml, data[:item].symbolize_keys)
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
def add_items_into_level_three_data(xml, item)
|
308
|
+
xml.item do
|
309
|
+
xml.description item[:description] if item[:description]
|
310
|
+
xml.productCode item[:product_code] if item[:product_code]
|
311
|
+
xml.commodityCode item[:commodity_code] if item[:commodity_code]
|
312
|
+
xml.quantity item[:quantity] if item[:quantity]
|
313
|
+
|
314
|
+
{
|
315
|
+
unit_cost: 'unitCost',
|
316
|
+
item_total: 'itemTotal',
|
317
|
+
item_total_with_tax: 'itemTotalWithTax',
|
318
|
+
item_discount_amount: 'itemDiscountAmount',
|
319
|
+
tax_amount: 'taxAmount'
|
320
|
+
}.each do |key, tag|
|
321
|
+
next unless item.include?(key)
|
322
|
+
|
323
|
+
xml.tag! tag do
|
324
|
+
data_amount = item[key].symbolize_keys
|
325
|
+
add_amount(xml, data_amount[:amount].to_i, data_amount)
|
326
|
+
end
|
327
|
+
end
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
def add_optional_data_level_two_and_three(xml, data)
|
332
|
+
xml.shipFromPostalCode data[:ship_from_postal_code] if data.include?(:ship_from_postal_code)
|
333
|
+
xml.destinationPostalCode data[:destination_postal_code] if data.include?(:destination_postal_code)
|
334
|
+
xml.destinationCountryCode data[:destination_country_code] if data.include?(:destination_country_code)
|
335
|
+
add_date_element(xml, 'orderDate', data[:order_date].symbolize_keys) if data.include?(:order_date)
|
336
|
+
xml.taxExempt data[:tax_exempt] if data.include?(:tax_exempt)
|
337
|
+
end
|
338
|
+
|
248
339
|
def order_tag_attributes(options)
|
249
340
|
{ 'orderCode' => clean_order_id(options[:order_id]), 'installationId' => options[:inst_id] || @options[:inst_id] }.reject { |_, v| !v.present? }
|
250
341
|
end
|
@@ -718,9 +809,18 @@ module ActiveMerchant #:nodoc:
|
|
718
809
|
resp_params = { action: action }
|
719
810
|
|
720
811
|
parse_elements(doc.root, resp_params)
|
812
|
+
extract_issuer_response(doc.root, resp_params)
|
813
|
+
|
721
814
|
resp_params
|
722
815
|
end
|
723
816
|
|
817
|
+
def extract_issuer_response(doc, response)
|
818
|
+
return unless issuer_response = doc.at_xpath('//paymentService//reply//orderStatus//payment//IssuerResponseCode')
|
819
|
+
|
820
|
+
response[:issuer_response_code] = issuer_response['code']
|
821
|
+
response[:issuer_response_description] = issuer_response['description']
|
822
|
+
end
|
823
|
+
|
724
824
|
def parse_elements(node, response)
|
725
825
|
node_name = node.name.underscore
|
726
826
|
node.attributes.each do |k, v|
|
@@ -743,9 +843,11 @@ module ActiveMerchant #:nodoc:
|
|
743
843
|
'Content-Type' => 'text/xml',
|
744
844
|
'Authorization' => encoded_credentials
|
745
845
|
}
|
746
|
-
|
747
|
-
|
748
|
-
|
846
|
+
|
847
|
+
# ensure cookie included on follow-up '3ds' and 'capture_request' calls, using the cookie saved from the preceding response
|
848
|
+
# cookie should be present in options on the 3ds and capture calls, but also still saved in the instance var in case
|
849
|
+
cookie = options[:cookie] || @cookie || nil
|
850
|
+
headers['Cookie'] = cookie if cookie
|
749
851
|
|
750
852
|
headers['Idempotency-Key'] = idempotency_key if idempotency_key
|
751
853
|
headers
|
@@ -761,7 +863,7 @@ module ActiveMerchant #:nodoc:
|
|
761
863
|
raw[:is3DSOrder] = true
|
762
864
|
end
|
763
865
|
success = success_from(action, raw, success_criteria)
|
764
|
-
message = message_from(success, raw, success_criteria)
|
866
|
+
message = message_from(success, raw, success_criteria, action)
|
765
867
|
|
766
868
|
Response.new(
|
767
869
|
success,
|
@@ -798,7 +900,8 @@ module ActiveMerchant #:nodoc:
|
|
798
900
|
def handle_response(response)
|
799
901
|
case response.code.to_i
|
800
902
|
when 200...300
|
801
|
-
|
903
|
+
cookie = response.header['Set-Cookie']&.match('^[^;]*')
|
904
|
+
@cookie = cookie[0] if cookie
|
802
905
|
response.body
|
803
906
|
else
|
804
907
|
raise ResponseError.new(response)
|
@@ -809,10 +912,10 @@ module ActiveMerchant #:nodoc:
|
|
809
912
|
success_criteria_success?(raw, success_criteria) || action_success?(action, raw)
|
810
913
|
end
|
811
914
|
|
812
|
-
def message_from(success, raw, success_criteria)
|
915
|
+
def message_from(success, raw, success_criteria, action)
|
813
916
|
return 'SUCCESS' if success
|
814
917
|
|
815
|
-
raw[:iso8583_return_code_description] || raw[:error] || required_status_message(raw, success_criteria)
|
918
|
+
raw[:iso8583_return_code_description] || raw[:error] || required_status_message(raw, success_criteria, action) || raw[:issuer_response_description]
|
816
919
|
end
|
817
920
|
|
818
921
|
# success_criteria can be:
|
@@ -829,6 +932,8 @@ module ActiveMerchant #:nodoc:
|
|
829
932
|
case action
|
830
933
|
when 'store'
|
831
934
|
raw[:token].present?
|
935
|
+
when 'direct_inquiry'
|
936
|
+
raw[:last_event].present?
|
832
937
|
else
|
833
938
|
false
|
834
939
|
end
|
@@ -838,8 +943,11 @@ module ActiveMerchant #:nodoc:
|
|
838
943
|
raw[:iso8583_return_code_code] || raw[:error_code] || nil unless success == 'SUCCESS'
|
839
944
|
end
|
840
945
|
|
841
|
-
def required_status_message(raw, success_criteria)
|
842
|
-
|
946
|
+
def required_status_message(raw, success_criteria, action)
|
947
|
+
return if success_criteria.include?(raw[:last_event])
|
948
|
+
return unless %w[cancel refund inquiry credit fast_credit].include?(action)
|
949
|
+
|
950
|
+
"A transaction status of #{success_criteria.collect { |c| "'#{c}'" }.join(' or ')} is required."
|
843
951
|
end
|
844
952
|
|
845
953
|
def authorization_from(action, raw, options)
|
@@ -85,7 +85,21 @@ module ActiveMerchant #:nodoc:
|
|
85
85
|
(primary_response ? primary_response.success? : true)
|
86
86
|
end
|
87
87
|
|
88
|
-
|
88
|
+
def avs_result
|
89
|
+
return @primary_response.try(:avs_result) if @use_first_response
|
90
|
+
|
91
|
+
result = responses.reverse.find { |r| r.avs_result['code'].present? }
|
92
|
+
result.try(:avs_result) || responses.last.try(:avs_result)
|
93
|
+
end
|
94
|
+
|
95
|
+
def cvv_result
|
96
|
+
return @primary_response.try(:cvv_result) if @use_first_response
|
97
|
+
|
98
|
+
result = responses.reverse.find { |r| r.cvv_result['code'].present? }
|
99
|
+
result.try(:cvv_result) || responses.last.try(:cvv_result)
|
100
|
+
end
|
101
|
+
|
102
|
+
%w(params message test authorization error_code emv_authorization test? fraud_review?).each do |m|
|
89
103
|
class_eval %(
|
90
104
|
def #{m}
|
91
105
|
(@responses.empty? ? nil : primary_response.#{m})
|
@@ -184,6 +184,7 @@ module ActiveMerchant #:nodoc:
|
|
184
184
|
{ alpha2: 'KP', name: 'Korea, Democratic People\'s Republic of', alpha3: 'PRK', numeric: '408' },
|
185
185
|
{ alpha2: 'KR', name: 'Korea, Republic of', alpha3: 'KOR', numeric: '410' },
|
186
186
|
{ alpha2: 'XK', name: 'Kosovo', alpha3: 'XKX', numeric: '900' },
|
187
|
+
{ alpha2: 'QZ', name: 'Kosovo', alpha3: 'XKX', numeric: '900' },
|
187
188
|
{ alpha2: 'KW', name: 'Kuwait', alpha3: 'KWT', numeric: '414' },
|
188
189
|
{ alpha2: 'KG', name: 'Kyrgyzstan', alpha3: 'KGZ', numeric: '417' },
|
189
190
|
{ alpha2: 'LA', name: 'Lao People\'s Democratic Republic', alpha3: 'LAO', numeric: '418' },
|
@@ -23,10 +23,13 @@ module ActiveMerchant #:nodoc:
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def to_s
|
26
|
-
"Failed with #{response.code} #{response.message if response.respond_to?(:message)}"
|
26
|
+
"Failed with #{response.code if response.respond_to?(:code)} #{response.message if response.respond_to?(:message)}"
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
class OAuthResponseError < ResponseError # :nodoc:
|
31
|
+
end
|
32
|
+
|
30
33
|
class ClientCertificateError < ActiveMerchantError # :nodoc
|
31
34
|
end
|
32
35
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activemerchant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.129.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Luetke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -72,6 +72,20 @@ dependencies:
|
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '1.4'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rexml
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 3.2.5
|
82
|
+
type: :runtime
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 3.2.5
|
75
89
|
- !ruby/object:Gem::Dependency
|
76
90
|
name: mocha
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,6 +198,8 @@ files:
|
|
184
198
|
- lib/active_merchant/billing/gateway.rb
|
185
199
|
- lib/active_merchant/billing/gateways.rb
|
186
200
|
- lib/active_merchant/billing/gateways/adyen.rb
|
201
|
+
- lib/active_merchant/billing/gateways/airwallex.rb
|
202
|
+
- lib/active_merchant/billing/gateways/alelo.rb
|
187
203
|
- lib/active_merchant/billing/gateways/allied_wallet.rb
|
188
204
|
- lib/active_merchant/billing/gateways/authorize_net.rb
|
189
205
|
- lib/active_merchant/billing/gateways/authorize_net_arb.rb
|
@@ -206,6 +222,7 @@ files:
|
|
206
222
|
- lib/active_merchant/billing/gateways/bpoint.rb
|
207
223
|
- lib/active_merchant/billing/gateways/braintree.rb
|
208
224
|
- lib/active_merchant/billing/gateways/braintree/braintree_common.rb
|
225
|
+
- lib/active_merchant/billing/gateways/braintree/token_nonce.rb
|
209
226
|
- lib/active_merchant/billing/gateways/braintree_blue.rb
|
210
227
|
- lib/active_merchant/billing/gateways/braintree_orange.rb
|
211
228
|
- lib/active_merchant/billing/gateways/bridge_pay.rb
|
@@ -223,6 +240,7 @@ files:
|
|
223
240
|
- lib/active_merchant/billing/gateways/checkout_v2.rb
|
224
241
|
- lib/active_merchant/billing/gateways/citrus_pay.rb
|
225
242
|
- lib/active_merchant/billing/gateways/clearhaus.rb
|
243
|
+
- lib/active_merchant/billing/gateways/commerce_hub.rb
|
226
244
|
- lib/active_merchant/billing/gateways/commercegate.rb
|
227
245
|
- lib/active_merchant/billing/gateways/conekta.rb
|
228
246
|
- lib/active_merchant/billing/gateways/creditcall.rb
|
@@ -230,6 +248,8 @@ files:
|
|
230
248
|
- lib/active_merchant/billing/gateways/ct_payment.rb
|
231
249
|
- lib/active_merchant/billing/gateways/culqi.rb
|
232
250
|
- lib/active_merchant/billing/gateways/cyber_source.rb
|
251
|
+
- lib/active_merchant/billing/gateways/cyber_source/cyber_source_common.rb
|
252
|
+
- lib/active_merchant/billing/gateways/cyber_source_rest.rb
|
233
253
|
- lib/active_merchant/billing/gateways/d_local.rb
|
234
254
|
- lib/active_merchant/billing/gateways/data_cash.rb
|
235
255
|
- lib/active_merchant/billing/gateways/decidir.rb
|
@@ -357,6 +377,7 @@ files:
|
|
357
377
|
- lib/active_merchant/billing/gateways/payway.rb
|
358
378
|
- lib/active_merchant/billing/gateways/payway_dot_com.rb
|
359
379
|
- lib/active_merchant/billing/gateways/pin.rb
|
380
|
+
- lib/active_merchant/billing/gateways/plexo.rb
|
360
381
|
- lib/active_merchant/billing/gateways/plugnpay.rb
|
361
382
|
- lib/active_merchant/billing/gateways/priority.rb
|
362
383
|
- lib/active_merchant/billing/gateways/pro_pay.rb
|
@@ -370,6 +391,8 @@ files:
|
|
370
391
|
- lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb
|
371
392
|
- lib/active_merchant/billing/gateways/quickpay/quickpay_v4to7.rb
|
372
393
|
- lib/active_merchant/billing/gateways/qvalent.rb
|
394
|
+
- lib/active_merchant/billing/gateways/rapyd.rb
|
395
|
+
- lib/active_merchant/billing/gateways/reach.rb
|
373
396
|
- lib/active_merchant/billing/gateways/realex.rb
|
374
397
|
- lib/active_merchant/billing/gateways/redsys.rb
|
375
398
|
- lib/active_merchant/billing/gateways/s5.rb
|
@@ -382,6 +405,8 @@ files:
|
|
382
405
|
- lib/active_merchant/billing/gateways/secure_pay_au.rb
|
383
406
|
- lib/active_merchant/billing/gateways/secure_pay_tech.rb
|
384
407
|
- lib/active_merchant/billing/gateways/securion_pay.rb
|
408
|
+
- lib/active_merchant/billing/gateways/shift4.rb
|
409
|
+
- lib/active_merchant/billing/gateways/simetrik.rb
|
385
410
|
- lib/active_merchant/billing/gateways/skip_jack.rb
|
386
411
|
- lib/active_merchant/billing/gateways/smart_ps.rb
|
387
412
|
- lib/active_merchant/billing/gateways/so_easy_pay.rb
|
@@ -455,7 +480,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
455
480
|
- !ruby/object:Gem::Version
|
456
481
|
version: '0'
|
457
482
|
requirements: []
|
458
|
-
rubygems_version: 3.
|
483
|
+
rubygems_version: 3.4.12
|
459
484
|
signing_key:
|
460
485
|
specification_version: 4
|
461
486
|
summary: Framework and tools for dealing with credit card transactions.
|