Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CyberSource add bank account payment method support #4428

Closed
wants to merge 1 commit into from

Conversation

Heavyblade
Copy link
Collaborator

Summary:

This PR adds some test cases to ensure the current ACH implementation for CyberSource and modifies the credit method so it is able to support 'follow on' credits on transactions created with ACH debits.

Note: The 3 failing remote tests correspond to authentication failures because of the lack of a latam-related account.

Test Execution:

Remote
Finished in 89.497321 seconds.
110 tests, 555 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
97.2727% passed

Unit
Finished in 23.96186 seconds.
5183 tests, 75749 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

RuboCop:

739 files inspected, no offenses detected

Copy link
Collaborator

@javierpedrozaing javierpedrozaing left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job, LGTM

@Heavyblade Heavyblade changed the title Cybersource adding ACH support CyberSource add bank account payment method support May 19, 2022
@Heavyblade Heavyblade marked this pull request as ready for review May 19, 2022 16:54
@Heavyblade Heavyblade requested a review from curiousepic May 19, 2022 16:55
@Heavyblade Heavyblade force-pushed the cybersource_ach branch 4 times, most recently from 542ec6c to 3562c39 Compare May 23, 2022 18:30
Summary:
------------------------------
This PR adds some test cases to ensure the current
ACH implementation for CyberSource and modifies the
credit method so it is able to support 'follow on' credits
on transactions created with ACH debits.

Note: The 3 failing remote tests correspond to authentication
failures because of the lack of a latam related account.

Test Execution:
------------------------------
Remote
Finished in 89.497321 seconds.
110 tests, 555 assertions, 3 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
97.2727% passed

Unit
Finished in 23.96186 seconds.
5183 tests, 75749 assertions, 0 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
100% passed

RuboCop:
------------------------------
739 files inspected, no offenses detected
Copy link
Contributor

@curiousepic curiousepic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good. The pattern of setting options to pass info around internally is somewhat unusual for AM (as opposed to passing arguments all the way down the chain), but this is probably cleaner for this use case, and it's reasonable enough. 👍

priorityspreedly pushed a commit to priorityspreedly/active_merchant that referenced this pull request Jul 26, 2022
Summary:
---------------------------------------
In order to be able to use $0 authorizations this commit add
the gateway specific field "zero_amount_auth" as an option, so
I can verify my customers Credit Cards, depeding on the acquirng bank,
whithout making any charges to them.

Local Tests:
---------------------------------------
115 tests, 562 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
105 tests, 526 assertions, 7 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
93.3333% passed

RuboCop:
---------------------------------------
728 files inspected, no offenses detected

Closes activemerchant#4313

Decidir Plus: Improve response messaging

Improve the quality of the `message` we return in the response from the
gateway. These changes will account for a `status` of `rejected` and
check for an error message returned in the `status_details` from
Decidir Plus and will also account for `fraud_detection` responses

CE-2387

Unit: 13 tests, 53 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 16 tests, 56 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

PayU Latam: Refactor/fix failing remote tests

CE-586

This PR has some refactoring of the `message_from` method. It also updates several tests that were failing due to changes in the gateway's response. PayU Latam now supports `capture` so tests that were added by a previous contributor were uncommented out.

Local:
5057 tests, 75059 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
38 tests, 101 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
37 tests, 146 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Adyen: Add currencies with three decimals places

Summary:
---------------------------------------
In order to add currencies with three decimal places, this commit include
for currencies_with_three_decimal_places: Bahraini Dinar, Iraqi Dinar,
Jordanian Dinar, Kuwaiti Dinar, Libyan Dinar, Rial Omani, and Tunisian Dinar.

Local Tests:
---------------------------------------
90 tests, 464 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Note: This need an Spreedly member with an IP added to the whitelist for testing.

RuboCop:
728 files inspected, no offenses detected

Closes activemerchant#4322

parent 5931f62
author David Perry <[email protected]> 1571318981 -0400
committer Peter Oas <[email protected]> 1645031358 -0500

GlobalCollect: Improve success criteria

Test Summary:
Local: 5069 tests, 75103 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Unit: 33 tests, 158 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote: 33 tests, 86 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.9697% passed

Note: the failing test in the remote tests is `test_successful_purchase_with_installments(RemoteGlobalCollectTest)` which is unrelated to the success criteria refactored by this commit.

Co-authored-by: David Perry <[email protected]>

update changelog

Priority Payment Systems -  Clean up/refactor gateway file and tests

- Refactor gateway file to follow field naming standards with snake_case and add conditional logic
- Revise variables in test files to match snake_case formatting

Local:
5066 tests, 75095 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Unit:
11 tests, 60 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote:
20 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Closes activemerchant#4327

SafeCharge: Change Verify to send 0 amount

Also updates tests to reflect new `verify` flow.

CE-190

Rubocop:
728 files inspected, no offenses detected

Unit:
5068 tests, 75098 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_safe_charge_test
30 tests, 83 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

DLocal: Add support for `force_type` field

CE-2421

Rubocop:
728 files inspected, no offenses detected

Unit:
5069 tests, 75101 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_d_local_test
29 tests, 76 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.5517% passed

Barclaycard SmartPay: Support more nonstandard currencies

Summary:
This PR updates the currencies fractions list

Test Execution:
Finished in 92.308372 seconds.
38 tests, 90 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
86.8421% passed
Failures not related with the code update, pending to the audit work on this gateway to fix

RuboCop:
728 files inspected, no offenses detected

Closes activemerchant#4335

Decidir Plus: `name_override` option on `store`

Add support to override the payment method name value with one given in
the options hash.

CE-2149

