activemerchant 1.111.0 → 1.112.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +9 -0
- data/lib/active_merchant/billing/gateways/adyen.rb +5 -0
- data/lib/active_merchant/billing/gateways/cyber_source.rb +20 -7
- data/lib/active_merchant/billing/gateways/element.rb +4 -0
- data/lib/active_merchant/billing/gateways/litle.rb +1 -1
- data/lib/active_merchant/billing/gateways/payu_latam.rb +4 -1
- data/lib/active_merchant/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b190bcb3ae62de72a04d6ccf0bdbf8118bf3a7ed933047623376c19462f5300c
|
4
|
+
data.tar.gz: f189cc282450940147eab25223d1046382edb063c5df42205f954931df22bce3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 720b7a70402af86c246c1f28cd2d5d310a84edc6528718b15bb3d6183001e1b1d083dfb43e5f8d2e89dddcaa75f385e1154059fd0e1d6ce6f4b168bd469cf119
|
7
|
+
data.tar.gz: c8206af39075a57a3c4d201ef0d80a2cd775509cd62e5f6f5bdcfbf60809a0dd4bfe16e61ed587f42a1f75ebbbe893c1f97947886e9c758e289cd6993f3f7ac5
|
data/CHANGELOG
CHANGED
@@ -2,6 +2,15 @@
|
|
2
2
|
|
3
3
|
== HEAD
|
4
4
|
|
5
|
+
== Version 1.112.0
|
6
|
+
* Cybersource: add `maestro` and `diners_club` eci brand mapping [bbraschi] #3708
|
7
|
+
* Cybersource: Ensure Partner Solution Id placement conforms to schema [britth] #3715
|
8
|
+
* Adyen: Adyen: Pass `subMerchantId` as `additionalData` [naashton] #3714
|
9
|
+
* Litle: Omit checkNum when nil [leila-alderman] #3719
|
10
|
+
* PayU Latam: Improve error response [esmitperez] #3717
|
11
|
+
* Vantiv: Vantiv Express - CardPresentCode, PaymentType, SubmissionType, DuplicateCheckDisableFlag [esmitperez] #3730,#3731
|
12
|
+
* Cybersource: Ensure issueradditionaldata comes before partnerSolutionId [britth] #3733
|
13
|
+
|
5
14
|
== Version 1.111.0
|
6
15
|
* Fat Zebra: standardized 3DS fields and card on file extra data for Visa scheme rules [montdidier] #3409
|
7
16
|
* Realex: Change 3DSecure v1 message_version to a valid format [shuhala] #3702
|
@@ -214,6 +214,7 @@ module ActiveMerchant #:nodoc:
|
|
214
214
|
add_shopper_data(post, options)
|
215
215
|
add_risk_data(post, options)
|
216
216
|
add_shopper_reference(post, options)
|
217
|
+
add_merchant_data(post, options)
|
217
218
|
end
|
218
219
|
|
219
220
|
def add_shopper_data(post, options)
|
@@ -225,6 +226,10 @@ module ActiveMerchant #:nodoc:
|
|
225
226
|
post[:additionalData][:updateShopperStatement] = options[:update_shopper_statement] if options[:update_shopper_statement]
|
226
227
|
end
|
227
228
|
|
229
|
+
def add_merchant_data(post, options)
|
230
|
+
post[:additionalData][:subMerchantId] = options[:sub_merchant_id] if options[:sub_merchant_id]
|
231
|
+
end
|
232
|
+
|
228
233
|
def add_risk_data(post, options)
|
229
234
|
if (risk_data = options[:risk_data])
|
230
235
|
risk_data = Hash[risk_data.map { |k, v| ["riskdata.#{k}", v] }]
|
@@ -30,9 +30,11 @@ module ActiveMerchant #:nodoc:
|
|
30
30
|
ECI_BRAND_MAPPING = {
|
31
31
|
visa: 'vbv',
|
32
32
|
master: 'spa',
|
33
|
+
maestro: 'spa',
|
33
34
|
american_express: 'aesk',
|
34
35
|
jcb: 'js',
|
35
36
|
discover: 'pb',
|
37
|
+
diners_club: 'pb',
|
36
38
|
}.freeze
|
37
39
|
DEFAULT_COLLECTION_INDICATOR = 2
|
38
40
|
|
@@ -278,10 +280,11 @@ module ActiveMerchant #:nodoc:
|
|
278
280
|
add_threeds_services(xml, options)
|
279
281
|
add_payment_network_token(xml) if network_tokenization?(creditcard_or_reference)
|
280
282
|
add_business_rules_data(xml, creditcard_or_reference, options)
|
281
|
-
|
283
|
+
add_stored_credential_subsequent_auth(xml, options)
|
282
284
|
add_issuer_additional_data(xml, options)
|
283
|
-
add_merchant_description(xml, options)
|
284
285
|
add_partner_solution_id(xml)
|
286
|
+
add_stored_credential_options(xml, options)
|
287
|
+
add_merchant_description(xml, options)
|
285
288
|
|
286
289
|
xml.target!
|
287
290
|
end
|
@@ -322,17 +325,20 @@ module ActiveMerchant #:nodoc:
|
|
322
325
|
add_mdd_fields(xml, options)
|
323
326
|
if !payment_method_or_reference.is_a?(String) && card_brand(payment_method_or_reference) == 'check'
|
324
327
|
add_check_service(xml)
|
328
|
+
add_issuer_additional_data(xml, options)
|
329
|
+
add_partner_solution_id(xml)
|
325
330
|
else
|
326
331
|
add_purchase_service(xml, payment_method_or_reference, options)
|
327
332
|
add_threeds_services(xml, options)
|
328
333
|
add_payment_network_token(xml) if network_tokenization?(payment_method_or_reference)
|
329
334
|
add_business_rules_data(xml, payment_method_or_reference, options) unless options[:pinless_debit_card]
|
335
|
+
add_stored_credential_subsequent_auth(xml, options)
|
336
|
+
add_issuer_additional_data(xml, options)
|
337
|
+
add_partner_solution_id(xml)
|
330
338
|
add_stored_credential_options(xml, options)
|
331
339
|
end
|
332
340
|
|
333
|
-
add_issuer_additional_data(xml, options)
|
334
341
|
add_merchant_description(xml, options)
|
335
|
-
add_partner_solution_id(xml)
|
336
342
|
|
337
343
|
xml.target!
|
338
344
|
end
|
@@ -843,20 +849,27 @@ module ActiveMerchant #:nodoc:
|
|
843
849
|
country_code&.code(:alpha2)
|
844
850
|
end
|
845
851
|
|
846
|
-
def
|
852
|
+
def add_stored_credential_subsequent_auth(xml, options={})
|
847
853
|
return unless options[:stored_credential] || options[:stored_credential_overrides]
|
848
854
|
|
849
855
|
stored_credential_subsequent_auth = 'true' if options.dig(:stored_credential, :initiator) == 'merchant'
|
856
|
+
|
857
|
+
override_subsequent_auth = options.dig(:stored_credential_overrides, :subsequent_auth)
|
858
|
+
|
859
|
+
xml.subsequentAuth override_subsequent_auth.nil? ? stored_credential_subsequent_auth : override_subsequent_auth
|
860
|
+
end
|
861
|
+
|
862
|
+
def add_stored_credential_options(xml, options={})
|
863
|
+
return unless options[:stored_credential] || options[:stored_credential_overrides]
|
864
|
+
|
850
865
|
stored_credential_subsequent_auth_first = 'true' if options.dig(:stored_credential, :initial_transaction)
|
851
866
|
stored_credential_transaction_id = options.dig(:stored_credential, :network_transaction_id) if options.dig(:stored_credential, :initiator) == 'merchant'
|
852
867
|
stored_credential_subsequent_auth_stored_cred = 'true' if options.dig(:stored_credential, :initiator) == 'cardholder' && !options.dig(:stored_credential, :initial_transaction) || options.dig(:stored_credential, :initiator) == 'merchant' && options.dig(:stored_credential, :reason_type) == 'unscheduled'
|
853
868
|
|
854
|
-
override_subsequent_auth = options.dig(:stored_credential_overrides, :subsequent_auth)
|
855
869
|
override_subsequent_auth_first = options.dig(:stored_credential_overrides, :subsequent_auth_first)
|
856
870
|
override_subsequent_auth_transaction_id = options.dig(:stored_credential_overrides, :subsequent_auth_transaction_id)
|
857
871
|
override_subsequent_auth_stored_cred = options.dig(:stored_credential_overrides, :subsequent_auth_stored_credential)
|
858
872
|
|
859
|
-
xml.subsequentAuth override_subsequent_auth.nil? ? stored_credential_subsequent_auth : override_subsequent_auth
|
860
873
|
xml.subsequentAuthFirst override_subsequent_auth_first.nil? ? stored_credential_subsequent_auth_first : override_subsequent_auth_first
|
861
874
|
xml.subsequentAuthTransactionID override_subsequent_auth_transaction_id.nil? ? stored_credential_transaction_id : override_subsequent_auth_transaction_id
|
862
875
|
xml.subsequentAuthStoredCredential override_subsequent_auth_stored_cred.nil? ? stored_credential_subsequent_auth_stored_cred : override_subsequent_auth_stored_cred
|
@@ -188,6 +188,10 @@ module ActiveMerchant #:nodoc:
|
|
188
188
|
xml.TransactionAmount amount(money.to_i) if money
|
189
189
|
xml.MarketCode 'Default' if money
|
190
190
|
xml.ReferenceNumber options[:order_id] || SecureRandom.hex(20)
|
191
|
+
|
192
|
+
xml.PaymentType options[:payment_type] if options[:payment_type]
|
193
|
+
xml.SubmissionType options[:submission_type] if options[:submission_type]
|
194
|
+
xml.DuplicateCheckDisableFlag options[:duplicate_check_disable_flag].to_s == 'true' ? 'True' : 'False' unless options[:duplicate_check_disable_flag].nil?
|
191
195
|
end
|
192
196
|
end
|
193
197
|
|
@@ -274,7 +274,7 @@ module ActiveMerchant #:nodoc:
|
|
274
274
|
doc.accType(payment_method.account_type.capitalize)
|
275
275
|
doc.accNum(payment_method.account_number)
|
276
276
|
doc.routingNum(payment_method.routing_number)
|
277
|
-
doc.checkNum(payment_method.number)
|
277
|
+
doc.checkNum(payment_method.number) if payment_method.number
|
278
278
|
end
|
279
279
|
else
|
280
280
|
doc.card do
|
@@ -391,11 +391,14 @@ module ActiveMerchant #:nodoc:
|
|
391
391
|
else
|
392
392
|
if response['transactionResponse']
|
393
393
|
response_message = response['transactionResponse']['responseMessage']
|
394
|
+
|
394
395
|
response_code = response['transactionResponse']['responseCode'] || response['transactionResponse']['pendingReason']
|
396
|
+
|
397
|
+
response_message = response_code + ' | ' + response['transactionResponse']['paymentNetworkResponseErrorMessage'] unless response['transactionResponse']['paymentNetworkResponseErrorMessage'].nil?
|
395
398
|
end
|
396
399
|
return response_code if success
|
397
400
|
|
398
|
-
response['error'] ||
|
401
|
+
response_message || response['error'] || response_code || 'FAILED'
|
399
402
|
end
|
400
403
|
end
|
401
404
|
|
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.112.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: 2020-08-
|
11
|
+
date: 2020-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|