Unit: 1 tests, 5 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 17 tests, 60 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Stripe PI: test shipping address (activemerchant#4344)

Tested shipping address field to be passed in to the stripe pi gateway.

CE-2425

Remote:
73 tests, 327 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
94.5205% passed

Unit:
5070 tests, 75113 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
728 files inspected, no offenses detected

Priority: Update `add_purchases_data` method

The `add_purchases_data` method tried to call `empty?` on the options
hash. When the `:purchases` key was unavailable `empty?` was called on a
`nil` value which returned a no method error. This fix avoids the no
method error by using an `unless` statement to check that the options
key exists

CE-2443

Local:
5070 tests, 75114 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:

11 tests, 60 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:

20 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Stripe PI: Update `shipping` to `shipping_address`

Updated field name from `shipping` to `shipping_address` to make it
consistent with other gateways.

CE-2425

Unit:
5070 tests, 75114 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
728 files inspected, no offenses detected

Remote:
74 tests, 319 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
91.8919% passed

Closes activemerchant#4347

DecidirPlus: Handle `payment_method_id` by `card_brand`

Determine `payment_method_id` based on `card_brand` passed in the
options hash for auth and purchase transactions

CE-2424

Unit: 13 tests, 53 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote0: 17 tests, 58 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

DecidirPlus: `debit` and `payment_method_id` fields

Add support for `debit` and `payment_method_id` gateway fields. Decidir+
requires that transactions after `store` need to contain a
`payment_method_id` that corresponds to the `payment_method` tokenized
on the initial `store` call. `payment_method_id`'s are also different
for debit and credit cards, so the `debit` option allows for users to
pass that value manually.

CE-2424

Unit: 13 tests, 55 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 22 tests, 74 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Adds Application ID to Adyen Gateway

Priority: Add support for `replay_id` field

`replay_id` can be thought of like an `idempotency_key`. When `replay_id` is sent the expected behavior is that if the gateway can find a duplicate `replay_id` attached to previous transaction they return that original response. This only works with `purchase` and `authorize`. `void` and `refund` should be sent w/ out `replay_id`.

CE-2403

Local:
5072 tests, 75128 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
13 tests, 74 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
25 tests, 81 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Moneris: ensure all remote tests pass

Prior to this change, only 97% of tests passed.

Requirements:
- Ensure your `fixtures.yml` uses `store5/yesguy` from [Testing a
  Solution](https://developer.moneris.com/More/Testing/Testing%20a%20Solution)
document

ECS-1882

Unit: 51 tests, 274 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 40 tests, 212 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Stripe PI: standardize shipping_address fields

CE-2467

Rubocop:
728 files inspected, no offenses detected

Unit:
5073 tests, 75132 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_stripe_payment_intents_test
74 tests, 337 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Airwallex: Support gateway

Addition of invalid_amount attributed to amount_too_small error from Stripe

Litle: Translate google_pay as android_pay

Description
-------------------------
We need unify the source as :android_pay if the network token is
google_pay or android_pay

JIRA ticket number
-------------------------
GWI-96

Unit test
-------------------------
Finished in 0.137911 seconds.

54 tests, 230 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

391.56 tests/s, 1667.74 assertions/s

Remote test
-------------------------
Finished in 35.502618 seconds.

50 tests, 209 assertions, 13 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
74% passed

1.41 tests/s, 5.89 assertions/s

Rubocop
-------------------------
729 files inspected, no offenses detected

Closes activemerchant#4331

Payflow Pro: Add 3DS Support

This commit introduces MPI-compatible way to pass 3DS authentication
parameters, as documented in [Payflow's 3-D Secure with 3rd-Party Merchant Plug-ins
](https://developer.paypal.com/api/nvp-soap/payflow/3d-secure-mpi/).

Prior to this change, we would pass the fields via the `BuyerAuthResult`
inside the `Card` node. Unfortunately, there's no explicit mention of
these, and as far as I can see, this was inferred via a series of
commits, and even then, some of the links referenced in them, are broken
:(, these are the commits:
- activemerchant#3362
- activemerchant#4075
- activemerchant#4113
- activemerchant#4168

Current Reference documentation, as of March 2022:
- [How to send 3-D Secure authentication data](https://developer.paypal.com/api/nvp-soap/payflow/3d-secure-mpi/#link-payflowfields)

"Legacy" documentation for 3DS data:
- [BuyerAuthStatusEnum, page 109](https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/pp_payflowpro_xmlpay_guide.pdf)

ECS-2350

Note: the 10 failing tests are the same ones that fail in `master`.

Rubocop:
731 files inspected, no offenses detected

Unit:
57 tests, 361 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
39 tests, 169 assertions, 10 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
74.359% passed

Payflow Pro: Add 3DS Support

This commit introduces MPI-compatible way to pass 3DS authentication
parameters, as documented in [Payflow's 3-D Secure with 3rd-Party Merchant Plug-ins
](https://developer.paypal.com/api/nvp-soap/payflow/3d-secure-mpi/).

Prior to this change, we would pass the fields via the `BuyerAuthResult`
inside the `Card` node. Unfortunately, there's no explicit mention of
these, and as far as I can see, this was inferred via a series of
commits, and even then, some of the links referenced in them, are broken
:(, these are the commits:
- activemerchant#3362
- activemerchant#4075
- activemerchant#4113
- activemerchant#4168

Current Reference documentation, as of March 2022:
- [How to send 3-D Secure authentication data](https://developer.paypal.com/api/nvp-soap/payflow/3d-secure-mpi/#link-payflowfields)

"Legacy" documentation for 3DS data:
- [BuyerAuthStatusEnum, page 109](https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/pp_payflowpro_xmlpay_guide.pdf)

ECS-2350

Note: the 10 failing tests are the same ones that fail in `master`.

Rubocop:
731 files inspected, no offenses detected

Unit:
57 tests, 361 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
39 tests, 169 assertions, 10 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
74.359% passed

Litle: Update schema version to 12.3 and test correction

Summary:
This PR updates the used schema to the latest version available according to the docs on https://vantiv.github.io/latest-versions/

Test Execution:
Finished in 38.911867 seconds.
50 tests, 227 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
92% passed
Several failing tests corrected according to docs in the following pages:
https://vantiv.github.io/sandbox/#howItWorks
https://developer.worldpay.com/assets/pdf/us-ecom-pdf/Worldpay_eComm_cnpAPI_Reference_Guide_APIV12.12_V2.16.pdf

RuboCop:
728 files inspected, no offenses detected

Closes activemerchant#4340

Braintree: Add ACH support for store

Summary:
------------------------------

This commit modifies the store method to add support for bank accounts
in order to enable ACH transactions on purchases, for that is needed an
extra work to simulate the tokenization flow that Braintree enables for
the front-end libraries to create token-nonces for payment methods.

This nonce is a requirement to store the bank account and set a flag to
require a verification via network checking.

Test Execution:
------------------------------

Remote:
Finished in 261.78288 seconds.
97 tests, 525 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions,
   0 notifications
100% passed

Unit:
Finished in 16.583145 seconds.
5045 tests, 74984 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions,
   0 notifications
100% passed

Rubocop
------------------------------
Inspecting 730 files
730 files inspected, no offenses detected

Closes activemerchant#4285

Revert "Litle: Update schema version to 12.3 and test correction"

This reverts commit 75f9272.

Reverting due to an unknown issue causing failures at Litle.

Small Rubocop Fixes

Fixes a few linting errors

Unit:
5100 tests, 75255 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
733 files inspected, no offenses detected

Added Simetrik gateway and tests

Closes activemerchant#4339

Rubocop:
736 files inspected, no offenses detected

Unit:
5112 tests, 75337 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_simetrik_test
12 tests, 61 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

EBANX: Change amount for Mexico and Chile

Merchants using Ebanx are seeing transactions being denied at the card verify flow due to the minimum amount expected in this type of transaction. Increase the value to be accepted by the acquirers in the card verify flow. When using local currencies we end up doing the verify using the local currency, and in those cases 100 may be less than the minimum value for a valid transaction in some countries.

Remote:
26 tests, 70 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.1538% passed

Unit:
5069 tests, 75101 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
728 files inspected, no offenses detected

Closes activemerchant#4337

DecidirPlus: Add new fields (activemerchant#4361)

Added decidir plus additional fields: `establishment_name`, `aggregate_data`, `sub_payments`, `card_holder_identification_type`, `card_holder_identification_number`, `card_door_number`, `card_holder_birthday`.

CE-2485

Remote:
25 tests, 83 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
5115 tests, 75352 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
736 files inspected, no offenses detected

DecidirPlus: Update `error_code` method (activemerchant#4364)

Updated `error_code_from` method to contain reason id in the error code
response.

CE-2490

Unit:
5113 tests, 75341 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
736 files inspected, no offenses detected

Remote:
23 tests, 77 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Dlocal: Add three_ds mpi support

Summary:
------------------------------
This PR adds support for third party three ds authentication
data on the DLocal gateway.

Test Execution:
------------------------------
Remote
Finished in 19.797433 seconds.
31 tests, 79 assertions, 2 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
93.5484% passed

Unit
Finished in 30.997677 seconds.
5076 tests, 75140 assertions, 0 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
100% passed

RuboCop:
------------------------------
728 files inspected, no offenses detected

Closes activemerchant#4345

Stripe PI: add request_three_d_secure to setup_intent

ECS-2391

Merchants that want to trigger 3DS flows manually
use the `request_three_d_secure` field when creating an intent
to do that. This was already added to `create_intent`, this
commit adds it to the `create_setup_intent` as well.

Test Summary
Local:
5123 tests, 75395 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Unit:
39 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote:
75 tests, 353 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Adyen: Add custom amount for `verify` (activemerchant#4369)

Added custom amount field `verify_amount` for verify action in adyen
gateway implementation.

CE-2483

Remote:
122 tests, 438 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
98.3607% passed

Unit:
5124 tests, 75400 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
736 files inspected, no offenses detected

* Stripe PI: Pass options for tokenizing Apple/Google Pay

Previously, we were not including the full options when making a
tokenization call for Apple and Google Pay, meaning that connected/
destination account info was not being included in the tokenization
process. This change now supplies the full options has to that call.

Local Tests:
---------------------------------------
39 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
76 tests, 341 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

RuboCop:
---------------------------------------
736 files inspected, no offenses detected

Closes activemerchant#4368

Dlocal: Format 3DS mpi enrollment data correctly

Summary:
------------------------------
This corrects the formatting of the enrollment response data when
passing 3DS MPI data.

Test Execution:
------------------------------
Remote (1 unrelated failure)
31 tests, 80 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.7742% passed

Unit
32 tests, 142 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

RuboCop:
------------------------------
728 files inspected, no offenses detected

Airwallex: QA

Moneris: Add 3DS MPI Fields Support

The field names, test values and logic parsing follow the guides
available in Moneri's [About 3D Secure 2.0](https://developer.moneris.com/livedemo/3ds2/reference/guide/php) guides.

**Caveats**
====

The available magic test data do not make it possible to trigger
reliable fail-scenarios for MPI-driven authentications.

ECS-1882

---

Test Summary

Note: failing tests are same ones as in `master` branch

Local: 5125 tests, 75361 assertions, 0 failures, 17 errors, 0 pendings, 0 omissions, 0 notifications
99.6683% passed

Unit: 53 tests, 284 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 44 tests, 223 assertions, 0 failures, 0 errors, 0 pendings, 1 omissions, 0 notifications
100% passed

Duplicate(concat) Address sent - card_connect is concat. address1 and 2 causing a AVS error (activemerchant#4362)

Co-authored-by: Nicholas Ashton <[email protected]>

Cybersource: Removes Pinless Debit Transaction Functionality and Testing

Local:
5123 tests, 75396 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
739 files inspected, no offenses detected

Unit:
114 tests, 554 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
104 tests, 528 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.1538% passed

Litle: Add support for Level 2 and 3 enhanced data

------
Summary:
This PR includes the enhanced data to enable level 2 and 3 data support in this gateway

Test Execution:
-------
Finished in 37.183788 seconds.
54 tests, 221 assertions, 13 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
75.9259% passed

Failing tests are not related to this requirement

RuboCop:
736 files inspected, no offenses detected

Closes activemerchant#4360

Rapyd: Add gateway support

- To note: the gateway doesn’t support void transactions for card payment methods, they must be run as refunds
- The gateway does not accept a refund unless the original transaction has been completed/closed/captured. Due to this, the verify method has to run a purchase and then a refund as opposed to the standard authorize and void
- Stylistic refactoring and cleaning up of some redundant code

CE-2394

Local:
5127 tests, 75381 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
739 files inspected, no offenses detected

Unit:
15 tests, 44 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
19 tests, 51 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Cybersource: Removes Pinless Debit Transaction Functionality and Testing

Local:
5129 tests, 75429 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Rubocop:
739 files inspected, no offenses detected

Unit:
114 tests, 554 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Note: `test_successful_asynchronous_adjust` needs test creds where async adjust is enabled to succeed.
Remote:
104 tests, 533 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
99.0385% passed

Airwallex: trap error when payment intent fails; send address correctly

Airwallex: Add `descriptor` field; update logic for sending `request_id`
and `merchant_order_id`

CE-2530

Rubocop:
739 files inspected, no offenses detected

Unit:
5145 tests, 75476 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications

Remote:
Loaded suite test/remote/gateways/remote_airwallex_test
18 tests, 46 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications

Visanet Peru: use timestamp for purchase number

Unit: 16 tests, 96 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 18 tests, 27 assertions, 16 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
11.1111% passed

CE-1846

Adyen: Fix `error_code_from` for unknown errors

Updated `error_code_from` to respond with default gateway error code in
case error is not listed in `STANDARD_ERROR_CODE_MAPPING`.

CE-2512

Closes activemerchant#4381

Remote:
123 tests, 440 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
98.374% passed

Unit:
5146 tests, 75480 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
739 files inspected, no offenses detected

Orbital: Add `tandem` support in orbital

Added support for tandem implementation in orbital and test case
coverage.

CE-2432

Closes activemerchant#4376

Credorax: Add `recipient` fields

Added `recipient_street_address`, `recipient_city`, `recipient_province_code`, and `recipient_country_code` fields to pass recipient information for refund operation.

CE-2500

Unit:
5148 tests, 75508 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
739 files inspected, no offenses detected

Remote:
46 tests, 157 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
86.9565% passed

Closes activemerchant#4384

Airwallex: Add Stored Credential support

CE-2300

Unit:
28 tests, 105 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
22 tests, 50 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rapyd: Add `metadata` and `ewallet_id` options

Add support to pass `metadata` on `purchase`, `authorize`, and `refund`
transactions and `ewallet_id` on `purchase` and `authorize`
transactions.

`metadata` can contain any collection of data so long as it is a json
object.

CE-2396

Unit: 16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 21 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Priority: Refactor gateway integration, add additional fields to request

CE-2491

Rubocop:
739 files inspected, no offenses dtected

Unit:
5159 tests, 75564 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_priority_test
27 tests, 81 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passede

Rapyd: Update `type` option to `pm_type`

Field name change to `pm_type` to be more specific

CE-2396

Unit: 16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 21 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Priority: Update `verify` method signature

Adds the unusued `options` argument to the `verify` method so that the
method accepts two arguments, according to ActiveMerchant standards.

Rubocop:
739 files inspected, no offenses detected

Unit:
5159 tests, 75564 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_priority_test
27 tests, 81 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Conekta: Fix remote test

Description
-------------------------
We need to check if all remote test are passing successfully
Updating test cards' year and removing unusual test

JIRA ticket number
-------------------------
GWI-141

Unit test
-------------------------
Finished in 0.011947 seconds.

13 tests, 85 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

1088.14 tests/s, 7114.76 assertions/s

Remote test
-------------------------
Finished in 54.175181 seconds.

15 tests, 56 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

0.28 tests/s, 1.03 assertions/s

Rubocop
-------------------------
739 files inspected, no offenses detected

Closes activemerchant#4386

Priority: add `settled` and `voided` to list of successful response statuses

Rubocop:
739 files inspected, no offenses dtected

Unit:
5161 tests, 75570 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_priority_test
27 tests, 81 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passede

NMI: Update post URL

Summary:
This PR updates the url of NMI to the most recent url according to the docs up to date

Test Execution:
Unit test
Finished in 8.867635 seconds.
52 tests, 394 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote test
Finished in 95.969518 seconds.
49 tests, 178 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
RuboCop:
739 files inspected, no offenses detected

Closes activemerchant#4380

Multiple Gateways: Resolve `when/case` bug

CE-2541

There is a bug in the `case` statements where we are attempting to
resolve it conditionally with an `||`, but `case` takes a single value
or list of values

Unit:

BluePay: 30 tests, 142 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Paysafe: 16 tests, 77 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

40 tests, 236 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:

CheckoutV2: 43 tests, 110 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

BluePay: 19 tests, 90 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Paysafe: 31 tests, 94 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Airwallex: Add 3DS Global Support

Add support for Spreedly's 3DS Global Solution. One notable distinction
is that Airwallex only supports three digit 3DS versions. Versions
returned from the MPI are formatted to meet that requirement.

Ex: 2.0 => 2.0.0
CE-2301

Unit:
31 tests, 130 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 3 unrelated tests failing
25 tests, 56 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
88% passed

Add Cartes Bancaires bin ranges (activemerchant#4398)

Add bin ranges so that we can identify the French card brand Cartes Bancaires

Release v1.126.0 (activemerchant#4402)

Airwallex: Add support for `original_transaction_id`

The `original_transaction_id` field allows users to manually  override the
`network_transaction_id`. This is useful when testing MITs using Stored
Credentials on Airwallex because they only allow specific values to be
passed which they do not return, and would normally be passed automatically in a
standard MIT Stored Credentials flow.

This PR also cleans up remote and unit tests for Airwallex stored creds.
CE-2560

Unit:
33 tests, 176 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
27 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Securion Pay: Pass external 3DS data

Summary:
------------------------------
This PR includes the fields and logic required to send external 3ds data
in SecurionPay transactions.

Test Execution:
------------------------------
Unit test
Finished in 0.033598 seconds.
33 tests, 188 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote test
Finished in 30.68658 seconds.
27 tests, 91 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
81.4815% passed
Failures not related with the added code

RuboCop:
------------------------------
739 files inspected, no offenses detected

Airwallex: Update Stored Credential testing

Airwallex requires specific NTID values in order to test the full Stored
Credential flow from CIT auth to MIT purchase. These values are now
automatically populated based on card `brand`. This PR also removes the
`original_transaction_id` GSF.
CE-2593

Unit:
33 tests, 176 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
26 tests, 61 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Simetrik: Fix integer and float types

CE-2407

This PR does some refactoring and updates some value types that were being passed incorrectly. The scrub method has also been updated.

Remote Tests:
12 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit Tests:
12 tests, 83 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Local Tests:
5167 tests, 75646 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
RuboCop:
739 files inspected, no offenses detected

Monei: add cardholderName field

Monei's sandbox does not care if this field gets passed or not, but its
omission will cause failures in production.

CE-2562

Rubocop:
739 files inspected, no offenses detected

Unit:
5174 tests, 75676 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
25 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Credorax: convert country codes

Convert 2 character country code to 3 characters country code as
required by the gateway for j9 parameter.

[CE-2573](https://spreedly.atlassian.net/browse/CE-2573)

Rubocop:
739 files inspected, no offenses detected

Unit:
5173 tests, 75673 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
46 tests, 157 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
86.9565% passed

Closes activemerchant#4408

BlueSnap: parse refund-transaction-id correctly

This change updates the `authorize_from` method to account for the presence of `refund-transaction-id` on select refund transactions.

CE-2522

Rubocop:
739 files inspected, no offenses detected

Unit:
5174 tests, 75678 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_blue_snap_test
50 tests, 169 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
98% passed

Worldpay: Add level II and level III data

Description
-------------------------
Send customer and tax information (level II) and
product-related information (level III)

Closes activemerchant#4393

Unit test
-------------------------
Finished in 0.660699 seconds.

102 tests, 603 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

154.38 tests/s, 912.67 assertions/s

Remote test
-------------------------
Finished in 81.188813 seconds.

99 tests, 412 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

1.22 tests/s, 5.07 assertions/s

Rubocop
-------------------------
739 files inspected, no offenses detected

Fix Changelog ordering

Worldpay: extract issuer response code

The data is embedded in XML attributes and was therefore not included in
the parsed response.

CE-2546

Rubocop:
739 files inspected, no offenses detected

Unit:
5175 tests, 75682 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_worldpay_test
94 tests, 392 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Vantiv: Read saleResponse duplicate attribute

The LitleGateway parse method reads elements and their text values, but does not read any of the elements attributes. Here we read one very specific attribute (probably not worth generalizing just yet). Here we're interested in a litle saleResponse that may or may not have the attribute "duplicate='true'". All AM litle saleResposnes will include duplicate: true/false.

Note on testing: Remote test for this feature is missing. It looks like the testvantivcnp api does not return the duplicate attribute the same way the production api does. Additionally, something seems to have changed in the testvantivcnp api such that existing remote tests fail. PR coming soon with fixes for existing tests.

CE-2506

Local:
5175 tests, 75684 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
13 failed tests, same as master. See note above.

Linting:
739 files inspected, no offenses detected

Ogone: Add support for 3dsv2
Summary:
---------------------------------------
In order to  support 3dsv2 this commit
add the mandatory,recommended and optionals
fields required for those transactions

Closes activemerchant#4410

Local Tests:
---------------------------------------
Finished in 0.124174 seconds.
48 tests, 206 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Finished in 103.344988 seconds.
32 tests, 132 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.875% passed

RuboCop:
---------------------------------------
739 files inspected, no offenses detected

BlueSnap: Add stored credential

Added `stored_credential` support by adding `transaction-initiator` and
`original-network-transaction-id` in the request parameters for blue
snap gateway implementation.

CE-2536

Rubocop:
739 files inspected, no offenses detected

Unit:
5180 tests, 75721 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
52 tests, 177 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications

Closes activemerchant#4414
98.0769% passed

Monei: Support `lang` field

CE-2615

Unit:
19 tests, 69 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
25 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Add Maestro BINs

There are a number of Maestro BINs that were missing in Active Merchant and need
to be added.  This PR adds those BIN values.

local: 5181 tests, 75726 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
unit: 5181 tests, 75726 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Wompi: Redirect `refund` to `void`

Refunds issued before 9PM Colombia time will fail. To fix this Wompi is
developing a `refund_or_void` endpoint, which will determine the time and run the proper transaction. To avoid failures in the meantime
all refunds will now be run as `void` calls. This is temporary.

I've created a new unit test to cover the `refund to void` flow and have
commented out the the other refund tests, which are superflous at the
moment.

CE-2635

Unit:
11 tests, 49 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
12 tests, 31 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rapyd: 3DS Support

Add support for 3DS v2 fields for Rapyd

Rapyd supports the standard transaction fields for 3DS: `3d_version`,
`cavv`, `eci`, `xid`, `ds_trans_id`

Fields can be passed, regardless of the version being used.

Documentation for simulating a 3DS transaction can be found in the Rapyd
documentation for
[Simulating 3DS Authentication](https://docs.rapyd.net/build-with-rapyd/reference/testing-for-payments-api#simulating-3ds-authentication-api-method)

CE-2596-rapyd_3ds

Unit: 16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 23 tests, 65 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Adyen: Update API version

Summary:
------------------------------
This PR changes the PAYMENT_API_VERSION updating it to a newer version. According to changelog and previous update there
is not any additional requirements to handle the update

Closes activemerchant#4418

Test Execution:
------------------------------
Unit test
Finished in 0.06828 seconds.
94 tests, 479 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote test
Finished in 163.203064 seconds.
123 tests, 439 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
97.561% passed
--------------------------
Failures not related with the added code

RuboCop:
------------------------------
739 files inspected, no offenses detected

Revert "Adyen: Update API version"

This reverts commit de83769.

Temporary reversion for logistical considerations.

Revert "Revert "Adyen: Update API version""

This reverts commit 0a274fd.

Ogone: Updated home gateway URL

Summary:
---------------------------------------
In order to add  update the home gateway URL for Ogone
this commit change the homepage_url to https://www.ingenico.com/login/ogone/

Closes activemerchant#4419

Local Tests:
---------------------------------------
49 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Finished in 86.941743 seconds.
32 tests, 132 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.875% passed

RuboCop:
---------------------------------------
739 files inspected, no offenses detected

Credorax: Update url gateway and credit cards

Closes activemerchant#4417

Unit test
-------------------------
Finished in 0.300459 seconds.

78 tests, 374 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

259.60 tests/s, 1244.76 assertions/s

Remote test
-------------------------
Finished in 264.711517 seconds.

46 tests, 157 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
86.9565% passed

0.17 tests/s, 0.59 assertions/s

Rubocop
-------------------------
739 files inspected, no offenses detected

Kushki: send extra_taxes on all currency types

DLocal: fix Idempotency Header bug

The `X-Idempotency-Key` header was not being sent in requests.

CE-2655

Rubocop:
739 files inspected, no offenses detected

Unit:
5185 tests, 75757 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
31 tests, 80 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.7742% passed

DLocal: Mark support for additional countries

Summary:
---------------------------------------
In order to add support to an updated list of countries
this commit add to the supported_countries the next ones:
El Salvador (SV), Guatemala (GT), Japan (JP), Tanzania (TZ),
Thailand (TH) and Uganda (UG)

Closes activemerchant#4427

Local Tests:
---------------------------------------
33 tests, 144 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Finished in 18.186212 seconds.
31 tests, 80 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.7742% passed

RuboCop:
---------------------------------------
739 files inspected, no offenses detected

Authorize.net: Enable zero auth for allowed cards

Summary:
------------------------------
This PR modifies the verify operation to perform zero auth when is permitted

Closes # 4430

Test Execution:
------------------------------
Unit test
Finished in 0.271949 seconds.
108 tests, 640 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote test
Finished in 89.63354 seconds.
75 tests, 272 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

RuboCop:
------------------------------
739 files inspected, no offenses detected

Rapyd: Additional Fields

Add support for:
* `complete_payment_url`
* `error_payment_url`
* `description`
* `statement_descriptor`

These fields are subfields of the `payment` object

CE-2606

Unit: 18 tests, 76 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 23 tests, 65 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Authorize Net: Fix verify test names

Braintree Blue: Return client token in AM response

Test Summary
Local: 5187 tests, 75716 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications
99.6337% passed
Unit: 90 tests, 200 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote: 97 tests, 528 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Simetrik: Hard-codes Audience field

Closes activemerchant#4433

Plexo: Add new gateway

Added plexo gateway implementation along with remote and unit test
cases.

CE-2536

Unit:
5201 tests, 75845 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
742 files inspected, no offenses detected

Remote:
15 tests, 43 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

CyberSource: Add bank account payment method support

Summary:
------------------------------
This PR adds some test cases to ensure the current
ACH implementation for CyberSource and modifies the
credit method so it is able to support 'follow on' credits
on transactions created with ACH debits.

Note: The 3 failing remote tests correspond to authentication
failures because of the lack of a latam related account.

Closes activemerchant#4428

Test Execution:
------------------------------
Remote
Finished in 89.497321 seconds.
110 tests, 555 assertions, 3 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
97.2727% passed

Unit
Finished in 23.96186 seconds.
5183 tests, 75749 assertions, 0 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
100% passed

RuboCop:
------------------------------
739 files inspected, no offenses detected

Revert "Authorize.net: Enable zero auth for allowed cards"

This reverts commit 3e82573.

Rapyd: Zero Dollar Auth

Add support for $0 auth (verify). In order to successfully pass a $0
verify, the value much be an int.

CE-2618

Unit: 16 tests, 65 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 23 tests, 65 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rapyd: Scrub ACH

Scrub the `account_number` and `routing_number` from the transcript

CE-2622

Unit: 17 tests, 69 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 24 tests, 69 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

VisaNet Peru: purchase_number bug fix

CE-2624

This updates the existing time stamp logic and filters it to be an even more specific slice of time, and appends two randomly generated numbers  to the end of the string. The existing unit test (def generate_purchase_number_stamp
 on line 145) seemed sufficient and is passing. 16  of 18 remote tests are failing and have been for at least 6 months.

Unit:
16 tests, 96 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
18 tests, 27 assertions, 16 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
11.1111% passed

Local:
5184 tests, 75754 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

CardConnect: Add support for 3ds V2 mpi data

Description
-------------------------

In order to support 3dsv2 properly this PR does an update
to the recommended files used for this transactions

Closes activemerchant#4429

Unit test
-------------------------
Finished in 0.938125 seconds.

27 tests, 109 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

28.78 tests/s, 116.19 assertions/s

Remote test
-------------------------
Finished in 29.117144 seconds.

25 tests, 58 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
92% passed

0.86 tests/s, 1.99 assertions/s

Rubocop
-------------------------
739 files inspected, no offenses detected

Rapyd: Support `store` and `unstore`

Add support for `store` and `unstore` transactions. `store` at a
minimum, requires the payment method and the customer name to create a
customer object at the Rapyd gateway.

Refactor `authorization_from` function to include the payment method
token in the `authorization` we return.

Change the `add_payment` function to be more consistent and use
`is_a?({PaymentObject})` check instead of the custom method of checking.

CE-2602

Unit: 19 tests, 83 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 26 tests, 74 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Orbital: Update API version to 9.0

Summary:
---------------------------------------
In order to have the recent gateway api version this
commit update the version from 8.1 to 9.0

Closes activemerchant#4440

Local Tests:
---------------------------------------
137 tests, 785 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Finished in 153.303693 seconds.
118 tests, 492 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Plexo: Update implementation for `plexo`

Closes activemerchant#4441

Added `meta_data` fields along with tests and updated response to
reorder amount field to support implementation in core.

CE-2567

Unit:
5208 tests, 75877 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
742 files inspected, no offenses detected

Remote:
16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Plexo: Change field name to `metadata` (activemerchant#4443)

Changed field name from `meta_data` to `metadata` as per the standards
of the gateway field.

CE-2567

Unit:
5208 tests, 75877 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
742 files inspected, no offenses detected

Remote:
16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

priority - new fork active merchant from jan 2022 plus extra required fields

remove expirydate from card input

priority - new fork active merchant from jan 2022 plus extra required fields

priority - add Pos data and L3 fields

priority - update POS data fields with WIX

priority - remove cardPresent from PosData obj

priority - remove comments for priority credentials

priority - fix commits

priority - fix snake case

remove expirydate from card input

add fix expiry date

priority - new fork active merchant from jan 2022 plus extra required fields

remove expirydate from card input

remove expirydate from card input

priority - add general credit
priorityspreedly pushed a commit to priorityspreedly/active_merchant that referenced this pull request Jul 26, 2022
Summary:
---------------------------------------
In order to be able to use $0 authorizations this commit add
the gateway specific field "zero_amount_auth" as an option, so
I can verify my customers Credit Cards, depeding on the acquirng bank,
whithout making any charges to them.

Local Tests:
---------------------------------------
115 tests, 562 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
105 tests, 526 assertions, 7 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
93.3333% passed

RuboCop:
---------------------------------------
728 files inspected, no offenses detected

Closes activemerchant#4313

Decidir Plus: Improve response messaging

Improve the quality of the `message` we return in the response from the
gateway. These changes will account for a `status` of `rejected` and
check for an error message returned in the `status_details` from
Decidir Plus and will also account for `fraud_detection` responses

CE-2387

Unit: 13 tests, 53 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 16 tests, 56 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

PayU Latam: Refactor/fix failing remote tests

CE-586

This PR has some refactoring of the `message_from` method. It also updates several tests that were failing due to changes in the gateway's response. PayU Latam now supports `capture` so tests that were added by a previous contributor were uncommented out.

Local:
5057 tests, 75059 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
38 tests, 101 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
37 tests, 146 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Adyen: Add currencies with three decimals places

Summary:
---------------------------------------
In order to add currencies with three decimal places, this commit include
for currencies_with_three_decimal_places: Bahraini Dinar, Iraqi Dinar,
Jordanian Dinar, Kuwaiti Dinar, Libyan Dinar, Rial Omani, and Tunisian Dinar.

Local Tests:
---------------------------------------
90 tests, 464 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Note: This need an Spreedly member with an IP added to the whitelist for testing.

RuboCop:
728 files inspected, no offenses detected

Closes activemerchant#4322

parent 5931f62
author David Perry <[email protected]> 1571318981 -0400
committer Peter Oas <[email protected]> 1645031358 -0500

GlobalCollect: Improve success criteria

Test Summary:
Local: 5069 tests, 75103 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Unit: 33 tests, 158 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote: 33 tests, 86 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.9697% passed

Note: the failing test in the remote tests is `test_successful_purchase_with_installments(RemoteGlobalCollectTest)` which is unrelated to the success criteria refactored by this commit.

Co-authored-by: David Perry <[email protected]>

update changelog

Priority Payment Systems -  Clean up/refactor gateway file and tests

- Refactor gateway file to follow field naming standards with snake_case and add conditional logic
- Revise variables in test files to match snake_case formatting

Local:
5066 tests, 75095 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Unit:
11 tests, 60 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote:
20 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Closes activemerchant#4327

SafeCharge: Change Verify to send 0 amount

Also updates tests to reflect new `verify` flow.

CE-190

Rubocop:
728 files inspected, no offenses detected

Unit:
5068 tests, 75098 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_safe_charge_test
30 tests, 83 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

DLocal: Add support for `force_type` field

CE-2421

Rubocop:
728 files inspected, no offenses detected

Unit:
5069 tests, 75101 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_d_local_test
29 tests, 76 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.5517% passed

Barclaycard SmartPay: Support more nonstandard currencies

Summary:
This PR updates the currencies fractions list

Test Execution:
Finished in 92.308372 seconds.
38 tests, 90 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
86.8421% passed
Failures not related with the code update, pending to the audit work on this gateway to fix

RuboCop:
728 files inspected, no offenses detected

Closes activemerchant#4335

Decidir Plus: `name_override` option on `store`

Add support to override the payment method name value with one given in
the options hash.

CE-2149

Unit: 1 tests, 5 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 17 tests, 60 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Stripe PI: test shipping address (activemerchant#4344)

Tested shipping address field to be passed in to the stripe pi gateway.

CE-2425

Remote:
73 tests, 327 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
94.5205% passed

Unit:
5070 tests, 75113 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
728 files inspected, no offenses detected

Priority: Update `add_purchases_data` method

The `add_purchases_data` method tried to call `empty?` on the options
hash. When the `:purchases` key was unavailable `empty?` was called on a
`nil` value which returned a no method error. This fix avoids the no
method error by using an `unless` statement to check that the options
key exists

CE-2443

Local:
5070 tests, 75114 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:

11 tests, 60 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:

20 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Stripe PI: Update `shipping` to `shipping_address`

Updated field name from `shipping` to `shipping_address` to make it
consistent with other gateways.

CE-2425

Unit:
5070 tests, 75114 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
728 files inspected, no offenses detected

Remote:
74 tests, 319 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
91.8919% passed

Closes activemerchant#4347

DecidirPlus: Handle `payment_method_id` by `card_brand`

Determine `payment_method_id` based on `card_brand` passed in the
options hash for auth and purchase transactions

CE-2424

Unit: 13 tests, 53 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote0: 17 tests, 58 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

DecidirPlus: `debit` and `payment_method_id` fields

Add support for `debit` and `payment_method_id` gateway fields. Decidir+
requires that transactions after `store` need to contain a
`payment_method_id` that corresponds to the `payment_method` tokenized
on the initial `store` call. `payment_method_id`'s are also different
for debit and credit cards, so the `debit` option allows for users to
pass that value manually.

CE-2424

Unit: 13 tests, 55 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 22 tests, 74 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Adds Application ID to Adyen Gateway

Priority: Add support for `replay_id` field

`replay_id` can be thought of like an `idempotency_key`. When `replay_id` is sent the expected behavior is that if the gateway can find a duplicate `replay_id` attached to previous transaction they return that original response. This only works with `purchase` and `authorize`. `void` and `refund` should be sent w/ out `replay_id`.

CE-2403

Local:
5072 tests, 75128 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
13 tests, 74 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
25 tests, 81 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Moneris: ensure all remote tests pass

Prior to this change, only 97% of tests passed.

Requirements:
- Ensure your `fixtures.yml` uses `store5/yesguy` from [Testing a
  Solution](https://developer.moneris.com/More/Testing/Testing%20a%20Solution)
document

ECS-1882

Unit: 51 tests, 274 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 40 tests, 212 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Stripe PI: standardize shipping_address fields

CE-2467

Rubocop:
728 files inspected, no offenses detected

Unit:
5073 tests, 75132 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_stripe_payment_intents_test
74 tests, 337 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Airwallex: Support gateway

Addition of invalid_amount attributed to amount_too_small error from Stripe

Litle: Translate google_pay as android_pay

Description
-------------------------
We need unify the source as :android_pay if the network token is
google_pay or android_pay

JIRA ticket number
-------------------------
GWI-96

Unit test
-------------------------
Finished in 0.137911 seconds.

54 tests, 230 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

391.56 tests/s, 1667.74 assertions/s

Remote test
-------------------------
Finished in 35.502618 seconds.

50 tests, 209 assertions, 13 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
74% passed

1.41 tests/s, 5.89 assertions/s

Rubocop
-------------------------
729 files inspected, no offenses detected

Closes activemerchant#4331

Payflow Pro: Add 3DS Support

This commit introduces MPI-compatible way to pass 3DS authentication
parameters, as documented in [Payflow's 3-D Secure with 3rd-Party Merchant Plug-ins
](https://developer.paypal.com/api/nvp-soap/payflow/3d-secure-mpi/).

Prior to this change, we would pass the fields via the `BuyerAuthResult`
inside the `Card` node. Unfortunately, there's no explicit mention of
these, and as far as I can see, this was inferred via a series of
commits, and even then, some of the links referenced in them, are broken
:(, these are the commits:
- activemerchant#3362
- activemerchant#4075
- activemerchant#4113
- activemerchant#4168

Current Reference documentation, as of March 2022:
- [How to send 3-D Secure authentication data](https://developer.paypal.com/api/nvp-soap/payflow/3d-secure-mpi/#link-payflowfields)

"Legacy" documentation for 3DS data:
- [BuyerAuthStatusEnum, page 109](https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/pp_payflowpro_xmlpay_guide.pdf)

ECS-2350

Note: the 10 failing tests are the same ones that fail in `master`.

Rubocop:
731 files inspected, no offenses detected

Unit:
57 tests, 361 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
39 tests, 169 assertions, 10 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
74.359% passed

Payflow Pro: Add 3DS Support

This commit introduces MPI-compatible way to pass 3DS authentication
parameters, as documented in [Payflow's 3-D Secure with 3rd-Party Merchant Plug-ins
](https://developer.paypal.com/api/nvp-soap/payflow/3d-secure-mpi/).

Prior to this change, we would pass the fields via the `BuyerAuthResult`
inside the `Card` node. Unfortunately, there's no explicit mention of
these, and as far as I can see, this was inferred via a series of
commits, and even then, some of the links referenced in them, are broken
:(, these are the commits:
- activemerchant#3362
- activemerchant#4075
- activemerchant#4113
- activemerchant#4168

Current Reference documentation, as of March 2022:
- [How to send 3-D Secure authentication data](https://developer.paypal.com/api/nvp-soap/payflow/3d-secure-mpi/#link-payflowfields)

"Legacy" documentation for 3DS data:
- [BuyerAuthStatusEnum, page 109](https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/pp_payflowpro_xmlpay_guide.pdf)

ECS-2350

Note: the 10 failing tests are the same ones that fail in `master`.

Rubocop:
731 files inspected, no offenses detected

Unit:
57 tests, 361 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
39 tests, 169 assertions, 10 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
74.359% passed

Litle: Update schema version to 12.3 and test correction

Summary:
This PR updates the used schema to the latest version available according to the docs on https://vantiv.github.io/latest-versions/

Test Execution:
Finished in 38.911867 seconds.
50 tests, 227 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
92% passed
Several failing tests corrected according to docs in the following pages:
https://vantiv.github.io/sandbox/#howItWorks
https://developer.worldpay.com/assets/pdf/us-ecom-pdf/Worldpay_eComm_cnpAPI_Reference_Guide_APIV12.12_V2.16.pdf

RuboCop:
728 files inspected, no offenses detected

Closes activemerchant#4340

Braintree: Add ACH support for store

Summary:
------------------------------

This commit modifies the store method to add support for bank accounts
in order to enable ACH transactions on purchases, for that is needed an
extra work to simulate the tokenization flow that Braintree enables for
the front-end libraries to create token-nonces for payment methods.

This nonce is a requirement to store the bank account and set a flag to
require a verification via network checking.

Test Execution:
------------------------------

Remote:
Finished in 261.78288 seconds.
97 tests, 525 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions,
   0 notifications
100% passed

Unit:
Finished in 16.583145 seconds.
5045 tests, 74984 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions,
   0 notifications
100% passed

Rubocop
------------------------------
Inspecting 730 files
730 files inspected, no offenses detected

Closes activemerchant#4285

Revert "Litle: Update schema version to 12.3 and test correction"

This reverts commit 75f9272.

Reverting due to an unknown issue causing failures at Litle.

Small Rubocop Fixes

Fixes a few linting errors

Unit:
5100 tests, 75255 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
733 files inspected, no offenses detected

Added Simetrik gateway and tests

Closes activemerchant#4339

Rubocop:
736 files inspected, no offenses detected

Unit:
5112 tests, 75337 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_simetrik_test
12 tests, 61 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

EBANX: Change amount for Mexico and Chile

Merchants using Ebanx are seeing transactions being denied at the card verify flow due to the minimum amount expected in this type of transaction. Increase the value to be accepted by the acquirers in the card verify flow. When using local currencies we end up doing the verify using the local currency, and in those cases 100 may be less than the minimum value for a valid transaction in some countries.

Remote:
26 tests, 70 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.1538% passed

Unit:
5069 tests, 75101 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
728 files inspected, no offenses detected

Closes activemerchant#4337

DecidirPlus: Add new fields (activemerchant#4361)

Added decidir plus additional fields: `establishment_name`, `aggregate_data`, `sub_payments`, `card_holder_identification_type`, `card_holder_identification_number`, `card_door_number`, `card_holder_birthday`.

CE-2485

Remote:
25 tests, 83 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
5115 tests, 75352 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
736 files inspected, no offenses detected

DecidirPlus: Update `error_code` method (activemerchant#4364)

Updated `error_code_from` method to contain reason id in the error code
response.

CE-2490

Unit:
5113 tests, 75341 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
736 files inspected, no offenses detected

Remote:
23 tests, 77 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Dlocal: Add three_ds mpi support

Summary:
------------------------------
This PR adds support for third party three ds authentication
data on the DLocal gateway.

Test Execution:
------------------------------
Remote
Finished in 19.797433 seconds.
31 tests, 79 assertions, 2 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
93.5484% passed

Unit
Finished in 30.997677 seconds.
5076 tests, 75140 assertions, 0 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
100% passed

RuboCop:
------------------------------
728 files inspected, no offenses detected

Closes activemerchant#4345

Stripe PI: add request_three_d_secure to setup_intent

ECS-2391

Merchants that want to trigger 3DS flows manually
use the `request_three_d_secure` field when creating an intent
to do that. This was already added to `create_intent`, this
commit adds it to the `create_setup_intent` as well.

Test Summary
Local:
5123 tests, 75395 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Unit:
39 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote:
75 tests, 353 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Adyen: Add custom amount for `verify` (activemerchant#4369)

Added custom amount field `verify_amount` for verify action in adyen
gateway implementation.

CE-2483

Remote:
122 tests, 438 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
98.3607% passed

Unit:
5124 tests, 75400 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
736 files inspected, no offenses detected

* Stripe PI: Pass options for tokenizing Apple/Google Pay

Previously, we were not including the full options when making a
tokenization call for Apple and Google Pay, meaning that connected/
destination account info was not being included in the tokenization
process. This change now supplies the full options has to that call.

Local Tests:
---------------------------------------
39 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
76 tests, 341 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

RuboCop:
---------------------------------------
736 files inspected, no offenses detected

Closes activemerchant#4368

Dlocal: Format 3DS mpi enrollment data correctly

Summary:
------------------------------
This corrects the formatting of the enrollment response data when
passing 3DS MPI data.

Test Execution:
------------------------------
Remote (1 unrelated failure)
31 tests, 80 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.7742% passed

Unit
32 tests, 142 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

RuboCop:
------------------------------
728 files inspected, no offenses detected

Airwallex: QA

Moneris: Add 3DS MPI Fields Support

The field names, test values and logic parsing follow the guides
available in Moneri's [About 3D Secure 2.0](https://developer.moneris.com/livedemo/3ds2/reference/guide/php) guides.

**Caveats**
====

The available magic test data do not make it possible to trigger
reliable fail-scenarios for MPI-driven authentications.

ECS-1882

---

Test Summary

Note: failing tests are same ones as in `master` branch

Local: 5125 tests, 75361 assertions, 0 failures, 17 errors, 0 pendings, 0 omissions, 0 notifications
99.6683% passed

Unit: 53 tests, 284 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 44 tests, 223 assertions, 0 failures, 0 errors, 0 pendings, 1 omissions, 0 notifications
100% passed

Duplicate(concat) Address sent - card_connect is concat. address1 and 2 causing a AVS error (activemerchant#4362)

Co-authored-by: Nicholas Ashton <[email protected]>

Cybersource: Removes Pinless Debit Transaction Functionality and Testing

Local:
5123 tests, 75396 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
739 files inspected, no offenses detected

Unit:
114 tests, 554 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
104 tests, 528 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.1538% passed

Litle: Add support for Level 2 and 3 enhanced data

------
Summary:
This PR includes the enhanced data to enable level 2 and 3 data support in this gateway

Test Execution:
-------
Finished in 37.183788 seconds.
54 tests, 221 assertions, 13 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
75.9259% passed

Failing tests are not related to this requirement

RuboCop:
736 files inspected, no offenses detected

Closes activemerchant#4360

Rapyd: Add gateway support

- To note: the gateway doesn’t support void transactions for card payment methods, they must be run as refunds
- The gateway does not accept a refund unless the original transaction has been completed/closed/captured. Due to this, the verify method has to run a purchase and then a refund as opposed to the standard authorize and void
- Stylistic refactoring and cleaning up of some redundant code

CE-2394

Local:
5127 tests, 75381 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
739 files inspected, no offenses detected

Unit:
15 tests, 44 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
19 tests, 51 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Cybersource: Removes Pinless Debit Transaction Functionality and Testing

Local:
5129 tests, 75429 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Rubocop:
739 files inspected, no offenses detected

Unit:
114 tests, 554 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Note: `test_successful_asynchronous_adjust` needs test creds where async adjust is enabled to succeed.
Remote:
104 tests, 533 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
99.0385% passed

Airwallex: trap error when payment intent fails; send address correctly

Airwallex: Add `descriptor` field; update logic for sending `request_id`
and `merchant_order_id`

CE-2530

Rubocop:
739 files inspected, no offenses detected

Unit:
5145 tests, 75476 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications

Remote:
Loaded suite test/remote/gateways/remote_airwallex_test
18 tests, 46 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications

Visanet Peru: use timestamp for purchase number

Unit: 16 tests, 96 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 18 tests, 27 assertions, 16 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
11.1111% passed

CE-1846

Adyen: Fix `error_code_from` for unknown errors

Updated `error_code_from` to respond with default gateway error code in
case error is not listed in `STANDARD_ERROR_CODE_MAPPING`.

CE-2512

Closes activemerchant#4381

Remote:
123 tests, 440 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
98.374% passed

Unit:
5146 tests, 75480 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
739 files inspected, no offenses detected

Orbital: Add `tandem` support in orbital

Added support for tandem implementation in orbital and test case
coverage.

CE-2432

Closes activemerchant#4376

Credorax: Add `recipient` fields

Added `recipient_street_address`, `recipient_city`, `recipient_province_code`, and `recipient_country_code` fields to pass recipient information for refund operation.

CE-2500

Unit:
5148 tests, 75508 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
739 files inspected, no offenses detected

Remote:
46 tests, 157 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
86.9565% passed

Closes activemerchant#4384

Airwallex: Add Stored Credential support

CE-2300

Unit:
28 tests, 105 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
22 tests, 50 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rapyd: Add `metadata` and `ewallet_id` options

Add support to pass `metadata` on `purchase`, `authorize`, and `refund`
transactions and `ewallet_id` on `purchase` and `authorize`
transactions.

`metadata` can contain any collection of data so long as it is a json
object.

CE-2396

Unit: 16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 21 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Priority: Refactor gateway integration, add additional fields to request

CE-2491

Rubocop:
739 files inspected, no offenses dtected

Unit:
5159 tests, 75564 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_priority_test
27 tests, 81 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passede

Rapyd: Update `type` option to `pm_type`

Field name change to `pm_type` to be more specific

CE-2396

Unit: 16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 21 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Priority: Update `verify` method signature

Adds the unusued `options` argument to the `verify` method so that the
method accepts two arguments, according to ActiveMerchant standards.

Rubocop:
739 files inspected, no offenses detected

Unit:
5159 tests, 75564 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_priority_test
27 tests, 81 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Conekta: Fix remote test

Description
-------------------------
We need to check if all remote test are passing successfully
Updating test cards' year and removing unusual test

JIRA ticket number
-------------------------
GWI-141

Unit test
-------------------------
Finished in 0.011947 seconds.

13 tests, 85 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

1088.14 tests/s, 7114.76 assertions/s

Remote test
-------------------------
Finished in 54.175181 seconds.

15 tests, 56 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

0.28 tests/s, 1.03 assertions/s

Rubocop
-------------------------
739 files inspected, no offenses detected

Closes activemerchant#4386

Priority: add `settled` and `voided` to list of successful response statuses

Rubocop:
739 files inspected, no offenses dtected

Unit:
5161 tests, 75570 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_priority_test
27 tests, 81 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passede

NMI: Update post URL

Summary:
This PR updates the url of NMI to the most recent url according to the docs up to date

Test Execution:
Unit test
Finished in 8.867635 seconds.
52 tests, 394 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote test
Finished in 95.969518 seconds.
49 tests, 178 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
RuboCop:
739 files inspected, no offenses detected

Closes activemerchant#4380

Multiple Gateways: Resolve `when/case` bug

CE-2541

There is a bug in the `case` statements where we are attempting to
resolve it conditionally with an `||`, but `case` takes a single value
or list of values

Unit:

BluePay: 30 tests, 142 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Paysafe: 16 tests, 77 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

40 tests, 236 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:

CheckoutV2: 43 tests, 110 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

BluePay: 19 tests, 90 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Paysafe: 31 tests, 94 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Airwallex: Add 3DS Global Support

Add support for Spreedly's 3DS Global Solution. One notable distinction
is that Airwallex only supports three digit 3DS versions. Versions
returned from the MPI are formatted to meet that requirement.

Ex: 2.0 => 2.0.0
CE-2301

Unit:
31 tests, 130 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 3 unrelated tests failing
25 tests, 56 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
88% passed

Add Cartes Bancaires bin ranges (activemerchant#4398)

Add bin ranges so that we can identify the French card brand Cartes Bancaires

Release v1.126.0 (activemerchant#4402)

Airwallex: Add support for `original_transaction_id`

The `original_transaction_id` field allows users to manually  override the
`network_transaction_id`. This is useful when testing MITs using Stored
Credentials on Airwallex because they only allow specific values to be
passed which they do not return, and would normally be passed automatically in a
standard MIT Stored Credentials flow.

This PR also cleans up remote and unit tests for Airwallex stored creds.
CE-2560

Unit:
33 tests, 176 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
27 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Securion Pay: Pass external 3DS data

Summary:
------------------------------
This PR includes the fields and logic required to send external 3ds data
in SecurionPay transactions.

Test Execution:
------------------------------
Unit test
Finished in 0.033598 seconds.
33 tests, 188 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote test
Finished in 30.68658 seconds.
27 tests, 91 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
81.4815% passed
Failures not related with the added code

RuboCop:
------------------------------
739 files inspected, no offenses detected

Airwallex: Update Stored Credential testing

Airwallex requires specific NTID values in order to test the full Stored
Credential flow from CIT auth to MIT purchase. These values are now
automatically populated based on card `brand`. This PR also removes the
`original_transaction_id` GSF.
CE-2593

Unit:
33 tests, 176 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
26 tests, 61 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Simetrik: Fix integer and float types

CE-2407

This PR does some refactoring and updates some value types that were being passed incorrectly. The scrub method has also been updated.

Remote Tests:
12 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit Tests:
12 tests, 83 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Local Tests:
5167 tests, 75646 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
RuboCop:
739 files inspected, no offenses detected

Monei: add cardholderName field

Monei's sandbox does not care if this field gets passed or not, but its
omission will cause failures in production.

CE-2562

Rubocop:
739 files inspected, no offenses detected

Unit:
5174 tests, 75676 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
25 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Credorax: convert country codes

Convert 2 character country code to 3 characters country code as
required by the gateway for j9 parameter.

[CE-2573](https://spreedly.atlassian.net/browse/CE-2573)

Rubocop:
739 files inspected, no offenses detected

Unit:
5173 tests, 75673 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
46 tests, 157 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
86.9565% passed

Closes activemerchant#4408

BlueSnap: parse refund-transaction-id correctly

This change updates the `authorize_from` method to account for the presence of `refund-transaction-id` on select refund transactions.

CE-2522

Rubocop:
739 files inspected, no offenses detected

Unit:
5174 tests, 75678 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_blue_snap_test
50 tests, 169 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
98% passed

Worldpay: Add level II and level III data

Description
-------------------------
Send customer and tax information (level II) and
product-related information (level III)

Closes activemerchant#4393

Unit test
-------------------------
Finished in 0.660699 seconds.

102 tests, 603 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

154.38 tests/s, 912.67 assertions/s

Remote test
-------------------------
Finished in 81.188813 seconds.

99 tests, 412 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

1.22 tests/s, 5.07 assertions/s

Rubocop
-------------------------
739 files inspected, no offenses detected

Fix Changelog ordering

Worldpay: extract issuer response code

The data is embedded in XML attributes and was therefore not included in
the parsed response.

CE-2546

Rubocop:
739 files inspected, no offenses detected

Unit:
5175 tests, 75682 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_worldpay_test
94 tests, 392 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Vantiv: Read saleResponse duplicate attribute

The LitleGateway parse method reads elements and their text values, but does not read any of the elements attributes. Here we read one very specific attribute (probably not worth generalizing just yet). Here we're interested in a litle saleResponse that may or may not have the attribute "duplicate='true'". All AM litle saleResposnes will include duplicate: true/false.

Note on testing: Remote test for this feature is missing. It looks like the testvantivcnp api does not return the duplicate attribute the same way the production api does. Additionally, something seems to have changed in the testvantivcnp api such that existing remote tests fail. PR coming soon with fixes for existing tests.

CE-2506

Local:
5175 tests, 75684 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
13 failed tests, same as master. See note above.

Linting:
739 files inspected, no offenses detected

Ogone: Add support for 3dsv2
Summary:
---------------------------------------
In order to  support 3dsv2 this commit
add the mandatory,recommended and optionals
fields required for those transactions

Closes activemerchant#4410

Local Tests:
---------------------------------------
Finished in 0.124174 seconds.
48 tests, 206 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Finished in 103.344988 seconds.
32 tests, 132 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.875% passed

RuboCop:
---------------------------------------
739 files inspected, no offenses detected

BlueSnap: Add stored credential

Added `stored_credential` support by adding `transaction-initiator` and
`original-network-transaction-id` in the request parameters for blue
snap gateway implementation.

CE-2536

Rubocop:
739 files inspected, no offenses detected

Unit:
5180 tests, 75721 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
52 tests, 177 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications

Closes activemerchant#4414
98.0769% passed

Monei: Support `lang` field

CE-2615

Unit:
19 tests, 69 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
25 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Add Maestro BINs

There are a number of Maestro BINs that were missing in Active Merchant and need
to be added.  This PR adds those BIN values.

local: 5181 tests, 75726 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
unit: 5181 tests, 75726 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Wompi: Redirect `refund` to `void`

Refunds issued before 9PM Colombia time will fail. To fix this Wompi is
developing a `refund_or_void` endpoint, which will determine the time and run the proper transaction. To avoid failures in the meantime
all refunds will now be run as `void` calls. This is temporary.

I've created a new unit test to cover the `refund to void` flow and have
commented out the the other refund tests, which are superflous at the
moment.

CE-2635

Unit:
11 tests, 49 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
12 tests, 31 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rapyd: 3DS Support

Add support for 3DS v2 fields for Rapyd

Rapyd supports the standard transaction fields for 3DS: `3d_version`,
`cavv`, `eci`, `xid`, `ds_trans_id`

Fields can be passed, regardless of the version being used.

Documentation for simulating a 3DS transaction can be found in the Rapyd
documentation for
[Simulating 3DS Authentication](https://docs.rapyd.net/build-with-rapyd/reference/testing-for-payments-api#simulating-3ds-authentication-api-method)

CE-2596-rapyd_3ds

Unit: 16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 23 tests, 65 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Adyen: Update API version

Summary:
------------------------------
This PR changes the PAYMENT_API_VERSION updating it to a newer version. According to changelog and previous update there
is not any additional requirements to handle the update

Closes activemerchant#4418

Test Execution:
------------------------------
Unit test
Finished in 0.06828 seconds.
94 tests, 479 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote test
Finished in 163.203064 seconds.
123 tests, 439 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
97.561% passed
--------------------------
Failures not related with the added code

RuboCop:
------------------------------
739 files inspected, no offenses detected

Revert "Adyen: Update API version"

This reverts commit de83769.

Temporary reversion for logistical considerations.

Revert "Revert "Adyen: Update API version""

This reverts commit 0a274fd.

Ogone: Updated home gateway URL

Summary:
---------------------------------------
In order to add  update the home gateway URL for Ogone
this commit change the homepage_url to https://www.ingenico.com/login/ogone/

Closes activemerchant#4419

Local Tests:
---------------------------------------
49 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Finished in 86.941743 seconds.
32 tests, 132 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.875% passed

RuboCop:
---------------------------------------
739 files inspected, no offenses detected

Credorax: Update url gateway and credit cards

Closes activemerchant#4417

Unit test
-------------------------
Finished in 0.300459 seconds.

78 tests, 374 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

259.60 tests/s, 1244.76 assertions/s

Remote test
-------------------------
Finished in 264.711517 seconds.

46 tests, 157 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
86.9565% passed

0.17 tests/s, 0.59 assertions/s

Rubocop
-------------------------
739 files inspected, no offenses detected

Kushki: send extra_taxes on all currency types

DLocal: fix Idempotency Header bug

The `X-Idempotency-Key` header was not being sent in requests.

CE-2655

Rubocop:
739 files inspected, no offenses detected

Unit:
5185 tests, 75757 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
31 tests, 80 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.7742% passed

DLocal: Mark support for additional countries

Summary:
---------------------------------------
In order to add support to an updated list of countries
this commit add to the supported_countries the next ones:
El Salvador (SV), Guatemala (GT), Japan (JP), Tanzania (TZ),
Thailand (TH) and Uganda (UG)

Closes activemerchant#4427

Local Tests:
---------------------------------------
33 tests, 144 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Finished in 18.186212 seconds.
31 tests, 80 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
96.7742% passed

RuboCop:
---------------------------------------
739 files inspected, no offenses detected

Authorize.net: Enable zero auth for allowed cards

Summary:
------------------------------
This PR modifies the verify operation to perform zero auth when is permitted

Closes # 4430

Test Execution:
------------------------------
Unit test
Finished in 0.271949 seconds.
108 tests, 640 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote test
Finished in 89.63354 seconds.
75 tests, 272 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

RuboCop:
------------------------------
739 files inspected, no offenses detected

Rapyd: Additional Fields

Add support for:
* `complete_payment_url`
* `error_payment_url`
* `description`
* `statement_descriptor`

These fields are subfields of the `payment` object

CE-2606

Unit: 18 tests, 76 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 23 tests, 65 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Authorize Net: Fix verify test names

Braintree Blue: Return client token in AM response

Test Summary
Local: 5187 tests, 75716 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications
99.6337% passed
Unit: 90 tests, 200 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote: 97 tests, 528 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Simetrik: Hard-codes Audience field

Closes activemerchant#4433

Plexo: Add new gateway

Added plexo gateway implementation along with remote and unit test
cases.

CE-2536

Unit:
5201 tests, 75845 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
742 files inspected, no offenses detected

Remote:
15 tests, 43 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

CyberSource: Add bank account payment method support

Summary:
------------------------------
This PR adds some test cases to ensure the current
ACH implementation for CyberSource and modifies the
credit method so it is able to support 'follow on' credits
on transactions created with ACH debits.

Note: The 3 failing remote tests correspond to authentication
failures because of the lack of a latam related account.

Closes activemerchant#4428

Test Execution:
------------------------------
Remote
Finished in 89.497321 seconds.
110 tests, 555 assertions, 3 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
97.2727% passed

Unit
Finished in 23.96186 seconds.
5183 tests, 75749 assertions, 0 failures, 0 errors, 0 pendings,
0 omissions, 0 notifications
100% passed

RuboCop:
------------------------------
739 files inspected, no offenses detected

Revert "Authorize.net: Enable zero auth for allowed cards"

This reverts commit 3e82573.

Rapyd: Zero Dollar Auth

Add support for $0 auth (verify). In order to successfully pass a $0
verify, the value much be an int.

CE-2618

Unit: 16 tests, 65 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 23 tests, 65 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rapyd: Scrub ACH

Scrub the `account_number` and `routing_number` from the transcript

CE-2622

Unit: 17 tests, 69 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 24 tests, 69 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

VisaNet Peru: purchase_number bug fix

CE-2624

This updates the existing time stamp logic and filters it to be an even more specific slice of time, and appends two randomly generated numbers  to the end of the string. The existing unit test (def generate_purchase_number_stamp
 on line 145) seemed sufficient and is passing. 16  of 18 remote tests are failing and have been for at least 6 months.

Unit:
16 tests, 96 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
18 tests, 27 assertions, 16 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
11.1111% passed

Local:
5184 tests, 75754 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

CardConnect: Add support for 3ds V2 mpi data

Description
-------------------------

In order to support 3dsv2 properly this PR does an update
to the recommended files used for this transactions

Closes activemerchant#4429

Unit test
-------------------------
Finished in 0.938125 seconds.

27 tests, 109 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

28.78 tests/s, 116.19 assertions/s

Remote test
-------------------------
Finished in 29.117144 seconds.

25 tests, 58 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
92% passed

0.86 tests/s, 1.99 assertions/s

Rubocop
-------------------------
739 files inspected, no offenses detected

Rapyd: Support `store` and `unstore`

Add support for `store` and `unstore` transactions. `store` at a
minimum, requires the payment method and the customer name to create a
customer object at the Rapyd gateway.

Refactor `authorization_from` function to include the payment method
token in the `authorization` we return.

Change the `add_payment` function to be more consistent and use
`is_a?({PaymentObject})` check instead of the custom method of checking.

CE-2602

Unit: 19 tests, 83 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 26 tests, 74 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Orbital: Update API version to 9.0

Summary:
---------------------------------------
In order to have the recent gateway api version this
commit update the version from 8.1 to 9.0

Closes activemerchant#4440

Local Tests:
---------------------------------------
137 tests, 785 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote Tests:
---------------------------------------
Finished in 153.303693 seconds.
118 tests, 492 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Plexo: Update implementation for `plexo`

Closes activemerchant#4441

Added `meta_data` fields along with tests and updated response to
reorder amount field to support implementation in core.

CE-2567

Unit:
5208 tests, 75877 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
742 files inspected, no offenses detected

Remote:
16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Plexo: Change field name to `metadata` (activemerchant#4443)

Changed field name from `meta_data` to `metadata` as per the standards
of the gateway field.

CE-2567

Unit:
5208 tests, 75877 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
742 files inspected, no offenses detected

Remote:
16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

priority - new fork active merchant from jan 2022 plus extra required fields

remove expirydate from card input

priority - new fork active merchant from jan 2022 plus extra required fields

priority - add Pos data and L3 fields

priority - update POS data fields with WIX

priority - remove cardPresent from PosData obj

priority - remove comments for priority credentials

priority - fix commits

priority - fix snake case

remove expirydate from card input

add fix expiry date

priority - new fork active merchant from jan 2022 plus extra required fields

remove expirydate from card input

remove expirydate from card input

priority - add general credit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants