-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
CybersourceREST - Refund | Credit #4700
Conversation
729026a
to
56a0664
Compare
3eef976
to
1dc052e
Compare
1dc052e
to
32b42cf
Compare
def url(action) | ||
"#{(test? ? test_url : live_url)}#{action}" | ||
"#{(test? ? test_url : live_url)}/pts/v2/#{action}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we expect to need to hit a different paths for other types of actions later? If not, I think we can just add this subpath to the base self.live/test_url
s
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, reviewing the changes from @scastilloendava looks like the paths for store/unstore have another subpath
|
||
def credit(money, payment, options = {}) | ||
post = build_credit_request(money, payment, options) | ||
commit('credits', post) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be credits/
? Or instead remove the /
from the payments call above
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No. Thanks, I removed /
in the payments
method
assert response.params['_links']['void'].present? | ||
end | ||
|
||
def test_successful_more_than_the_payment_amount_refund |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't we expect this to fail?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess not if their sandbox simulates the delay in confirmation, and just get a pending result.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At this moment I have no way to prove that a refund of greater value than the purchase is complete (even if it should fail), I get to the pending response therefore I will remove this test
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Nice work, merging.
@sinourain oops, could you squash the commits before I merge? |
Yes, I will, no worries |
Description ------------------------- This integration support the following payment operations: - Refund - Credit Unit test ------------------------- Finished in 40.91494 seconds. 5454 tests, 77134 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 133.30 tests/s, 1885.23 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected GWI-471
57af602
to
8498d23
Compare
* Stripe: Fix header for test account deletion call Previously using Bearer Authorization instead of Basic. Previously, the call did not seem to result in actual deletions, whereas after the switch there were multiple deletions. * Changelog fix * Alelo: Trigger access token refresh on 404 In production, expired UUIDs may return as a 404 instead of a 401. This expands the condition for refreshing access tokens to include a 404. No Remote test is added because sending a bad UUID seems to trigger a 500 from the sandbox instead of the 404 we see in prod. Remote: 17 tests, 43 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 23 tests, 105 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * DLocal: Add Network Tokens Summary: In order to support Network Tokens this commit adds the supportability in the add_cart method and supports_network_tokenization? method is setted in true. Closes #4608 Unit Test: Finished in 0.256649 seconds. 43 tests, 188 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote Test: Finished in 24.736933 seconds. 38 tests, 102 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: 750 files inspected, no offenses detected * Redsys: enable NTID generation with zero-value verify A temporary fix to enable NTID generation for cards without an NTID before the Nov 1 Visa deadline CER-234 * IPG Gateway: override store id ECS-2655 The IPG gateway requires a `store_id` to be used as part of the authentication. This value is correlates to a given merchant and is currently saved on the gateway initalize. By saving it only then, it prevents merchants with submerchants from using this gateway. This commit adds a new optional field that will override the saved `store_id` with one passed in for that merchant. Test Summary Remote: 18 tests, 54 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Adyen: Field support for Level 2 and level 3 information Description ------------------------- Adding support in Adyen gateway to append level 2 and level 3 information that provides commercial shoppers with additional information about purchases on their card statements. Closes #4617 Unit test ------------------------- Finished in 0.117629 seconds. 103 tests, 522 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- Finished in 139.349852 seconds. 127 tests, 423 assertions, 14 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 88.9764% passed Rubocop ------------------------- 750 files inspected, no offenses detected * Add alternate alpha2 country code for Kosovo Kosovo's XK country code is considered invalid by Adyen, but the Adyen API will accept QZ as a valid value to represent Kosovo instead CER-266 * CyberSource: Refactor and add support for several fields CER-243 This PR refactors the order of some methods to prevent XML parse errors. It also adds support for the following fields: installment_gracePeriodDuration taxManagementIndicator purchaseTotals_invoiceAmount purchaseTotals_originalAmount invoiceHeader_referenceDataCode invoiceHeader_invoiceNumber ccCaptureService_gratuityAmount ccAuthService_mobileRemotePaymentType otherTax_vatTaxRate Local: 5371 tests, 76705 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 118 tests, 600 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.6102% passed There is one additional remote test failure due to the fields not being added at the top level. Unit: 123 tests, 588 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Reach: adding gateway (#4618) Summary: ------------------------------ Adding Reach gateway with authorize, purchase and capture calls, also small correction on the CardStream local test to complain with Rubocop warnings. Remote Test: ------------------------------ Finished in 6.627757 seconds. 7 tests, 14 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ 5365 tests, 76686 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 753 files inspected, no offenses detected * Orbital: integration improvements Orbital adapter is currently failing certification based on missing support for these changes. Adds: - Support for commercial echeck (BankAccountType = 'X') - Support for Discover 3DS (DigitalTokenCryptogram) Unit: 144 tests, 817 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 122 tests, 509 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed ECS-2144 * Reach: Adding custom fields (#4627) * Reach: adding gateway Summary: ------------------------------ Adding Reach gateway with authorize, purchase and capture calls, also small correction on the CardStream local test to complain with Rubocop warnings. Remote Test: ------------------------------ Finished in 6.627757 seconds. 7 tests, 14 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ 5365 tests, 76686 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 753 files inspected, no offenses detected * Reach: Add customs fields ## Summary: Adding Reach custom fields Remote tests -------------------------------------------------------------------------- 12 tests, 27 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed unit tests -------------------------------------------------------------------------- 11 tests, 40 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Co-authored-by: cristian <Heavyblade@users.noreply.github.com> * iVeri: Add additional url Unit: 16 tests, 67 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 22 tests, 58 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Payeezy: Add apple pay Integrate apple pay in payeezy implementation along with tests. [Payeezy DPAN implementation](https://developer.payeezy.com/payeezy-api/apis/post/transactions-7) which is akin to our `NetworkTokenizationCreditCard` object SER-336 Rubocop: 750 files inspected, no offenses detected Unit: 43 tests, 201 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 42 tests, 172 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Payeezy Scrub Cryptogram (#4633) Scrub the `xid` and `cavv` values from the transcript. Additional scrub for `cvv`. SER-336 Unit: 44 tests, 203 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 43 tests, 174 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Reach: add Scrubing (#4620) Summary: ------------------------------ In order to scrub fields in the transaction transript, this commit adds fields to be filtered. Remote Test: ------------------------------ Finished in 10.189499 seconds. 7 tests, 18 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Test: ------------------------------ 6 tests, 27 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: ------------------------------ 753 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.local> * CyberSource: Refactor to better adhere to XSD This PR updates a few methods so that fields can be sent independently without causing the method to return if certain fields aren’t present. It also updates the order in which some methods are added to the request re: the XSD file. Unit Tests: 124 tests, 592 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 119 tests, 605 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.7983% passed *There are 3 tests that have been failing for months and a few others that are failing intermittently associated with bank accounts. I tried to look and see if maybe just the response message had changed but the failures are unpredictable and sometimes pass, while another bank account test fails. Local: 5399 tests, 76829 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CyberSource:Add fix for source.stored fix tests Closes #4629 * Mundipagg: send authorization_secret_key on all transaction types Description ------------------------- The authorization_secret_key GSF is set to be only sent on auth purchase transactions (the default), but this field is used for authenticating transactions and should be passed for every transaction type. auth key field is added to transactions that do not currently include it the remote test was updated due to outdated test card numbers Closes #4635 Unit test ------------------------- Finished in 0.029899 seconds. 32 tests, 164 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- Finished in 30.504306 seconds. 41 tests, 91 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.3659% passed Rubocop ------------------------- 753 files inspected, 11 offenses detected, 11 offenses corrected * Revert "CyberSource: Refactor to better adhere to XSD" This reverts commit 77d6e0b38c769d3026b058b168e5dd65954716d0. Local Tests 5399 tests, 76828 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests 123 tests, 588 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote Tests 118 tests, 602 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.4576% passed *same 3 are failing on master * CommerceHub: Add new gateway Added new gateway `commerce_hub` along with remote and unit tests. This integration includes support for `stored_credential` fields along with basic gateway transactions, except for `capture`. `capture` is currently not in a working state due to unknown configuration issues with our test account. In order to unblock this integration, I have left the transaction method in the gateway class and opted to comment out the test. CommerceHub is working to enable our test account for `capture` transactions, and once completed, we can re-test the transaction type. We also encounter a number of rate limit issues with our remote tests, which leads to some of the test failures. SER-207 Unit: 9 tests, 78 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: 753 files inspected, no offenses detected Remote: 15 tests, 30 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 66.6667% passed * Reach: PSP Integration - Verify / Void / Refund (#4641) Description ------------------------- This integration support the following payment operations: Verify Void Refund Unit test ------------------------- Finished in 40.346607 seconds. 5370 tests, 76698 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 133.10 tests/s, 1900.98 assertions/s Remote test ------------------------- Finished in 11.168364 seconds. 12 tests, 27 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 1.07 tests/s, 2.42 assertions/s Rubocop ------------------------- Running RuboCop... Inspecting 753 files 753 files inspected, no offenses detected * CyberSource: Update installment data method CER-296 This PR updates the installment data method to better handle when only certain fields are added. Remote Tests: 119 tests, 607 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.479% passed *3 failing tests also failing on master Unit Tests: 124 tests, 592 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Local Tests: 5410 tests, 76913 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * updating cabal BIN range DX-240 This adds a couple of Cabal 8 digit BIN ranges, and moves Cabal higher in the selection process since Discover has most of the BINs starting with 65 All local tests pass, did not run remote tests 5410 tests, 76915 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Reach: Add stored credential support (#4636) Summary: ------------------------------ In order to be able to store credentials, this commit adds add_stored_credentials method, and get_network_payment_reference to be used in network_transaction_id Remote Tests: ------------------------------ Finished in 36.906747 seconds. 16 tests, 42 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 2.793742 seconds. 16 tests, 75 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: ------------------------------ 753 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.local> * Element: fix bug with billing address email Enables the `add_address` method to successfully find `email` whether it is nested at the top level of the `options` hash or within the `billing_address` object CER-330 * Reach: Fixing bug when using union pay card This change aims to fix an bug related with the way to handle not supported card brands. Finished in 130.664153 seconds. 25 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Finished in 35.408869 seconds. 5415 tests, 76945 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 152.93 tests/s, 2173.04 assertions/s Inspecting 756 files 756 files inspected, no offenses detected * Reach: Fix bug CIT-Setup-Unscheduled Summary: ------------------------------ In order to perform 'CIT-Setup-Unscheduled' this commit fix typo from 'CIT-Setup-Unschedule' to 'CIT-Setup-Unscheduled' Remote Tests: ------------------------------ Finished in 36.906747 seconds. 16 tests, 42 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 2.793742 seconds. 16 tests, 75 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: ------------------------------ 753 files inspected, no offenses detected * Openpay: able to set URL by merchant country Summary: Add support to set service URL by setting the merchant country flag, with this capability openpay knows from which region is happening the transaction. Closes #4637 Remote: 25 tests, 83 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96% passed Unit: 22 tests, 113 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: 753 files inspected, no offenses detected * Alelo: Improving credentials refresh process This change aims to prevent the extra call to get the access_token when the ecryption key expires also adds a change to properly filter out the access_token and encryption_key Closes #4616 Remote Tests: Finished in 29.913157 seconds. 17 tests, 43 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: Finished in 64.281953 seconds. 5376 tests, 76737 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop 83.63 tests/s, 1193.76 assertions/s Running RuboCop... Inspecting 750 files * Reach: refactor to prevent symbols on response Summary: ------------------------------ Refactoring the parse method to parse JSON body without symbols. Remote Test: ------------------------------ Finished in 117.823171 seconds. 25 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 37.864568 seconds. 5416 tests, 76949 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * Decidir: Add transaction inquire request Get payment status by payment id. Unit 39 tests, 190 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote 25 tests, 88 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96% passed * Reach: using transaction token as ReferenceId on refunds * Reach: remove raise exception when pymentMethod is not allowed * Reach: remove raise exception when stored-credentials can't be identified * Reach: fixing typo on store credentials uncheduled * Reach: refactor response methods and extra test for not paymentMethod * Revert "Reach: refactor response methods and extra test for not paymentMethod" This reverts commit e169025f2e1eb5ae7e4f5b52aea6ffa59b787572. * Revert "Reach: fixing typo on store credentials uncheduled" This reverts commit ad2e33306ebe0d9e4ff344c28217d9935924aedd. * Revert "Reach: remove raise exception when stored-credentials can't be identified" This reverts commit 4e1d3cd5ee9481bfcfde960b3d2d29b8f395f6a7. * Revert "Reach: remove raise exception when pymentMethod is not allowed" This reverts commit 7b973d9aef5133a12f33d251a35a57874cacb810. * Revert "Reach: using transaction token as ReferenceId on refunds" This reverts commit e40e1ee50e3687f5b123546dcf83141be1440073. * Reach: fixing store credentials and Exception issues Summary: ------------------------------ This PR solves 4 issues: 1) Remove exception for no allowed store credentials combination and leave the field empty. 2) Remove exception for not supported card brand and sent instead a not supported string. 3) Fixes a Typo on stored credentials code and test related with 'unscheduled' transactions. 4) Fixes and add the corresponding tests for 1 to 3. Remote Test: ------------------------------ Finished in 136.495605 seconds. 27 tests, 70 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 33.332219 seconds. 5419 tests, 76964 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * EBANX: add soft_descriptor field This field can be optionally passed in with the `creditcard` hash CER-317 * CommerceHub: Add Apple Pay and Google Pay (#4648) Summary: ------------------------------ In order to perform transactions using Apple Pay and Google Pay this commit adds the fields required and optionals to made succesful requests. Remote Tests: ------------------------------ Finished in 76.906747 seconds. 19 tests, 52 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 0.193742 seconds. 13 tests, 111 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: ------------------------------ 756 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.domain.name> Co-authored-by: Nick Ashton <nashton@gmail.com> * Global Collect & Alelo: Fixing year dependent failing tests Summary ----------------------- Changes a couple of tests that depend on date year Closes #4665 Unit test ----------------------- Finished in 40.268913 seconds. 5424 tests, 77006 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 756 files inspected, no offenses detected * Moneris: Add Google Pay Description ------------------------- Add google pay to moneris gateway Closes #4666 Unit test ------------------------- Finished in 32.996352 seconds. 5424 tests, 77006 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 164.38 tests/s, 2333.77 assertions/s Rubocop ------------------------- Running RuboCop... Inspecting 756 files 756 files inspected, no offenses detected * Element/Vantiv: Add google pay and apple pay support Summary: This PR updates element/vantiv gateway to support apple/google pay transactions Remote Tests Finished in 35.250506 seconds. 31 tests, 86 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected * Reach: fix amount handling to work with cents properly (#4670) Summary: ------------------------------ Provides proper format handling on reach gateway to receive amount as cents on authorize/purchase and refund. Remote Test: ------------------------------ Finished in 105.613556 seconds. 28 tests, 70 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 30.429736 seconds. 5425 tests, 77010 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * GlobalCollect: Add transaction inquire request Get payment status by payment id. Unit: 44 tests, 224 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 41 tests, 108 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.561% passed * Stripe PI: Add Level 3 support Remote: 79 tests, 346 assertions, 9 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 88.6076% passed Unit: 43 tests, 219 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Braintree: return additional processor response Adds the `additional_processor_response` to the transaction hash for unsuccessful transactions CER-284 LOCAL 5414 tests, 76942 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected REMOTE 100 tests, 491 assertions, 4 failures, 4 errors, 0 pendings, 0 omissions, 0 notifications 92% passed These failures/errors are present on the master branch as well * Payeezy name from `billing_address` on `purchase` Allow for the `billing_address` name value to be used if the `name` value is blank for the payment method Unit: 45 tests, 206 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 45 tests, 180 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe: add reverse_transfer to void transactions Both the void and refund methods call Stripe's /refunds endpoint, but the ability to sendoptions[:reverse_transfer] was not initially added to the void method CER-360 UNIT 5425 tests, 77010 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected REMOTE 77 tests, 362 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Update Changelog for PR #4668 * GlobalCollect: fix inquire bug * Credorax: Support google pay and apple pay Summary: ------------------------------ Being able to use google pay and apple pay as payment methods by Credorax gateway Closes #4661 Remote Test: ------------------------------ Finished in 117.823171 seconds. 25 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 37.864568 seconds. 5416 tests, 76949 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * Plexo: add 5 credit card brands (#4652) This change adds 5 new credit card brands (passcard, edenred, anda, tarjeta-d, sodexo bins ) and allows plexo gateway to use it. Remote Tests: Finished in 45.329665 seconds. 28 tests, 50 assertions, 0 failures, 0 errors, 0 pendings, 3 omissions, 0 notifications 100% passed Unit Tests: Finished in 0.013674 seconds.d 20 tests, 115 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop 756 files inspected, no offenses detected Update CHANGELOG * Authorize.net: Google pay token support Added remote test cases to Authorize for google pay authorize GWI-404 Closes #4659 ................................................................................... Finished in 96.632847 seconds. ---------------------------------------------------------------------------------------------------------------------------------------------------- 83 tests, 297 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed ---------------------------------------------------------------------------------------------------------------------------------------------------- 0.86 tests/s, 3.07 assertions/s * Credorax: Add support for Network Tokens Summary: ------------------------------ Enable the Credorax gateway to support payments via network_token Closes #4679 Remote Test: ------------------------------ 51 tests, 163 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 76.4706% passed tests failures not related with the changes Unit Tests: ------------------------------ 26 tests, 132 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * Stripe PI: use MultiResponse in create_setup_intent This change makes it possible to access the result of the call to /payment_methods alongside the ultimate result of the call to /setup_intents CER-357 REMOTE 80 tests, 378 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed UNIT 5439 tests, 77065 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected * Payeezy change `method` on capture (#4684) For Apple Pay transactions, the value for `method` is set to `3DS`, but when executing a `capture`, this value should be changed to `credit_card`. This differs from other use cases where the value provided on auth transactions should be the same one given for capture. Unit: 45 tests, 206 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 46 tests, 184 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Credorax: Update MIT logic Credorax is changing the requirements for MIT transactions in regards to NTIDs. Moving forward, all MIT transactions need to pass in the NTID if present. Additionally the NTID value is from the `Z50` flag and passed directly from the card scheme. Credorax notification: For any MIT transactions, this Trace ID must be stored from the original Card Holder initiated (CIT) transaction where the Card details were stored on file originally. When using Finaro gateway/acquiring this Trace ID is returned in the z50 parameter and must be sent in the g6 parameter for any subsequent MIT transactions, (if using an external token engine or your own token engine and the original CIT is not processed through Finaro, please liaise with your processor to obtain this Trace ID). Additionally, this original Card holder initiated transaction must be Fully authenticated with 3DSecure to comply with PSD2/SCA regulation in place. Please make sure that you comply with this for any customers saving their card details on file for subsequent MIT processed through Finaro ECS-2650 Test Summary The remote tests with stored creds now work but take ~17 minutes for me. Additionally there are some failing tests for me (on master as well). Can anyone else run these? * Adyen: Add support for `skip_mpi_data` flag CER-333 This change will allow for recurring payments with Apple Pay on Adyen by eliminating mpi data hash from request after initial payment. Unit: 104 tests, 528 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 131 tests, 440 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.8397% passed Local: 5430 tests, 77037 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Add Canadian Institution Numbers Adds two additional valid Canadian Institution Numbers: 618, 842 https://en.wikipedia.org/wiki/Routing_number_(Canada) CER-403 5439 tests, 77066 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected * Payeezy: Handle nil and empty values for Apple Pay Payeezy support has indicated that passing empty or nil values in place of the `xid` and `cavv` may result in failed transactions for AMEX based AP tokens. They also informed us that the `eci_indicator` value should default to `5` instead of passing a nil value, following a similar pattern. This PR ignores empty `payment_cryptogram` and defaults the `eci_indicator` to `5` if that value is `nil`. Unit: 6 tests, 211 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 46 tests, 184 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Tns: update test URL Update test URL to be only secure.uat.tnspayments. Unit Test: 15 tests, 68 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * TrustCommerce: Update `authorization_from` to handle `store` response (#4691) Fix Store/Unstore features Remote tests -------------------------------------------------------------------------- 21 tests, 74 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.7143% passed Failing tests not related with changes unit tests -------------------------------------------------------------------------- 20 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * TrustCommerce Verify feature added (#4692) Enable verify feature on TrustCommerce Gateway Remote tests -------------------------------------------------------------------------- 21 tests, 74 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.7143% passed Failing tests not related with changes unit tests -------------------------------------------------------------------------- 22 tests, 72 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Rapyd: Add customer object to transactions (#4664) Description ------------------------- Rapyd Gateway send customer info on store transactions, with this commit it will be able to send customer on authorize and purchase transaction, when it use a US “PMT”s include the addresses object into the customer data in order to be able to perform US transactions properly. Unit test ------------------------- Finished in 0.123245 seconds. 22 tests, 103 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- Finished in 100.082672 seconds. 33 tests, 92 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 0.33 tests/s, 0.92 assertions/s Rubocop ------------------------- 756 files inspected, no offenses detected Co-authored-by: Javier Pedroza <jpedroza@spreedly.com> * CybersourceRest: Add new gateway with authorize and purchase Summary: ------------------------------ Adding CybersourceRest gateway with authorize and purchase calls. Closes #4690 GWI-474 Remote Test: ------------------------------ Finished in 3.6855 seconds. 6 tests, 17 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 35.528692 seconds. 5441 tests, 77085 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * CheckoutV2: Add store/unstore (#4677) Summary: ------------------------------ In order to use Third Party Vaulting (TPV), this commit adds store and unstore methods. For ApplePay (and NT in general) the verify method is used, to get a similar response, and formatted to be equal to the store response using the /instruments endpoint. Remote test ----------------------- Finished in 240.268913 seconds. 82 tests, 203 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.561% passed Unit test ----------------------- Finished in 0.268913 seconds. 52 tests, 289 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 756 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.domain.name> Co-authored-by: Nick Ashton <nashton@gmail.com> * Revert "CheckoutV2: Add store/unstore (#4677)" (#4703) This reverts commit e769cdb908d4a8543bc68f13a4f7aa04c60daf59. * Moneris: Fix google pay (update apple pay) (#4689) Description ------------------------- Truncate google pay and apple pay order id to 100 (max length of characters that google pay / apple pay accepts) Unit test ------------------------- Finished in 37.884991 seconds. 5439 tests, 77066 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 143.57 tests/s, 2034.21 assertions/s Rubocop ------------------------- 756 files inspected, no offenses detected Co-authored-by: Luis <sinourain+endava@gmail.com> * Litle: Add prelive url This commit adds a prelive URL to the Vantiv/Litle gateway. It relies on the existing url_override logic to set the prelive_url Test Summary Remote: 56 tests, 226 assertions, 13 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 76.7857% passed * CommerceHub: Adding changes for certification purposes (#4705) Summary: ------------------------------ Add changes to address some observations / improvements in the CommerceHub certification. * SER-494 / SER-498: setting and using order_id as reference * SER-495: use the correct end-point for verify * SER-496 / SER-497: get avs and cvv verification codes * SER-500: getting an error code from response Remote Test: ------------------------------ Finished in 108.050361 seconds. 23 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 46.103032 seconds. 5458 tests, 77155 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * CommerceHub: Fixing verify status and prevent tokenization (#4716) Summary: ------------------------------ * SER-495: Fix success detection for verify * SER-507: set default `create_token` for purchase and authorize transactions Remote Test: ------------------------------ Finished in 290.029817 seconds. 23 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 46.103032 seconds. 5458 tests, 77155 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Payeezy: Update Stored Credentials Payeezy requires sending original network transaction id to as cardbrand_original_transaction_id. Unit: 47 tests, 217 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 46 tests, 184 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Remove raise ArgumentError on get requests (#4714) The case for initiating a GET request raises a frivolous ArgumentError when the code already ignores any attempt to pass in a body to the request. * ChekoutV2:Add store/unstore (#4712) Summary: ------------------------------ In order to use Third Party Vaulting (TPV), this commit adds store and unstore methods. For apple pay/google pay the actual credentials could work, but for credit cards, and bank account the credentials required are secret_api_key and public_api_key. This commits also, refactor the initialize method removing the rescue ArgumentError, and modifing the commit method to use ssl_request. Remote test ----------------------- Finished in 164.163913 seconds. 88 tests, 216 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit test ----------------------- Finished in 0.046893 seconds. 53 tests, 297 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 756 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.local> Co-authored-by: Nick Ashton <nashton@gmail.com> * CybersourceREST - Refund | Credit Description ------------------------- This integration support the following payment operations: - Refund - Credit Closes #4700 Unit test ------------------------- Finished in 40.91494 seconds. 5454 tests, 77134 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 133.30 tests/s, 1885.23 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected GWI-471 * Payeezy: Ignore `xid` for AP Amex (#4721) Payeezy has stated the inclusion of `xid` values for AP (Amex underlying) transactions could result in failures. Add guard to ignore adding this field if the underlying is `american_express` Unit: 49 tests, 227 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 47 tests, 186 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * TrustCommerce Verify feature added (#4699) Enable verify feature on TrustCommerce Gateway Remote tests -------------------------------------------------------------------------- 21 tests, 74 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.7143% passed Failing tests not related with changes unit tests -------------------------------------------------------------------------- 22 tests, 72 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CER-440 Add papypal_custom_field and paypal_description gateway specific fields to braintree_blue gateway. Local: 5455 tests, 77085 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications 99.6517% passed Unit: 94 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 101 tests, 493 assertions, 4 failures, 4 errors, 0 pendings, 0 omissions, 0 notifications 92.0792% passed * CER-460 Add descriptor phone number to blue_snap Local: 5457 tests, 77095 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications 99.6518% passed Unit: 45 tests, 269 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 53 tests, 171 assertions, 9 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 83.0189% passed * Braintree: Update transaction hash method This PR is to update the transaction method to include the processor_authorization_code. * CyberSourceRest: Add apple pay, google pay Summary: ----------------------- In order to perform ApplePay and GooglePay transaction this commit, adds support. Closes #4708 Remote test ----------------------- Finished in 7.216327 seconds. 18 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit test ----------------------- Finished in 0.032725 seconds. 15 tests, 80 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 760 files inspected, no offenses detected * CyberSourceRest: Add apple pay, google pay Summary: ----------------------- In order to perform ApplePay and GooglePay transaction this commit, adds support. Closes #4708 Remote test ----------------------- Finished in 7.216327 seconds. 18 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit test ----------------------- Finished in 0.032725 seconds. 15 tests, 80 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 760 files inspected, no offenses detected * CybersourceREST - Void | Verify Description ------------------------- This integration support the following payment operations: Verify Void Closes #4695 Unit test ------------------------- Finished in 29.20384 seconds. 5468 tests, 77209 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 186.76 tests/s, 2641.23 assertions/s Rubocop ------------------------- Inspecting 760 files 760 files inspected, no offenses detected * CommerceHub: adjusting reference details (#4723) Summary: ------------------------------ Changes reference details to properly send `referenceTransactionDetails` on capture requests Remote Test: ------------------------------ Finished in 290.029817 seconds. 23 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 47.993895 seconds. 5463 tests, 77178 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Orbital: dismiss CardSecValInd restriction (#4724) GWI-567 Remote: 122 tests, 509 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 144 tests, 817 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: 760 files inspected, no offenses detected * Credorax: Set default ECI values for token transactions Condition eci field depending on payment_method Closes #4693 * CyberSource Rest: Add ACH Support Adding ACH/Bank Accounts to CyberSource Rest Closes #4722 Unit test: 13 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test: 10 tests, 26 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed GWI-480 * CommerceHub: setting transactionReferenceId for refunds (#4727) Summary: ------------------------------ Updating the refund reference to only use referenceTransactionId Remote Test: ------------------------------ Finished in 291.397602 seconds. 23 tests, 64 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.6522% passed Unit Tests: ------------------------------ Finished in 37.637689 seconds. 5474 tests, 77230 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Cybersource REST: Adding capture request Summary: ------------------------------ Adding the capture functionality to the Cybersource REST gateway Closes #4726 Remote Test: ------------------------------ Finished in 25.504733 seconds. 25 tests, 89 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 39.743032 seconds. 5468 tests, 77209 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Paymentez: Add inquire by transaction_id Get payment status by Paymentez transaction id Unit: 30 tests, 127 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 34 tests, 73 assertions, 9 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 73.5294% passed ** These failures also existed on the main branch ** * Cybersource Rest - update message response on error Description ------------------------- Update message response on error in order to get a more redeable response GWI-571 Unit test ------------------------- Finished in 30.871357 seconds. 5476 tests, 77239 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 177.38 tests/s, 2501.96 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected * Ebanx: Add transaction inquire request Get transaction by authorization. Remote: 27 tests, 73 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.2963% passed Unit: 20 tests, 89 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CommerceHub: Update fields for transactions with sotred credentials (#4733) Description ------------------------- This commit add new fields for transactions with stored credentials options and remove the current referenceMerchantTransactionId in order to use referenceTransactionId [SER-504](https://spreedly.atlassian.net/browse/SER-504) [SER-536](https://spreedly.atlassian.net/browse/SER-536) Unit test ------------------------- Finished in 0.01392 seconds. 22 tests, 147 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 1580.46 tests/s, 10560.34 assertions/s Remote test ------------------------- Finished in 296.371956 seconds. 24 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 0.08 tests/s, 0.21 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected Co-authored-by: Javier Pedroza <jpedroza@spreedly.com> * Ebanx: Add support of Elo & Hipercard For all credit card transactions Ebanx only requires payment_type_code to be 'creditcard' no matter the card. This removes the need of specifiying the card brand in Ebanx transaction. Unit: 19 tests, 84 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 28 tests, 74 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.4286% passed * Checkout_v2: Add idempotency key support This PR is to add the support for an optional idempotency key through the header during requests and should be available to all actions 'purchase, authorize, and etc'. I did note that the failing remote tests were sending back 401 unauthorize even when on the latest upstream master. Test results below: Local: 5469 tests, 77162 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications 99.6526% passed Unit: 54 tests, 300 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 89 tests, 213 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.5056% passed * Adyen: add support for shopper_statement field for capture action * Checkout_v2: update idmepotency_key names * * Payeezy: Enable external 3DS Summary: ------------------------------ This PR includes the fields and logic required to send external 3ds data for purchases and auths. Closes #4715 Test Execution: ------------------------------ Unit test Finished in 0.067186 seconds. 46 tests, 211 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test Finished in 140.523393 seconds. 48 tests, 194 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Failures not related with the added code RuboCop: ------------------------------ 760 files inspected, no offenses detected * Shift4: Fix `Content-type` value (#4740) Change `Content-type` value to `applicaiton/json` instead of xml Unit: 23 tests, 147 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 24 tests, 56 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 91.6667% passed * Ebanx: Remove default email ECS-2829 Ebanx requires that merchants pass in an email in order to complete a transaction. Previously, ActiveMerchant was sending in a default email if one was not provided which causes Ebanx's fraud detection to mark these transactions as failed for fraud. This incorrect failure message has led to merchant frustration since they could not quickly know the root of the problem Test Summary Remote: 32 tests, 88 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.875% passed * CyberSourceRest: Add stored credentials support Description ------------------------- This commit adds support for stored credentials to the CyberSourceRest gateway and according to their docs CyberSource has two type of flows [initial](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/credentials-intro/credentials-maxtrix/credentials-maxtrix-initial.html) and [subsequent](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/credentials-matrix/credentials-matrix-sub.html) Closes #4707 Unit test ------------------------- Finished in 0.025301 seconds. 18 tests, 97 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 711.43 tests/s, 3833.84 assertions/s Remote test ------------------------- Finished in 25.932718 seconds. 29 tests, 107 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 1.12 tests/s, 4.13 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected * Payeezy: Add `last_name` for `add_network_tokenization` This change updates the `add_network_tokenization` method to include the `last_name` in the `cardholder_name` value when getting the name from a payment method Closes #4743 Unit: 49 tests, 227 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 50 tests, 201 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe PI: tokenize PM for verify ECS-2867 For the Stripe PI gateway, when a merchant runs a verify they want to get back the resulting card information that Stripe provides. In off_session cases we are not tokenizing the card at Stripe which prevents us from getting back valuable card details. This commit updates the logic to always get the card details back from Stripe on verify transactions. This commit also improves the resiliency of Stripe PI remote tests by dynamically creating a customer object before running the remote tests so that they do not error out with a too many payment methods for customer message. Test Summary Remote: 80 tests, 380 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Kushki Gateway: Add support for the months and deferred fields * Borgun: Update TrCurrencyExponent ECS-2861 A merchant using the Borgun gateway reported that when a user was completing the challenge, the gateway was displaying a value 100 times greater than what was requested. This casused the ccardholders to stop the 3DS flow and abandon the cart. After reaching out to the Borgun gateway they explained that the ISK currency on Borgun is sometimes a 0 decimal currency and sometimes a 2 decimal currency. The explanation given via email is that we must provide the TrCurrencyExponent of 2 when utilizing the 3DS flow but not on the finish sale portion. Remote: 22 tests, 47 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.9091% passed Note: these 2 tests fail on master * CyberSourceRest: Add gateway specific fields handling Summary: In order to handle several gateway specific fields this commit add the following ones in the cybersource rest gateway file - ignore_avs - ignore_cvv - mdd_fields - reconciliation_id - customer_id - zero_amount_verify - sec_code Closes #4746 Remote Test: Finished in 36.507289 seconds. 35 tests, 108 assertions, 0 failures, 0 errors, 0 pendings,0 omissions, 0 notifications 100% passed Unit Tests: Finished in 0.06123 seconds. 2718 tests, 150 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: 760 files inspected, no offenses detected * IPG: Improve error handling Summary: ------------------------------ This change improves the amount of detail in the response message when the gateway responds with an error. Closes #4753 Remote Test: ------------------------------ Remote: 18 tests, 54 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 29.462929 seconds 5483 tests, 77277 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * * Shift4: Handle access token failed calls Summary: ------------------------------ Adding changes to handle failed calls to get the access token GWS-46 Closes #4745 Remote Test: ------------------------------ Finished in 172.659123 seconds. 24 tests, 56 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 91.6667% passed Unit Tests: ------------------------------ Finished in 40.296092 seconds. 5480 tests, 77260 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Bogus: Add verify, plus assoc. test * Checkout v2: Add Shipping Address Add shipping address local and remote tests Remove Marketplace object as not supported for Sandbox testing * Release 1.128.0 * Adyen: update selectedBrand mapping for Google Pay Adyen advised that `googlepay` is the correct value to send for `selectedBrand` CER-550 LOCAL 5498 tests, 77340 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected GATEWAY - UNIT TESTS 105 tests, 531 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed GATEWAY - REMOTE TESTS 132 tests, 443 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.9091% passed * Shift4: add vendorReference field This change maps `options[:order_id]` to Shift4's `vendorReference` field CER-563 LOCAL 5498 tests, 77341 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected GATEWAY UNIT TESTS 25 tests, 154 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed GATEWAY REMOTE TESTS 25 tests, 58 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 92% passed (These failures also exist on the master branch) * Litle update the successful_from method Add 001 and 010 to be considered successful responses for Litle. Remote 57 tests, 251 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit 58 tests, 255 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Improve error handling: OAuth ECS-2845 OAuth has become a standard authentication mechanism for many gateways in recent years however AM has not been updated to support error handling when a merchant passes incorrect details to the gateway. In non OAuth flows we would return a failed response. This commit now raises a new exception type indicating that the request failed at the OAuth stage rather than the transaction stage of a request Remote: 25 tests, 57 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 92% passed * Stripe PI: Add billing address when tokenizing for ApplePay and GooglePay This adds functionality to add the card's billing address to digital wallets ApplePay and GooglePay. The billing address is available on the result of the card tokenization and is saved to the created PaymentIntent. The remote test failures also exist on `master`. Test Summary Local: 5500 tests, 77348 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 83 tests, 368 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 93.9759% passed * Rexml is no longer a default gem in Ruby 3 (#3852) * Revert "Rexml is no longer a default gem in Ruby 3 (#3852)" (#4767) This reverts commit dad65a7cb70985e1b477231c4d7e33455d40e04c. It caused ci to fail due to a rexml issue. * Add rexml as a gem dependency (#4768) * Add rexml as a gem dependency Rexml is no longer included with Ruby 3+, we therefore need to add the dependency explicitely. * Remove garbage character from test file * Release v1.129.0 * Mit: Changed how the payload was sent to the gateway Closes #4655 * Revert "Mit: Changed how the payload was sent to the gateway" This reverts commit 6e3cd4b431fdd521e955d80fa3133f6dc2653899. * PayuLatam: The original method of surfacing error codes was redundant and didn't actually surface a network code that is particularly useful. This PR aims to fix that issue for failing transactions. * CyberSource: Handling Canadian bank accounts Summary: ------------------------------ Add changes to CyberSource to properly format canadian routing numbers when payment methods is bank account. GWS-48 Closes #4764 Remote Test: ------------------------------ Finished in 114.912426 seconds. 121 tests, 611 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.8678% passed *Notes on erros*: The test suite was ran with a single account rason for errors: - 2 errors correspondsto account not enabled for canadian bank transactions. - 2 errors correspond to outdated 3ds PAR values. - 1 error related with account not enabled for async. Unit Tests: ------------------------------ Finished in 41.573188 seconds. 5501 tests, 77346 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Update Changelog * CyberSource Rest: Fixing currency detection Summary: ------------------------------ Fix bug on Cybersource Rest to use other currencies different than USD. Closes #4777 Remote Test: ------------------------------ Finished in 46.080483 seconds. 43 tests, 141 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 33.72359 seconds. 5506 tests, 77384 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Cybersource: Add business rules for NT ECS-2849 A previous commit from 2015 restricted the ability to pass business rules such as `ignoreAVSResult` and `ignoreCVResult` on API requests with NetworkTokenization cards. Merchants are now asking for this to be allowed on requests with payment methods such as NT/AP/GP and the remote tests seem to indicate we can add these fields for these types of payment methods. Remote CBYS SOAP: 119 tests, 607 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.479% passed Remote CYBS Rest: 46 tests, 152 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Adyen: Update Mastercard error messaging Adyen error messaging uses the generic refusalReasonRaw field as part of the response message. Adyen offers a more detailed Mastercard-specific field called merchantAdviceCode that should be present for failed Mastercard transactions. Adyen error messaging now checks for the merchantAdviceCode first. If it is not present (i.e. this is not a Mastercard transaction or it is a Mastercard transaction and this field is missing for some reason) then the default refusalReasonRaw field is used (like previous functionality). ECS-2767 Unit: 107 tests, 539 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 132 tests, 443 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.9091% passed *These 12 tests fail on master Closes #4770 * Authorize.net: update mapping for billing address phone number Adds a bit of logic to the Authorize.net gateway so that phone number can be passed via `billing_address[phone_number]` in addition to `billing_address[phone]` This is similar to #4138 CER-590 LOCAL 5503 tests, 77374 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed UNIT 121 tests, 681 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 84 tests, 301 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Braintree: update mapping for billing address phone number Adds a bit of logic to the Braintree gateway so that phone number can be passed via billing_address[phone_number] in addition to billing_address[phone] This is similar to #4138 CER-603 LOCAL 5505 tests, 77373 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected UNIT 94 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 103 tests, 550 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CommerceHub: Enabling multi-use public key encryption (#4771) Summary: ------------------------------ Changes the payment method so is possible to send an encrypted credit card following the CommerceHub Multi-User public key methodology. SER-555 Note on failing test: You need the proper account permissions and credentials to use the encrypted credit card. Remote Test: ------------------------------ Finished in 288.325843 seconds. 25 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 38.640945 seconds. 5506 tests, 77384 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected Co-authored-by: cristian <Heavyblade@users.noreply.github.com> Co-authored-by: Nick Ashton <nashton@gmail.com> * Ogone: Enable 3ds Global for Ogone Gateway (#4776) Description ------------------------------------------- This commit introduces the support for 3DS Global payments usin…
* Reach: remove raise exception when stored-credentials can't be identified * Reach: fixing typo on store credentials uncheduled * Reach: refactor response methods and extra test for not paymentMethod * Revert "Reach: refactor response methods and extra test for not paymentMethod" This reverts commit e169025f2e1eb5ae7e4f5b52aea6ffa59b787572. * Revert "Reach: fixing typo on store credentials uncheduled" This reverts commit ad2e33306ebe0d9e4ff344c28217d9935924aedd. * Revert "Reach: remove raise exception when stored-credentials can't be identified" This reverts commit 4e1d3cd5ee9481bfcfde960b3d2d29b8f395f6a7. * Revert "Reach: remove raise exception when pymentMethod is not allowed" This reverts commit 7b973d9aef5133a12f33d251a35a57874cacb810. * Revert "Reach: using transaction token as ReferenceId on refunds" This reverts commit e40e1ee50e3687f5b123546dcf83141be1440073. * Reach: fixing store credentials and Exception issues Summary: ------------------------------ This PR solves 4 issues: 1) Remove exception for no allowed store credentials combination and leave the field empty. 2) Remove exception for not supported card brand and sent instead a not supported string. 3) Fixes a Typo on stored credentials code and test related with 'unscheduled' transactions. 4) Fixes and add the corresponding tests for 1 to 3. Remote Test: ------------------------------ Finished in 136.495605 seconds. 27 tests, 70 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 33.332219 seconds. 5419 tests, 76964 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * EBANX: add soft_descriptor field This field can be optionally passed in with the `creditcard` hash CER-317 * CommerceHub: Add Apple Pay and Google Pay (#4648) Summary: ------------------------------ In order to perform transactions using Apple Pay and Google Pay this commit adds the fields required and optionals to made succesful requests. Remote Tests: ------------------------------ Finished in 76.906747 seconds. 19 tests, 52 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 0.193742 seconds. 13 tests, 111 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: ------------------------------ 756 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.domain.name> Co-authored-by: Nick Ashton <nashton@gmail.com> * Global Collect & Alelo: Fixing year dependent failing tests Summary ----------------------- Changes a couple of tests that depend on date year Closes #4665 Unit test ----------------------- Finished in 40.268913 seconds. 5424 tests, 77006 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 756 files inspected, no offenses detected * Moneris: Add Google Pay Description ------------------------- Add google pay to moneris gateway Closes #4666 Unit test ------------------------- Finished in 32.996352 seconds. 5424 tests, 77006 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 164.38 tests/s, 2333.77 assertions/s Rubocop ------------------------- Running RuboCop... Inspecting 756 files 756 files inspected, no offenses detected * Element/Vantiv: Add google pay and apple pay support Summary: This PR updates element/vantiv gateway to support apple/google pay transactions Remote Tests Finished in 35.250506 seconds. 31 tests, 86 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected * Reach: fix amount handling to work with cents properly (#4670) Summary: ------------------------------ Provides proper format handling on reach gateway to receive amount as cents on authorize/purchase and refund. Remote Test: ------------------------------ Finished in 105.613556 seconds. 28 tests, 70 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 30.429736 seconds. 5425 tests, 77010 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * GlobalCollect: Add transaction inquire request Get payment status by payment id. Unit: 44 tests, 224 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 41 tests, 108 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.561% passed * Stripe PI: Add Level 3 support Remote: 79 tests, 346 assertions, 9 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 88.6076% passed Unit: 43 tests, 219 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Braintree: return additional processor response Adds the `additional_processor_response` to the transaction hash for unsuccessful transactions CER-284 LOCAL 5414 tests, 76942 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected REMOTE 100 tests, 491 assertions, 4 failures, 4 errors, 0 pendings, 0 omissions, 0 notifications 92% passed These failures/errors are present on the master branch as well * Payeezy name from `billing_address` on `purchase` Allow for the `billing_address` name value to be used if the `name` value is blank for the payment method Unit: 45 tests, 206 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 45 tests, 180 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe: add reverse_transfer to void transactions Both the void and refund methods call Stripe's /refunds endpoint, but the ability to sendoptions[:reverse_transfer] was not initially added to the void method CER-360 UNIT 5425 tests, 77010 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected REMOTE 77 tests, 362 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Update Changelog for PR #4668 * GlobalCollect: fix inquire bug * Credorax: Support google pay and apple pay Summary: ------------------------------ Being able to use google pay and apple pay as payment methods by Credorax gateway Closes #4661 Remote Test: ------------------------------ Finished in 117.823171 seconds. 25 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 37.864568 seconds. 5416 tests, 76949 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * Plexo: add 5 credit card brands (#4652) This change adds 5 new credit card brands (passcard, edenred, anda, tarjeta-d, sodexo bins ) and allows plexo gateway to use it. Remote Tests: Finished in 45.329665 seconds. 28 tests, 50 assertions, 0 failures, 0 errors, 0 pendings, 3 omissions, 0 notifications 100% passed Unit Tests: Finished in 0.013674 seconds.d 20 tests, 115 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop 756 files inspected, no offenses detected Update CHANGELOG * Authorize.net: Google pay token support Added remote test cases to Authorize for google pay authorize GWI-404 Closes #4659 ................................................................................... Finished in 96.632847 seconds. ---------------------------------------------------------------------------------------------------------------------------------------------------- 83 tests, 297 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed ---------------------------------------------------------------------------------------------------------------------------------------------------- 0.86 tests/s, 3.07 assertions/s * Credorax: Add support for Network Tokens Summary: ------------------------------ Enable the Credorax gateway to support payments via network_token Closes #4679 Remote Test: ------------------------------ 51 tests, 163 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 76.4706% passed tests failures not related with the changes Unit Tests: ------------------------------ 26 tests, 132 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * Stripe PI: use MultiResponse in create_setup_intent This change makes it possible to access the result of the call to /payment_methods alongside the ultimate result of the call to /setup_intents CER-357 REMOTE 80 tests, 378 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed UNIT 5439 tests, 77065 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected * Payeezy change `method` on capture (#4684) For Apple Pay transactions, the value for `method` is set to `3DS`, but when executing a `capture`, this value should be changed to `credit_card`. This differs from other use cases where the value provided on auth transactions should be the same one given for capture. Unit: 45 tests, 206 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 46 tests, 184 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Credorax: Update MIT logic Credorax is changing the requirements for MIT transactions in regards to NTIDs. Moving forward, all MIT transactions need to pass in the NTID if present. Additionally the NTID value is from the `Z50` flag and passed directly from the card scheme. Credorax notification: For any MIT transactions, this Trace ID must be stored from the original Card Holder initiated (CIT) transaction where the Card details were stored on file originally. When using Finaro gateway/acquiring this Trace ID is returned in the z50 parameter and must be sent in the g6 parameter for any subsequent MIT transactions, (if using an external token engine or your own token engine and the original CIT is not processed through Finaro, please liaise with your processor to obtain this Trace ID). Additionally, this original Card holder initiated transaction must be Fully authenticated with 3DSecure to comply with PSD2/SCA regulation in place. Please make sure that you comply with this for any customers saving their card details on file for subsequent MIT processed through Finaro ECS-2650 Test Summary The remote tests with stored creds now work but take ~17 minutes for me. Additionally there are some failing tests for me (on master as well). Can anyone else run these? * Adyen: Add support for `skip_mpi_data` flag CER-333 This change will allow for recurring payments with Apple Pay on Adyen by eliminating mpi data hash from request after initial payment. Unit: 104 tests, 528 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 131 tests, 440 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.8397% passed Local: 5430 tests, 77037 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Add Canadian Institution Numbers Adds two additional valid Canadian Institution Numbers: 618, 842 https://en.wikipedia.org/wiki/Routing_number_(Canada) CER-403 5439 tests, 77066 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected * Payeezy: Handle nil and empty values for Apple Pay Payeezy support has indicated that passing empty or nil values in place of the `xid` and `cavv` may result in failed transactions for AMEX based AP tokens. They also informed us that the `eci_indicator` value should default to `5` instead of passing a nil value, following a similar pattern. This PR ignores empty `payment_cryptogram` and defaults the `eci_indicator` to `5` if that value is `nil`. Unit: 6 tests, 211 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 46 tests, 184 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Tns: update test URL Update test URL to be only secure.uat.tnspayments. Unit Test: 15 tests, 68 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * TrustCommerce: Update `authorization_from` to handle `store` response (#4691) Fix Store/Unstore features Remote tests -------------------------------------------------------------------------- 21 tests, 74 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.7143% passed Failing tests not related with changes unit tests -------------------------------------------------------------------------- 20 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * TrustCommerce Verify feature added (#4692) Enable verify feature on TrustCommerce Gateway Remote tests -------------------------------------------------------------------------- 21 tests, 74 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.7143% passed Failing tests not related with changes unit tests -------------------------------------------------------------------------- 22 tests, 72 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Rapyd: Add customer object to transactions (#4664) Description ------------------------- Rapyd Gateway send customer info on store transactions, with this commit it will be able to send customer on authorize and purchase transaction, when it use a US “PMT”s include the addresses object into the customer data in order to be able to perform US transactions properly. Unit test ------------------------- Finished in 0.123245 seconds. 22 tests, 103 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- Finished in 100.082672 seconds. 33 tests, 92 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 0.33 tests/s, 0.92 assertions/s Rubocop ------------------------- 756 files inspected, no offenses detected Co-authored-by: Javier Pedroza <jpedroza@spreedly.com> * CybersourceRest: Add new gateway with authorize and purchase Summary: ------------------------------ Adding CybersourceRest gateway with authorize and purchase calls. Closes #4690 GWI-474 Remote Test: ------------------------------ Finished in 3.6855 seconds. 6 tests, 17 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 35.528692 seconds. 5441 tests, 77085 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * CheckoutV2: Add store/unstore (#4677) Summary: ------------------------------ In order to use Third Party Vaulting (TPV), this commit adds store and unstore methods. For ApplePay (and NT in general) the verify method is used, to get a similar response, and formatted to be equal to the store response using the /instruments endpoint. Remote test ----------------------- Finished in 240.268913 seconds. 82 tests, 203 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.561% passed Unit test ----------------------- Finished in 0.268913 seconds. 52 tests, 289 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 756 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.domain.name> Co-authored-by: Nick Ashton <nashton@gmail.com> * Revert "CheckoutV2: Add store/unstore (#4677)" (#4703) This reverts commit e769cdb908d4a8543bc68f13a4f7aa04c60daf59. * Moneris: Fix google pay (update apple pay) (#4689) Description ------------------------- Truncate google pay and apple pay order id to 100 (max length of characters that google pay / apple pay accepts) Unit test ------------------------- Finished in 37.884991 seconds. 5439 tests, 77066 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 143.57 tests/s, 2034.21 assertions/s Rubocop ------------------------- 756 files inspected, no offenses detected Co-authored-by: Luis <sinourain+endava@gmail.com> * Litle: Add prelive url This commit adds a prelive URL to the Vantiv/Litle gateway. It relies on the existing url_override logic to set the prelive_url Test Summary Remote: 56 tests, 226 assertions, 13 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 76.7857% passed * CommerceHub: Adding changes for certification purposes (#4705) Summary: ------------------------------ Add changes to address some observations / improvements in the CommerceHub certification. * SER-494 / SER-498: setting and using order_id as reference * SER-495: use the correct end-point for verify * SER-496 / SER-497: get avs and cvv verification codes * SER-500: getting an error code from response Remote Test: ------------------------------ Finished in 108.050361 seconds. 23 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 46.103032 seconds. 5458 tests, 77155 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * CommerceHub: Fixing verify status and prevent tokenization (#4716) Summary: ------------------------------ * SER-495: Fix success detection for verify * SER-507: set default `create_token` for purchase and authorize transactions Remote Test: ------------------------------ Finished in 290.029817 seconds. 23 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 46.103032 seconds. 5458 tests, 77155 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Payeezy: Update Stored Credentials Payeezy requires sending original network transaction id to as cardbrand_original_transaction_id. Unit: 47 tests, 217 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 46 tests, 184 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Remove raise ArgumentError on get requests (#4714) The case for initiating a GET request raises a frivolous ArgumentError when the code already ignores any attempt to pass in a body to the request. * ChekoutV2:Add store/unstore (#4712) Summary: ------------------------------ In order to use Third Party Vaulting (TPV), this commit adds store and unstore methods. For apple pay/google pay the actual credentials could work, but for credit cards, and bank account the credentials required are secret_api_key and public_api_key. This commits also, refactor the initialize method removing the rescue ArgumentError, and modifing the commit method to use ssl_request. Remote test ----------------------- Finished in 164.163913 seconds. 88 tests, 216 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit test ----------------------- Finished in 0.046893 seconds. 53 tests, 297 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 756 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.local> Co-authored-by: Nick Ashton <nashton@gmail.com> * CybersourceREST - Refund | Credit Description ------------------------- This integration support the following payment operations: - Refund - Credit Closes #4700 Unit test ------------------------- Finished in 40.91494 seconds. 5454 tests, 77134 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 133.30 tests/s, 1885.23 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected GWI-471 * Payeezy: Ignore `xid` for AP Amex (#4721) Payeezy has stated the inclusion of `xid` values for AP (Amex underlying) transactions could result in failures. Add guard to ignore adding this field if the underlying is `american_express` Unit: 49 tests, 227 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 47 tests, 186 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * TrustCommerce Verify feature added (#4699) Enable verify feature on TrustCommerce Gateway Remote tests -------------------------------------------------------------------------- 21 tests, 74 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.7143% passed Failing tests not related with changes unit tests -------------------------------------------------------------------------- 22 tests, 72 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CER-440 Add papypal_custom_field and paypal_description gateway specific fields to braintree_blue gateway. Local: 5455 tests, 77085 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications 99.6517% passed Unit: 94 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 101 tests, 493 assertions, 4 failures, 4 errors, 0 pendings, 0 omissions, 0 notifications 92.0792% passed * CER-460 Add descriptor phone number to blue_snap Local: 5457 tests, 77095 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications 99.6518% passed Unit: 45 tests, 269 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 53 tests, 171 assertions, 9 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 83.0189% passed * Braintree: Update transaction hash method This PR is to update the transaction method to include the processor_authorization_code. * CyberSourceRest: Add apple pay, google pay Summary: ----------------------- In order to perform ApplePay and GooglePay transaction this commit, adds support. Closes #4708 Remote test ----------------------- Finished in 7.216327 seconds. 18 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit test ----------------------- Finished in 0.032725 seconds. 15 tests, 80 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 760 files inspected, no offenses detected * CyberSourceRest: Add apple pay, google pay Summary: ----------------------- In order to perform ApplePay and GooglePay transaction this commit, adds support. Closes #4708 Remote test ----------------------- Finished in 7.216327 seconds. 18 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit test ----------------------- Finished in 0.032725 seconds. 15 tests, 80 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 760 files inspected, no offenses detected * CybersourceREST - Void | Verify Description ------------------------- This integration support the following payment operations: Verify Void Closes #4695 Unit test ------------------------- Finished in 29.20384 seconds. 5468 tests, 77209 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 186.76 tests/s, 2641.23 assertions/s Rubocop ------------------------- Inspecting 760 files 760 files inspected, no offenses detected * CommerceHub: adjusting reference details (#4723) Summary: ------------------------------ Changes reference details to properly send `referenceTransactionDetails` on capture requests Remote Test: ------------------------------ Finished in 290.029817 seconds. 23 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 47.993895 seconds. 5463 tests, 77178 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Orbital: dismiss CardSecValInd restriction (#4724) GWI-567 Remote: 122 tests, 509 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 144 tests, 817 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: 760 files inspected, no offenses detected * Credorax: Set default ECI values for token transactions Condition eci field depending on payment_method Closes #4693 * CyberSource Rest: Add ACH Support Adding ACH/Bank Accounts to CyberSource Rest Closes #4722 Unit test: 13 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test: 10 tests, 26 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed GWI-480 * CommerceHub: setting transactionReferenceId for refunds (#4727) Summary: ------------------------------ Updating the refund reference to only use referenceTransactionId Remote Test: ------------------------------ Finished in 291.397602 seconds. 23 tests, 64 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.6522% passed Unit Tests: ------------------------------ Finished in 37.637689 seconds. 5474 tests, 77230 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Cybersource REST: Adding capture request Summary: ------------------------------ Adding the capture functionality to the Cybersource REST gateway Closes #4726 Remote Test: ------------------------------ Finished in 25.504733 seconds. 25 tests, 89 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 39.743032 seconds. 5468 tests, 77209 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Paymentez: Add inquire by transaction_id Get payment status by Paymentez transaction id Unit: 30 tests, 127 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 34 tests, 73 assertions, 9 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 73.5294% passed ** These failures also existed on the main branch ** * Cybersource Rest - update message response on error Description ------------------------- Update message response on error in order to get a more redeable response GWI-571 Unit test ------------------------- Finished in 30.871357 seconds. 5476 tests, 77239 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 177.38 tests/s, 2501.96 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected * Ebanx: Add transaction inquire request Get transaction by authorization. Remote: 27 tests, 73 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.2963% passed Unit: 20 tests, 89 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CommerceHub: Update fields for transactions with sotred credentials (#4733) Description ------------------------- This commit add new fields for transactions with stored credentials options and remove the current referenceMerchantTransactionId in order to use referenceTransactionId [SER-504](https://spreedly.atlassian.net/browse/SER-504) [SER-536](https://spreedly.atlassian.net/browse/SER-536) Unit test ------------------------- Finished in 0.01392 seconds. 22 tests, 147 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 1580.46 tests/s, 10560.34 assertions/s Remote test ------------------------- Finished in 296.371956 seconds. 24 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 0.08 tests/s, 0.21 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected Co-authored-by: Javier Pedroza <jpedroza@spreedly.com> * Ebanx: Add support of Elo & Hipercard For all credit card transactions Ebanx only requires payment_type_code to be 'creditcard' no matter the card. This removes the need of specifiying the card brand in Ebanx transaction. Unit: 19 tests, 84 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 28 tests, 74 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.4286% passed * Checkout_v2: Add idempotency key support This PR is to add the support for an optional idempotency key through the header during requests and should be available to all actions 'purchase, authorize, and etc'. I did note that the failing remote tests were sending back 401 unauthorize even when on the latest upstream master. Test results below: Local: 5469 tests, 77162 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications 99.6526% passed Unit: 54 tests, 300 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 89 tests, 213 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.5056% passed * Adyen: add support for shopper_statement field for capture action * Checkout_v2: update idmepotency_key names * * Payeezy: Enable external 3DS Summary: ------------------------------ This PR includes the fields and logic required to send external 3ds data for purchases and auths. Closes #4715 Test Execution: ------------------------------ Unit test Finished in 0.067186 seconds. 46 tests, 211 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test Finished in 140.523393 seconds. 48 tests, 194 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Failures not related with the added code RuboCop: ------------------------------ 760 files inspected, no offenses detected * Shift4: Fix `Content-type` value (#4740) Change `Content-type` value to `applicaiton/json` instead of xml Unit: 23 tests, 147 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 24 tests, 56 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 91.6667% passed * Ebanx: Remove default email ECS-2829 Ebanx requires that merchants pass in an email in order to complete a transaction. Previously, ActiveMerchant was sending in a default email if one was not provided which causes Ebanx's fraud detection to mark these transactions as failed for fraud. This incorrect failure message has led to merchant frustration since they could not quickly know the root of the problem Test Summary Remote: 32 tests, 88 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.875% passed * CyberSourceRest: Add stored credentials support Description ------------------------- This commit adds support for stored credentials to the CyberSourceRest gateway and according to their docs CyberSource has two type of flows [initial](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/credentials-intro/credentials-maxtrix/credentials-maxtrix-initial.html) and [subsequent](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/credentials-matrix/credentials-matrix-sub.html) Closes #4707 Unit test ------------------------- Finished in 0.025301 seconds. 18 tests, 97 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 711.43 tests/s, 3833.84 assertions/s Remote test ------------------------- Finished in 25.932718 seconds. 29 tests, 107 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 1.12 tests/s, 4.13 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected * Payeezy: Add `last_name` for `add_network_tokenization` This change updates the `add_network_tokenization` method to include the `last_name` in the `cardholder_name` value when getting the name from a payment method Closes #4743 Unit: 49 tests, 227 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 50 tests, 201 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe PI: tokenize PM for verify ECS-2867 For the Stripe PI gateway, when a merchant runs a verify they want to get back the resulting card information that Stripe provides. In off_session cases we are not tokenizing the card at Stripe which prevents us from getting back valuable card details. This commit updates the logic to always get the card details back from Stripe on verify transactions. This commit also improves the resiliency of Stripe PI remote tests by dynamically creating a customer object before running the remote tests so that they do not error out with a too many payment methods for customer message. Test Summary Remote: 80 tests, 380 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Kushki Gateway: Add support for the months and deferred fields * Borgun: Update TrCurrencyExponent ECS-2861 A merchant using the Borgun gateway reported that when a user was completing the challenge, the gateway was displaying a value 100 times greater than what was requested. This casused the ccardholders to stop the 3DS flow and abandon the cart. After reaching out to the Borgun gateway they explained that the ISK currency on Borgun is sometimes a 0 decimal currency and sometimes a 2 decimal currency. The explanation given via email is that we must provide the TrCurrencyExponent of 2 when utilizing the 3DS flow but not on the finish sale portion. Remote: 22 tests, 47 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.9091% passed Note: these 2 tests fail on master * CyberSourceRest: Add gateway specific fields handling Summary: In order to handle several gateway specific fields this commit add the following ones in the cybersource rest gateway file - ignore_avs - ignore_cvv - mdd_fields - reconciliation_id - customer_id - zero_amount_verify - sec_code Closes #4746 Remote Test: Finished in 36.507289 seconds. 35 tests, 108 assertions, 0 failures, 0 errors, 0 pendings,0 omissions, 0 notifications 100% passed Unit Tests: Finished in 0.06123 seconds. 2718 tests, 150 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: 760 files inspected, no offenses detected * IPG: Improve error handling Summary: ------------------------------ This change improves the amount of detail in the response message when the gateway responds with an error. Closes #4753 Remote Test: ------------------------------ Remote: 18 tests, 54 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 29.462929 seconds 5483 tests, 77277 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * * Shift4: Handle access token failed calls Summary: ------------------------------ Adding changes to handle failed calls to get the access token GWS-46 Closes #4745 Remote Test: ------------------------------ Finished in 172.659123 seconds. 24 tests, 56 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 91.6667% passed Unit Tests: ------------------------------ Finished in 40.296092 seconds. 5480 tests, 77260 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Bogus: Add verify, plus assoc. test * Checkout v2: Add Shipping Address Add shipping address local and remote tests Remove Marketplace object as not supported for Sandbox testing * Release 1.128.0 * Adyen: update selectedBrand mapping for Google Pay Adyen advised that `googlepay` is the correct value to send for `selectedBrand` CER-550 LOCAL 5498 tests, 77340 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected GATEWAY - UNIT TESTS 105 tests, 531 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed GATEWAY - REMOTE TESTS 132 tests, 443 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.9091% passed * Shift4: add vendorReference field This change maps `options[:order_id]` to Shift4's `vendorReference` field CER-563 LOCAL 5498 tests, 77341 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected GATEWAY UNIT TESTS 25 tests, 154 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed GATEWAY REMOTE TESTS 25 tests, 58 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 92% passed (These failures also exist on the master branch) * Litle update the successful_from method Add 001 and 010 to be considered successful responses for Litle. Remote 57 tests, 251 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit 58 tests, 255 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Improve error handling: OAuth ECS-2845 OAuth has become a standard authentication mechanism for many gateways in recent years however AM has not been updated to support error handling when a merchant passes incorrect details to the gateway. In non OAuth flows we would return a failed response. This commit now raises a new exception type indicating that the request failed at the OAuth stage rather than the transaction stage of a request Remote: 25 tests, 57 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 92% passed * Stripe PI: Add billing address when tokenizing for ApplePay and GooglePay This adds functionality to add the card's billing address to digital wallets ApplePay and GooglePay. The billing address is available on the result of the card tokenization and is saved to the created PaymentIntent. The remote test failures also exist on `master`. Test Summary Local: 5500 tests, 77348 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 83 tests, 368 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 93.9759% passed * Rexml is no longer a default gem in Ruby 3 (#3852) * Revert "Rexml is no longer a default gem in Ruby 3 (#3852)" (#4767) This reverts commit dad65a7cb70985e1b477231c4d7e33455d40e04c. It caused ci to fail due to a rexml issue. * Add rexml as a gem dependency (#4768) * Add rexml as a gem dependency Rexml is no longer included with Ruby 3+, we therefore need to add the dependency explicitely. * Remove garbage character from test file * Release v1.129.0 * Mit: Changed how the payload was sent to the gateway Closes #4655 * Revert "Mit: Changed how the payload was sent to the gateway" This reverts commit 6e3cd4b431fdd521e955d80fa3133f6dc2653899. * PayuLatam: The original method of surfacing error codes was redundant and didn't actually surface a network code that is particularly useful. This PR aims to fix that issue for failing transactions. * CyberSource: Handling Canadian bank accounts Summary: ------------------------------ Add changes to CyberSource to properly format canadian routing numbers when payment methods is bank account. GWS-48 Closes #4764 Remote Test: ------------------------------ Finished in 114.912426 seconds. 121 tests, 611 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.8678% passed *Notes on erros*: The test suite was ran with a single account rason for errors: - 2 errors correspondsto account not enabled for canadian bank transactions. - 2 errors correspond to outdated 3ds PAR values. - 1 error related with account not enabled for async. Unit Tests: ------------------------------ Finished in 41.573188 seconds. 5501 tests, 77346 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Update Changelog * CyberSource Rest: Fixing currency detection Summary: ------------------------------ Fix bug on Cybersource Rest to use other currencies different than USD. Closes #4777 Remote Test: ------------------------------ Finished in 46.080483 seconds. 43 tests, 141 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 33.72359 seconds. 5506 tests, 77384 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Cybersource: Add business rules for NT ECS-2849 A previous commit from 2015 restricted the ability to pass business rules such as `ignoreAVSResult` and `ignoreCVResult` on API requests with NetworkTokenization cards. Merchants are now asking for this to be allowed on requests with payment methods such as NT/AP/GP and the remote tests seem to indicate we can add these fields for these types of payment methods. Remote CBYS SOAP: 119 tests, 607 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.479% passed Remote CYBS Rest: 46 tests, 152 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Adyen: Update Mastercard error messaging Adyen error messaging uses the generic refusalReasonRaw field as part of the response message. Adyen offers a more detailed Mastercard-specific field called merchantAdviceCode that should be present for failed Mastercard transactions. Adyen error messaging now checks for the merchantAdviceCode first. If it is not present (i.e. this is not a Mastercard transaction or it is a Mastercard transaction and this field is missing for some reason) then the default refusalReasonRaw field is used (like previous functionality). ECS-2767 Unit: 107 tests, 539 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 132 tests, 443 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.9091% passed *These 12 tests fail on master Closes #4770 * Authorize.net: update mapping for billing address phone number Adds a bit of logic to the Authorize.net gateway so that phone number can be passed via `billing_address[phone_number]` in addition to `billing_address[phone]` This is similar to #4138 CER-590 LOCAL 5503 tests, 77374 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed UNIT 121 tests, 681 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 84 tests, 301 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Braintree: update mapping for billing address phone number Adds a bit of logic to the Braintree gateway so that phone number can be passed via billing_address[phone_number] in addition to billing_address[phone] This is similar to #4138 CER-603 LOCAL 5505 tests, 77373 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected UNIT 94 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 103 tests, 550 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CommerceHub: Enabling multi-use public key encryption (#4771) Summary: ------------------------------ Changes the payment method so is possible to send an encrypted credit card following the CommerceHub Multi-User public key methodology. SER-555 Note on failing test: You need the proper account permissions and credentials to use the encrypted credit card. Remote Test: ------------------------------ Finished in 288.325843 seconds. 25 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 38.640945 seconds. 5506 tests, 77384 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected Co-authored-by: cristian <Heavyblade@users.noreply.github.com> Co-authored-by: Nick Ashton <nashton@gmail.com> * Ogone: Enable 3ds Global for Ogone Gateway (#4776) Description ------------------------------------------- This commit introduces the support for 3DS Global payments using the Ogone Direct API through GlobalCollect. As Ogone and GlobalCollect share the same underlying payment service provider (PSP), Worldline, we can leverage the new attribute 'ogone_direct' to use the appropriate credentials and endpoint to connect with the Ogone Direct API. [SER-562](https://spreedly.atlassian.net/browse/SER-562) UNIT TEST ------------------------------------------- Finished in 0.253826 seconds. 44 tests, 225 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 173.35 tests/s, 886.43 assertions/s REMOTE TEST ------------------------------------------- Finished in 71.318909 seconds. 43 tests, 115 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.6744% passed 0.60 tests/s, 1.61 assertions/s Note: During testing, a single failure related to installment processing was identified with GlobalCollect. The error message "NO_ACQUIRER_CONFIGURED_FOR_INSTALLMENTS" I think that the issue may be related to GlobalCollect's account configuration, which is outside the scope of this update. RUBOCOP ------------------------------------------- 760 files inspected, no offenses detected Co-authored-by: Javier Pedroza <jpedroza@spreedly.com> * Borgun change default TrCurrencyExponent and MerchantReturnUrl (#4788) Borgun default TrCurrencyExponent to 2 for all 3DS txn and 0 for all else. Change MerchantReturnUrl to `redirect_url`. Unit: 11 tests, 56 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 22 tests, 43 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 77.2727% passed * Borgun support for GBP currency (#4789) Add support to Borgun for GPB based on [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) Unit: Remote: * Worlpay: Fix Google Pay Ensure that we don't send cardHolderName if empty and that Google Pay and Apple Pay fall into the network tokenization code path and not the credit card path. Remote Tests: 100 tests, 416 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: 107 tests, 633 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe PI: Update paramters for creating of customer Start sending address, shipping, phone and email when creating a customer. Remote Tests 84 tests, 396 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests 42 tests, 224 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Revert "Stripe PI: Update paramters for creating of customer" This reverts commit 46f7bbc8b7b6afa16f26b6cc12f7c13b4d1d3ea3. * Cybersource: auto void r230 ECS-2870 Cybersource transactions that fail with a reasonCode of `230` are in a state where the gateway advises the merchant to decline but has not declined it themselves. Instead the transaction is pending capture which can create a mismatch in reporting. This commit attempts to auto void transactions that have this response code and a flag that indicates the merchants would like to auto void these kinds of transactions. Remote: 121 tests, 611 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.8678% passed 5 test failures on master as well * Redsys: Set appropriate request fields for stored credentials with CITs and MITs Following pre-determined guidance for CIT/MIT request fields for this gateway. We were getting it mostly right, but almost didn't count, so the `DS_MERCHANT_DIRECTPAYMENT=false` value was added for initial CITs. Both CITs and MITs should be indicated with the `stored_credential` field `recurring`, so as long as that happens, `DS_MERCHANT_COF_TYPE` should have the value as `R` in both transactions. An outstanding task is to pass `DS_MERCHANT_IDENTIFIER` as 'REQUIRED' for CITs. I'm currently blocked on the credentials for the Redsys sandbox environment (getting the error `SIS0042` - Signature calculation error). This means that I'm unable to confirm that Redsys indeed returns a `DS_MERCHANT_IDENTIFIER` value in their response, in order to pass in a future MIT. Test Summary Local: 5512 tests, 77418 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 35 tests, 122 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe & Stripe PI: Validate API Key Stripe Unit: 145 tests, 765 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe Remote: 77 tests, 362 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe PI Unit: 42 tests, 224 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe PI Remote: 83 tests, 391 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Remove last validation for Stripe API Key * Add BIN for Maestro Adds one new BIN to the Maestro BIN list: 501623 CER-640 5514 tests, 77426 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected * DLocal: Add save field on card object * Add support for MsgSubID on PayPal Express requests (#4798) * Adds support for PayPal Express MsgSubID property * Removes unrequired PayPal changes for MsgSubID * Updates CHANGELOG with HEAD changes * Checkout_v2: use `credit_card?`, not case equality with `CreditCard` (#4803) Checkout_v2: use `credit_card?`, not case equality with `CreditCard` * Shift4: Enable general credit feature. (#4790) Summary:------------------------------ Enabling general credit feature Remote Test: ------------------------------ Finished in 171.436961 seconds. 28 tests, 63 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 92.8571% passed failing test not related to PR changes Unit Tests: ------------------------------ 26 tests, 163 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected Co-authored-by: Nick Ashton <nashton@gmail.com> * Release v1.130.0 * Redsys: Add supported countries This updates the list of countries that Redsys supports by adding France (FR), Great Britain (GB), Italy (IT), Poland (PL), and Portugal (PT) CER-643 5527 tests, 77497 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected * Authorize.net: truncate nameOnAccount for bank refunds The API specification requires that the string be no longer than 22 characters; refunds will fail if this limit is exceeded CER-670 REMOTE 85 tests, 304 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed UNIT 122 tests, 688 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed LOCAL 5525 tests, 77482 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected * Checkout: Add support for several customer data fields CER-595 Ran into a lot of tricky data collisions and had to do some finagling to make sure existing test cases would pass. I left open two possibilities for passing in the phone number depending on how users would like to pass it in: manually via options or via the phone number that’s attached to credit card billing data on the payment method. It’s possible to pay with a stored payment method which would be a `String`. In this case there’s no name data attached so added some guarding against NoMethodErrors that were resulting from trying to call payment_method.name. Remote Tests: 92 tests, 221 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.7391% passed Unit Tests: 57 tests, 319 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Local Tests: 5516 tests, 77434 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Worldpay: check payment_method responds to payment_cryptogram and eci (#4812) * Release v1.131.0 * Stripe PI: Add new stored credential flag Stripe has a field called `stored_credential_transaction_type` to assist merchants who vault outside of Stripe to recognize card on file transactions at Stripe. This field does require Stripe enabling your account with this field. The standard stored credential fields map to the various possibilities that Stripe makes available. Test Summary Remote: 87 tests, 409 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Commerce Hub - Add a couple of GSFs (#4786) Description ------------------------- Add: physical_goods_indicator maps to physicalGoodsIndicator inside of transactionDetails scheme_reference_transaction_id maps to schemeReferenceTransactionId inside of storedCredentials SER-501 Unit test ------------------------- Finished in 33.616793 seconds. 5511 tests, 77405 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 163.94 tests/s, 2302.57 assertions/s Rubocop ------------------------- Inspecting 760 files 760 files inspected, no offenses detected Co-authored-by: Luis <sinourain+endava@gmail.com> Co-authored-by: Nick Ashton <nashton@gmail.com> * Nuvei (formerly SafeCharge): Add customer details to credit action * IPG: Update live url to correct endpoint The live_url for IPG was likely always incorrect, this updates it to hit the actual endpoint. Also changes test data to prevent a scrub test failure. Remote (same failures on master): 18 tests, 40 assertions, 8 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications Unit: 27 tests, 123 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications * vPos: Adding Panal Credit Card type (#4814) Summary: ------------------------------ Add the panal credit card type and enables it for vPos gateway Unit Tests: ------------------------------ Finished in 38.864306 seconds. 5542 tests, 77546 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detectednitial commit * Stripe PI: Update parameters for creation of customer Start sending address, shipping, phone and email when creating a customer. Remote Tests 84 tests, 396 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests 42 tests, 224 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * WorldPay: Update xml tag for Credit Cards Update the xml tag for Credit Cards to be CARD-SSL instead of being specific to card brand. Remote: 100 tests, 416 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 109 tests, 637 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * PaywayDotCom: Update live url The gateway has advised to direct traffic to their failover .net endpoint LOCAL 5542 tests, 77550 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected UNIT 16 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 16 tests, 43 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe: Update login key validation Remote: Stripe PI 87 tests, 409 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe 77 tests, 362 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: Stripe PI 51 tests, 252 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe 146 tests, 769 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CheckoutV2: Parse AVS and CVV checks The CheckoutV2 gateway had logic in the response parsing method that would limit the scope of parsing to only authorize or purchase. This presents an issue for merchants using `verify-payment` or other methods that may have the AVS and CVV checks in the response. This commit also updates the AVS and CVV checks to use `dig` to safely try parsing out the values Test Summary Remote: 93 tests, 227 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * NMI: Add shipping_firstname, shipping_lastname, shipping_email, and surcharge fields CER-666 CER-673 LOCAL 5547 tests, 77613 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected UNIT 56 tests, 454 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 51 tests, 184 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 94.1176% passed *Test failures are related to Apple Pay and eCheck, and are also failing on master * Borgun: Update authorization_from & message_from Update authorization_from to return nil if the transaction failed or it is a 3DS transaction. Update message_from to return ErrorMessage if present. Unit: 12 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 22 tests, 43 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 72.7273% passed * Kushki: Add Brazil as supported country Unit 17 tests, 109 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote 18 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Adyen: Add additional data for airline and lodging Description ------------------------- GWS-67 This commit adds additional data for Adyen in order to be able to send information regarding the airline and lodging. To send this new data, it sends fields additional_data_airline and additional_data_lodging as a GSF. Unit test ------------------------- Finished in 0.157969 seconds. 109 tests, 567 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 690.01 tests/s, 3589.31 assertions/s Remote test ------------------------- Finished in 176.357086 seconds. 134 tests, 447 assertions, 11 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 91.791% passed 0.76 tests/s, 2.53 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected * MIT: Changed how the payload was sent to the gateway Closes #4655 * Nuvie/SafeCharge: Add unreferenced refund field * CyberSource: include `paymentSolution` for ApplePay and GooglePay (#4835) See - https://developer.cybersource.com/content/dam/docs/cybs/en-us/apple-pay/developer/fdiglobal/rest/applepay.pdf - https://developer.cybersource.com/content/dam/docs/cybs/en-us/google-pay/developer/fdiglobal/rest/googlepay.pdf Schema: - https://developer.cybersource.com/library/documentation/dev_guides/Simple_Order_API_Clients/html/Topics/Using_XML1.htm - https://ics2ws.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.211.xsd * Release v1.132.0 * Fix CHANGELOG after Version 1.132.0 (#4837) * CyberSource: remove credentials from tests (#4836) * Release v1.133.0 * Paysafe: Map order_id to merchantRefNum If options[:merchant_ref_num] is not supplied, options[:order_id] will be used as the fallback value CER-683 LOCAL 5559 tests, 77691 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected UNIT 18 tests, 89 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 33 tests, 82 assertions, 8 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 75.7576% passed * Stripe PI: Gate sending NTID Don't send NTID in add_stored_credential if post[:payment_method_options][:card][:stored_credential_transaction_type] = 'setup_on_session' and setup_future_usage=off_session. * Update required Ruby version Updated required Ruby version to be 2.7 and Rubocop to 0.72.0. All unit tests and rubocop: 5532 tests, 77501 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Release v1.134.0 * Kushki: Enable 3ds2 Summary: Enable 3ds version 2 on the gateway above SER-625 Unit Test Finished in 0.019977 seconds. ------------------------------------------------------------------------------------------------------ 17 tests, 109 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed ------------------------------------------------------------------------------------------------------ Remote Test Finished in 82.28609 seconds. ------------------------------------------------------------------------------------------------------ 23 tests, 68 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed ------------------------------------------------------------------------------------------------------ * Paymen…
* Sync up 20231110 (#4) * Reach: remove raise exception when stored-credentials can't be identified * Reach: fixing typo on store credentials uncheduled * Reach: refactor response methods and extra test for not paymentMethod * Revert "Reach: refactor response methods and extra test for not paymentMethod" This reverts commit e169025f2e1eb5ae7e4f5b52aea6ffa59b787572. * Revert "Reach: fixing typo on store credentials uncheduled" This reverts commit ad2e33306ebe0d9e4ff344c28217d9935924aedd. * Revert "Reach: remove raise exception when stored-credentials can't be identified" This reverts commit 4e1d3cd5ee9481bfcfde960b3d2d29b8f395f6a7. * Revert "Reach: remove raise exception when pymentMethod is not allowed" This reverts commit 7b973d9aef5133a12f33d251a35a57874cacb810. * Revert "Reach: using transaction token as ReferenceId on refunds" This reverts commit e40e1ee50e3687f5b123546dcf83141be1440073. * Reach: fixing store credentials and Exception issues Summary: ------------------------------ This PR solves 4 issues: 1) Remove exception for no allowed store credentials combination and leave the field empty. 2) Remove exception for not supported card brand and sent instead a not supported string. 3) Fixes a Typo on stored credentials code and test related with 'unscheduled' transactions. 4) Fixes and add the corresponding tests for 1 to 3. Remote Test: ------------------------------ Finished in 136.495605 seconds. 27 tests, 70 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 33.332219 seconds. 5419 tests, 76964 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * EBANX: add soft_descriptor field This field can be optionally passed in with the `creditcard` hash CER-317 * CommerceHub: Add Apple Pay and Google Pay (#4648) Summary: ------------------------------ In order to perform transactions using Apple Pay and Google Pay this commit adds the fields required and optionals to made succesful requests. Remote Tests: ------------------------------ Finished in 76.906747 seconds. 19 tests, 52 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 0.193742 seconds. 13 tests, 111 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: ------------------------------ 756 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.domain.name> Co-authored-by: Nick Ashton <nashton@gmail.com> * Global Collect & Alelo: Fixing year dependent failing tests Summary ----------------------- Changes a couple of tests that depend on date year Closes #4665 Unit test ----------------------- Finished in 40.268913 seconds. 5424 tests, 77006 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 756 files inspected, no offenses detected * Moneris: Add Google Pay Description ------------------------- Add google pay to moneris gateway Closes #4666 Unit test ------------------------- Finished in 32.996352 seconds. 5424 tests, 77006 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 164.38 tests/s, 2333.77 assertions/s Rubocop ------------------------- Running RuboCop... Inspecting 756 files 756 files inspected, no offenses detected * Element/Vantiv: Add google pay and apple pay support Summary: This PR updates element/vantiv gateway to support apple/google pay transactions Remote Tests Finished in 35.250506 seconds. 31 tests, 86 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected * Reach: fix amount handling to work with cents properly (#4670) Summary: ------------------------------ Provides proper format handling on reach gateway to receive amount as cents on authorize/purchase and refund. Remote Test: ------------------------------ Finished in 105.613556 seconds. 28 tests, 70 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 30.429736 seconds. 5425 tests, 77010 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * GlobalCollect: Add transaction inquire request Get payment status by payment id. Unit: 44 tests, 224 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 41 tests, 108 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.561% passed * Stripe PI: Add Level 3 support Remote: 79 tests, 346 assertions, 9 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 88.6076% passed Unit: 43 tests, 219 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Braintree: return additional processor response Adds the `additional_processor_response` to the transaction hash for unsuccessful transactions CER-284 LOCAL 5414 tests, 76942 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected REMOTE 100 tests, 491 assertions, 4 failures, 4 errors, 0 pendings, 0 omissions, 0 notifications 92% passed These failures/errors are present on the master branch as well * Payeezy name from `billing_address` on `purchase` Allow for the `billing_address` name value to be used if the `name` value is blank for the payment method Unit: 45 tests, 206 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 45 tests, 180 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe: add reverse_transfer to void transactions Both the void and refund methods call Stripe's /refunds endpoint, but the ability to sendoptions[:reverse_transfer] was not initially added to the void method CER-360 UNIT 5425 tests, 77010 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected REMOTE 77 tests, 362 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Update Changelog for PR #4668 * GlobalCollect: fix inquire bug * Credorax: Support google pay and apple pay Summary: ------------------------------ Being able to use google pay and apple pay as payment methods by Credorax gateway Closes #4661 Remote Test: ------------------------------ Finished in 117.823171 seconds. 25 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 37.864568 seconds. 5416 tests, 76949 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * Plexo: add 5 credit card brands (#4652) This change adds 5 new credit card brands (passcard, edenred, anda, tarjeta-d, sodexo bins ) and allows plexo gateway to use it. Remote Tests: Finished in 45.329665 seconds. 28 tests, 50 assertions, 0 failures, 0 errors, 0 pendings, 3 omissions, 0 notifications 100% passed Unit Tests: Finished in 0.013674 seconds.d 20 tests, 115 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop 756 files inspected, no offenses detected Update CHANGELOG * Authorize.net: Google pay token support Added remote test cases to Authorize for google pay authorize GWI-404 Closes #4659 ................................................................................... Finished in 96.632847 seconds. ---------------------------------------------------------------------------------------------------------------------------------------------------- 83 tests, 297 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed ---------------------------------------------------------------------------------------------------------------------------------------------------- 0.86 tests/s, 3.07 assertions/s * Credorax: Add support for Network Tokens Summary: ------------------------------ Enable the Credorax gateway to support payments via network_token Closes #4679 Remote Test: ------------------------------ 51 tests, 163 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 76.4706% passed tests failures not related with the changes Unit Tests: ------------------------------ 26 tests, 132 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 756 files inspected, no offenses detected * Stripe PI: use MultiResponse in create_setup_intent This change makes it possible to access the result of the call to /payment_methods alongside the ultimate result of the call to /setup_intents CER-357 REMOTE 80 tests, 378 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed UNIT 5439 tests, 77065 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected * Payeezy change `method` on capture (#4684) For Apple Pay transactions, the value for `method` is set to `3DS`, but when executing a `capture`, this value should be changed to `credit_card`. This differs from other use cases where the value provided on auth transactions should be the same one given for capture. Unit: 45 tests, 206 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 46 tests, 184 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Credorax: Update MIT logic Credorax is changing the requirements for MIT transactions in regards to NTIDs. Moving forward, all MIT transactions need to pass in the NTID if present. Additionally the NTID value is from the `Z50` flag and passed directly from the card scheme. Credorax notification: For any MIT transactions, this Trace ID must be stored from the original Card Holder initiated (CIT) transaction where the Card details were stored on file originally. When using Finaro gateway/acquiring this Trace ID is returned in the z50 parameter and must be sent in the g6 parameter for any subsequent MIT transactions, (if using an external token engine or your own token engine and the original CIT is not processed through Finaro, please liaise with your processor to obtain this Trace ID). Additionally, this original Card holder initiated transaction must be Fully authenticated with 3DSecure to comply with PSD2/SCA regulation in place. Please make sure that you comply with this for any customers saving their card details on file for subsequent MIT processed through Finaro ECS-2650 Test Summary The remote tests with stored creds now work but take ~17 minutes for me. Additionally there are some failing tests for me (on master as well). Can anyone else run these? * Adyen: Add support for `skip_mpi_data` flag CER-333 This change will allow for recurring payments with Apple Pay on Adyen by eliminating mpi data hash from request after initial payment. Unit: 104 tests, 528 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 131 tests, 440 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.8397% passed Local: 5430 tests, 77037 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Add Canadian Institution Numbers Adds two additional valid Canadian Institution Numbers: 618, 842 https://en.wikipedia.org/wiki/Routing_number_(Canada) CER-403 5439 tests, 77066 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 756 files inspected, no offenses detected * Payeezy: Handle nil and empty values for Apple Pay Payeezy support has indicated that passing empty or nil values in place of the `xid` and `cavv` may result in failed transactions for AMEX based AP tokens. They also informed us that the `eci_indicator` value should default to `5` instead of passing a nil value, following a similar pattern. This PR ignores empty `payment_cryptogram` and defaults the `eci_indicator` to `5` if that value is `nil`. Unit: 6 tests, 211 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 46 tests, 184 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Tns: update test URL Update test URL to be only secure.uat.tnspayments. Unit Test: 15 tests, 68 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * TrustCommerce: Update `authorization_from` to handle `store` response (#4691) Fix Store/Unstore features Remote tests -------------------------------------------------------------------------- 21 tests, 74 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.7143% passed Failing tests not related with changes unit tests -------------------------------------------------------------------------- 20 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * TrustCommerce Verify feature added (#4692) Enable verify feature on TrustCommerce Gateway Remote tests -------------------------------------------------------------------------- 21 tests, 74 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.7143% passed Failing tests not related with changes unit tests -------------------------------------------------------------------------- 22 tests, 72 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Rapyd: Add customer object to transactions (#4664) Description ------------------------- Rapyd Gateway send customer info on store transactions, with this commit it will be able to send customer on authorize and purchase transaction, when it use a US “PMT”s include the addresses object into the customer data in order to be able to perform US transactions properly. Unit test ------------------------- Finished in 0.123245 seconds. 22 tests, 103 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- Finished in 100.082672 seconds. 33 tests, 92 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 0.33 tests/s, 0.92 assertions/s Rubocop ------------------------- 756 files inspected, no offenses detected Co-authored-by: Javier Pedroza <jpedroza@spreedly.com> * CybersourceRest: Add new gateway with authorize and purchase Summary: ------------------------------ Adding CybersourceRest gateway with authorize and purchase calls. Closes #4690 GWI-474 Remote Test: ------------------------------ Finished in 3.6855 seconds. 6 tests, 17 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 35.528692 seconds. 5441 tests, 77085 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * CheckoutV2: Add store/unstore (#4677) Summary: ------------------------------ In order to use Third Party Vaulting (TPV), this commit adds store and unstore methods. For ApplePay (and NT in general) the verify method is used, to get a similar response, and formatted to be equal to the store response using the /instruments endpoint. Remote test ----------------------- Finished in 240.268913 seconds. 82 tests, 203 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.561% passed Unit test ----------------------- Finished in 0.268913 seconds. 52 tests, 289 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 756 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.domain.name> Co-authored-by: Nick Ashton <nashton@gmail.com> * Revert "CheckoutV2: Add store/unstore (#4677)" (#4703) This reverts commit e769cdb908d4a8543bc68f13a4f7aa04c60daf59. * Moneris: Fix google pay (update apple pay) (#4689) Description ------------------------- Truncate google pay and apple pay order id to 100 (max length of characters that google pay / apple pay accepts) Unit test ------------------------- Finished in 37.884991 seconds. 5439 tests, 77066 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 143.57 tests/s, 2034.21 assertions/s Rubocop ------------------------- 756 files inspected, no offenses detected Co-authored-by: Luis <sinourain+endava@gmail.com> * Litle: Add prelive url This commit adds a prelive URL to the Vantiv/Litle gateway. It relies on the existing url_override logic to set the prelive_url Test Summary Remote: 56 tests, 226 assertions, 13 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 76.7857% passed * CommerceHub: Adding changes for certification purposes (#4705) Summary: ------------------------------ Add changes to address some observations / improvements in the CommerceHub certification. * SER-494 / SER-498: setting and using order_id as reference * SER-495: use the correct end-point for verify * SER-496 / SER-497: get avs and cvv verification codes * SER-500: getting an error code from response Remote Test: ------------------------------ Finished in 108.050361 seconds. 23 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 46.103032 seconds. 5458 tests, 77155 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * CommerceHub: Fixing verify status and prevent tokenization (#4716) Summary: ------------------------------ * SER-495: Fix success detection for verify * SER-507: set default `create_token` for purchase and authorize transactions Remote Test: ------------------------------ Finished in 290.029817 seconds. 23 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 46.103032 seconds. 5458 tests, 77155 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Payeezy: Update Stored Credentials Payeezy requires sending original network transaction id to as cardbrand_original_transaction_id. Unit: 47 tests, 217 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 46 tests, 184 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Remove raise ArgumentError on get requests (#4714) The case for initiating a GET request raises a frivolous ArgumentError when the code already ignores any attempt to pass in a body to the request. * ChekoutV2:Add store/unstore (#4712) Summary: ------------------------------ In order to use Third Party Vaulting (TPV), this commit adds store and unstore methods. For apple pay/google pay the actual credentials could work, but for credit cards, and bank account the credentials required are secret_api_key and public_api_key. This commits also, refactor the initialize method removing the rescue ArgumentError, and modifing the commit method to use ssl_request. Remote test ----------------------- Finished in 164.163913 seconds. 88 tests, 216 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit test ----------------------- Finished in 0.046893 seconds. 53 tests, 297 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 756 files inspected, no offenses detected Co-authored-by: Gustavo Sanmartin <gsanmartin@EN2010363.local> Co-authored-by: Nick Ashton <nashton@gmail.com> * CybersourceREST - Refund | Credit Description ------------------------- This integration support the following payment operations: - Refund - Credit Closes #4700 Unit test ------------------------- Finished in 40.91494 seconds. 5454 tests, 77134 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 133.30 tests/s, 1885.23 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected GWI-471 * Payeezy: Ignore `xid` for AP Amex (#4721) Payeezy has stated the inclusion of `xid` values for AP (Amex underlying) transactions could result in failures. Add guard to ignore adding this field if the underlying is `american_express` Unit: 49 tests, 227 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 47 tests, 186 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * TrustCommerce Verify feature added (#4699) Enable verify feature on TrustCommerce Gateway Remote tests -------------------------------------------------------------------------- 21 tests, 74 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 85.7143% passed Failing tests not related with changes unit tests -------------------------------------------------------------------------- 22 tests, 72 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CER-440 Add papypal_custom_field and paypal_description gateway specific fields to braintree_blue gateway. Local: 5455 tests, 77085 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications 99.6517% passed Unit: 94 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 101 tests, 493 assertions, 4 failures, 4 errors, 0 pendings, 0 omissions, 0 notifications 92.0792% passed * CER-460 Add descriptor phone number to blue_snap Local: 5457 tests, 77095 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications 99.6518% passed Unit: 45 tests, 269 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 53 tests, 171 assertions, 9 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 83.0189% passed * Braintree: Update transaction hash method This PR is to update the transaction method to include the processor_authorization_code. * CyberSourceRest: Add apple pay, google pay Summary: ----------------------- In order to perform ApplePay and GooglePay transaction this commit, adds support. Closes #4708 Remote test ----------------------- Finished in 7.216327 seconds. 18 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit test ----------------------- Finished in 0.032725 seconds. 15 tests, 80 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 760 files inspected, no offenses detected * CyberSourceRest: Add apple pay, google pay Summary: ----------------------- In order to perform ApplePay and GooglePay transaction this commit, adds support. Closes #4708 Remote test ----------------------- Finished in 7.216327 seconds. 18 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit test ----------------------- Finished in 0.032725 seconds. 15 tests, 80 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop ----------------------- 760 files inspected, no offenses detected * CybersourceREST - Void | Verify Description ------------------------- This integration support the following payment operations: Verify Void Closes #4695 Unit test ------------------------- Finished in 29.20384 seconds. 5468 tests, 77209 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 186.76 tests/s, 2641.23 assertions/s Rubocop ------------------------- Inspecting 760 files 760 files inspected, no offenses detected * CommerceHub: adjusting reference details (#4723) Summary: ------------------------------ Changes reference details to properly send `referenceTransactionDetails` on capture requests Remote Test: ------------------------------ Finished in 290.029817 seconds. 23 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 47.993895 seconds. 5463 tests, 77178 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Orbital: dismiss CardSecValInd restriction (#4724) GWI-567 Remote: 122 tests, 509 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 144 tests, 817 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Rubocop: 760 files inspected, no offenses detected * Credorax: Set default ECI values for token transactions Condition eci field depending on payment_method Closes #4693 * CyberSource Rest: Add ACH Support Adding ACH/Bank Accounts to CyberSource Rest Closes #4722 Unit test: 13 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test: 10 tests, 26 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed GWI-480 * CommerceHub: setting transactionReferenceId for refunds (#4727) Summary: ------------------------------ Updating the refund reference to only use referenceTransactionId Remote Test: ------------------------------ Finished in 291.397602 seconds. 23 tests, 64 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.6522% passed Unit Tests: ------------------------------ Finished in 37.637689 seconds. 5474 tests, 77230 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Cybersource REST: Adding capture request Summary: ------------------------------ Adding the capture functionality to the Cybersource REST gateway Closes #4726 Remote Test: ------------------------------ Finished in 25.504733 seconds. 25 tests, 89 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 39.743032 seconds. 5468 tests, 77209 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Paymentez: Add inquire by transaction_id Get payment status by Paymentez transaction id Unit: 30 tests, 127 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 34 tests, 73 assertions, 9 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 73.5294% passed ** These failures also existed on the main branch ** * Cybersource Rest - update message response on error Description ------------------------- Update message response on error in order to get a more redeable response GWI-571 Unit test ------------------------- Finished in 30.871357 seconds. 5476 tests, 77239 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 177.38 tests/s, 2501.96 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected * Ebanx: Add transaction inquire request Get transaction by authorization. Remote: 27 tests, 73 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.2963% passed Unit: 20 tests, 89 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CommerceHub: Update fields for transactions with sotred credentials (#4733) Description ------------------------- This commit add new fields for transactions with stored credentials options and remove the current referenceMerchantTransactionId in order to use referenceTransactionId [SER-504](https://spreedly.atlassian.net/browse/SER-504) [SER-536](https://spreedly.atlassian.net/browse/SER-536) Unit test ------------------------- Finished in 0.01392 seconds. 22 tests, 147 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 1580.46 tests/s, 10560.34 assertions/s Remote test ------------------------- Finished in 296.371956 seconds. 24 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 0.08 tests/s, 0.21 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected Co-authored-by: Javier Pedroza <jpedroza@spreedly.com> * Ebanx: Add support of Elo & Hipercard For all credit card transactions Ebanx only requires payment_type_code to be 'creditcard' no matter the card. This removes the need of specifiying the card brand in Ebanx transaction. Unit: 19 tests, 84 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 28 tests, 74 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.4286% passed * Checkout_v2: Add idempotency key support This PR is to add the support for an optional idempotency key through the header during requests and should be available to all actions 'purchase, authorize, and etc'. I did note that the failing remote tests were sending back 401 unauthorize even when on the latest upstream master. Test results below: Local: 5469 tests, 77162 assertions, 0 failures, 19 errors, 0 pendings, 0 omissions, 0 notifications 99.6526% passed Unit: 54 tests, 300 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 89 tests, 213 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.5056% passed * Adyen: add support for shopper_statement field for capture action * Checkout_v2: update idmepotency_key names * * Payeezy: Enable external 3DS Summary: ------------------------------ This PR includes the fields and logic required to send external 3ds data for purchases and auths. Closes #4715 Test Execution: ------------------------------ Unit test Finished in 0.067186 seconds. 46 tests, 211 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test Finished in 140.523393 seconds. 48 tests, 194 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Failures not related with the added code RuboCop: ------------------------------ 760 files inspected, no offenses detected * Shift4: Fix `Content-type` value (#4740) Change `Content-type` value to `applicaiton/json` instead of xml Unit: 23 tests, 147 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 24 tests, 56 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 91.6667% passed * Ebanx: Remove default email ECS-2829 Ebanx requires that merchants pass in an email in order to complete a transaction. Previously, ActiveMerchant was sending in a default email if one was not provided which causes Ebanx's fraud detection to mark these transactions as failed for fraud. This incorrect failure message has led to merchant frustration since they could not quickly know the root of the problem Test Summary Remote: 32 tests, 88 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.875% passed * CyberSourceRest: Add stored credentials support Description ------------------------- This commit adds support for stored credentials to the CyberSourceRest gateway and according to their docs CyberSource has two type of flows [initial](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/credentials-intro/credentials-maxtrix/credentials-maxtrix-initial.html) and [subsequent](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/credentials-matrix/credentials-matrix-sub.html) Closes #4707 Unit test ------------------------- Finished in 0.025301 seconds. 18 tests, 97 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 711.43 tests/s, 3833.84 assertions/s Remote test ------------------------- Finished in 25.932718 seconds. 29 tests, 107 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 1.12 tests/s, 4.13 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected * Payeezy: Add `last_name` for `add_network_tokenization` This change updates the `add_network_tokenization` method to include the `last_name` in the `cardholder_name` value when getting the name from a payment method Closes #4743 Unit: 49 tests, 227 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 50 tests, 201 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe PI: tokenize PM for verify ECS-2867 For the Stripe PI gateway, when a merchant runs a verify they want to get back the resulting card information that Stripe provides. In off_session cases we are not tokenizing the card at Stripe which prevents us from getting back valuable card details. This commit updates the logic to always get the card details back from Stripe on verify transactions. This commit also improves the resiliency of Stripe PI remote tests by dynamically creating a customer object before running the remote tests so that they do not error out with a too many payment methods for customer message. Test Summary Remote: 80 tests, 380 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Kushki Gateway: Add support for the months and deferred fields * Borgun: Update TrCurrencyExponent ECS-2861 A merchant using the Borgun gateway reported that when a user was completing the challenge, the gateway was displaying a value 100 times greater than what was requested. This casused the ccardholders to stop the 3DS flow and abandon the cart. After reaching out to the Borgun gateway they explained that the ISK currency on Borgun is sometimes a 0 decimal currency and sometimes a 2 decimal currency. The explanation given via email is that we must provide the TrCurrencyExponent of 2 when utilizing the 3DS flow but not on the finish sale portion. Remote: 22 tests, 47 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.9091% passed Note: these 2 tests fail on master * CyberSourceRest: Add gateway specific fields handling Summary: In order to handle several gateway specific fields this commit add the following ones in the cybersource rest gateway file - ignore_avs - ignore_cvv - mdd_fields - reconciliation_id - customer_id - zero_amount_verify - sec_code Closes #4746 Remote Test: Finished in 36.507289 seconds. 35 tests, 108 assertions, 0 failures, 0 errors, 0 pendings,0 omissions, 0 notifications 100% passed Unit Tests: Finished in 0.06123 seconds. 2718 tests, 150 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: 760 files inspected, no offenses detected * IPG: Improve error handling Summary: ------------------------------ This change improves the amount of detail in the response message when the gateway responds with an error. Closes #4753 Remote Test: ------------------------------ Remote: 18 tests, 54 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 29.462929 seconds 5483 tests, 77277 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * * Shift4: Handle access token failed calls Summary: ------------------------------ Adding changes to handle failed calls to get the access token GWS-46 Closes #4745 Remote Test: ------------------------------ Finished in 172.659123 seconds. 24 tests, 56 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 91.6667% passed Unit Tests: ------------------------------ Finished in 40.296092 seconds. 5480 tests, 77260 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Bogus: Add verify, plus assoc. test * Checkout v2: Add Shipping Address Add shipping address local and remote tests Remove Marketplace object as not supported for Sandbox testing * Release 1.128.0 * Adyen: update selectedBrand mapping for Google Pay Adyen advised that `googlepay` is the correct value to send for `selectedBrand` CER-550 LOCAL 5498 tests, 77340 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected GATEWAY - UNIT TESTS 105 tests, 531 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed GATEWAY - REMOTE TESTS 132 tests, 443 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.9091% passed * Shift4: add vendorReference field This change maps `options[:order_id]` to Shift4's `vendorReference` field CER-563 LOCAL 5498 tests, 77341 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected GATEWAY UNIT TESTS 25 tests, 154 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed GATEWAY REMOTE TESTS 25 tests, 58 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 92% passed (These failures also exist on the master branch) * Litle update the successful_from method Add 001 and 010 to be considered successful responses for Litle. Remote 57 tests, 251 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit 58 tests, 255 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Improve error handling: OAuth ECS-2845 OAuth has become a standard authentication mechanism for many gateways in recent years however AM has not been updated to support error handling when a merchant passes incorrect details to the gateway. In non OAuth flows we would return a failed response. This commit now raises a new exception type indicating that the request failed at the OAuth stage rather than the transaction stage of a request Remote: 25 tests, 57 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 92% passed * Stripe PI: Add billing address when tokenizing for ApplePay and GooglePay This adds functionality to add the card's billing address to digital wallets ApplePay and GooglePay. The billing address is available on the result of the card tokenization and is saved to the created PaymentIntent. The remote test failures also exist on `master`. Test Summary Local: 5500 tests, 77348 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 83 tests, 368 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 93.9759% passed * Rexml is no longer a default gem in Ruby 3 (#3852) * Revert "Rexml is no longer a default gem in Ruby 3 (#3852)" (#4767) This reverts commit dad65a7cb70985e1b477231c4d7e33455d40e04c. It caused ci to fail due to a rexml issue. * Add rexml as a gem dependency (#4768) * Add rexml as a gem dependency Rexml is no longer included with Ruby 3+, we therefore need to add the dependency explicitely. * Remove garbage character from test file * Release v1.129.0 * Mit: Changed how the payload was sent to the gateway Closes #4655 * Revert "Mit: Changed how the payload was sent to the gateway" This reverts commit 6e3cd4b431fdd521e955d80fa3133f6dc2653899. * PayuLatam: The original method of surfacing error codes was redundant and didn't actually surface a network code that is particularly useful. This PR aims to fix that issue for failing transactions. * CyberSource: Handling Canadian bank accounts Summary: ------------------------------ Add changes to CyberSource to properly format canadian routing numbers when payment methods is bank account. GWS-48 Closes #4764 Remote Test: ------------------------------ Finished in 114.912426 seconds. 121 tests, 611 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.8678% passed *Notes on erros*: The test suite was ran with a single account rason for errors: - 2 errors correspondsto account not enabled for canadian bank transactions. - 2 errors correspond to outdated 3ds PAR values. - 1 error related with account not enabled for async. Unit Tests: ------------------------------ Finished in 41.573188 seconds. 5501 tests, 77346 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Update Changelog * CyberSource Rest: Fixing currency detection Summary: ------------------------------ Fix bug on Cybersource Rest to use other currencies different than USD. Closes #4777 Remote Test: ------------------------------ Finished in 46.080483 seconds. 43 tests, 141 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 33.72359 seconds. 5506 tests, 77384 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected * Cybersource: Add business rules for NT ECS-2849 A previous commit from 2015 restricted the ability to pass business rules such as `ignoreAVSResult` and `ignoreCVResult` on API requests with NetworkTokenization cards. Merchants are now asking for this to be allowed on requests with payment methods such as NT/AP/GP and the remote tests seem to indicate we can add these fields for these types of payment methods. Remote CBYS SOAP: 119 tests, 607 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.479% passed Remote CYBS Rest: 46 tests, 152 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Adyen: Update Mastercard error messaging Adyen error messaging uses the generic refusalReasonRaw field as part of the response message. Adyen offers a more detailed Mastercard-specific field called merchantAdviceCode that should be present for failed Mastercard transactions. Adyen error messaging now checks for the merchantAdviceCode first. If it is not present (i.e. this is not a Mastercard transaction or it is a Mastercard transaction and this field is missing for some reason) then the default refusalReasonRaw field is used (like previous functionality). ECS-2767 Unit: 107 tests, 539 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 132 tests, 443 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 90.9091% passed *These 12 tests fail on master Closes #4770 * Authorize.net: update mapping for billing address phone number Adds a bit of logic to the Authorize.net gateway so that phone number can be passed via `billing_address[phone_number]` in addition to `billing_address[phone]` This is similar to #4138 CER-590 LOCAL 5503 tests, 77374 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed UNIT 121 tests, 681 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 84 tests, 301 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Braintree: update mapping for billing address phone number Adds a bit of logic to the Braintree gateway so that phone number can be passed via billing_address[phone_number] in addition to billing_address[phone] This is similar to #4138 CER-603 LOCAL 5505 tests, 77373 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected UNIT 94 tests, 207 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 103 tests, 550 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CommerceHub: Enabling multi-use public key encryption (#4771) Summary: ------------------------------ Changes the payment method so is possible to send an encrypted credit card following the CommerceHub Multi-User public key methodology. SER-555 Note on failing test: You need the proper account permissions and credentials to use the encrypted credit card. Remote Test: ------------------------------ Finished in 288.325843 seconds. 25 tests, 63 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: ------------------------------ Finished in 38.640945 seconds. 5506 tests, 77384 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected Co-authored-by: cristian <Heavyblade@users.noreply.github.com> Co-authored-by: Nick Ashton <nashton@gmail.com> * Ogone: Enable 3ds Global for Ogone Gateway (#4776) Description ------------------------------------------- This commit introduces the support for 3DS Global payments using the Ogone Direct API through GlobalCollect. As Ogone and GlobalCollect share the same underlying payment service provider (PSP), Worldline, we can leverage the new attribute 'ogone_direct' to use the appropriate credentials and endpoint to connect with the Ogone Direct API. [SER-562](https://spreedly.atlassian.net/browse/SER-562) UNIT TEST ------------------------------------------- Finished in 0.253826 seconds. 44 tests, 225 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 173.35 tests/s, 886.43 assertions/s REMOTE TEST ------------------------------------------- Finished in 71.318909 seconds. 43 tests, 115 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.6744% passed 0.60 tests/s, 1.61 assertions/s Note: During testing, a single failure related to installment processing was identified with GlobalCollect. The error message "NO_ACQUIRER_CONFIGURED_FOR_INSTALLMENTS" I think that the issue may be related to GlobalCollect's account configuration, which is outside the scope of this update. RUBOCOP ------------------------------------------- 760 files inspected, no offenses detected Co-authored-by: Javier Pedroza <jpedroza@spreedly.com> * Borgun change default TrCurrencyExponent and MerchantReturnUrl (#4788) Borgun default TrCurrencyExponent to 2 for all 3DS txn and 0 for all else. Change MerchantReturnUrl to `redirect_url`. Unit: 11 tests, 56 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 22 tests, 43 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 77.2727% passed * Borgun support for GBP currency (#4789) Add support to Borgun for GPB based on [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) Unit: Remote: * Worlpay: Fix Google Pay Ensure that we don't send cardHolderName if empty and that Google Pay and Apple Pay fall into the network tokenization code path and not the credit card path. Remote Tests: 100 tests, 416 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests: 107 tests, 633 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe PI: Update paramters for creating of customer Start sending address, shipping, phone and email when creating a customer. Remote Tests 84 tests, 396 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests 42 tests, 224 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Revert "Stripe PI: Update paramters for creating of customer" This reverts commit 46f7bbc8b7b6afa16f26b6cc12f7c13b4d1d3ea3. * Cybersource: auto void r230 ECS-2870 Cybersource transactions that fail with a reasonCode of `230` are in a state where the gateway advises the merchant to decline but has not declined it themselves. Instead the transaction is pending capture which can create a mismatch in reporting. This commit attempts to auto void transactions that have this response code and a flag that indicates the merchants would like to auto void these kinds of transactions. Remote: 121 tests, 611 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 95.8678% passed 5 test failures on master as well * Redsys: Set appropriate request fields for stored credentials with CITs and MITs Following pre-determined guidance for CIT/MIT request fields for this gateway. We were getting it mostly right, but almost didn't count, so the `DS_MERCHANT_DIRECTPAYMENT=false` value was added for initial CITs. Both CITs and MITs should be indicated with the `stored_credential` field `recurring`, so as long as that happens, `DS_MERCHANT_COF_TYPE` should have the value as `R` in both transactions. An outstanding task is to pass `DS_MERCHANT_IDENTIFIER` as 'REQUIRED' for CITs. I'm currently blocked on the credentials for the Redsys sandbox environment (getting the error `SIS0042` - Signature calculation error). This means that I'm unable to confirm that Redsys indeed returns a `DS_MERCHANT_IDENTIFIER` value in their response, in order to pass in a future MIT. Test Summary Local: 5512 tests, 77418 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 35 tests, 122 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe & Stripe PI: Validate API Key Stripe Unit: 145 tests, 765 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe Remote: 77 tests, 362 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe PI Unit: 42 tests, 224 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe PI Remote: 83 tests, 391 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Remove last validation for Stripe API Key * Add BIN for Maestro Adds one new BIN to the Maestro BIN list: 501623 CER-640 5514 tests, 77426 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected * DLocal: Add save field on card object * Add support for MsgSubID on PayPal Express requests (#4798) * Adds support for PayPal Express MsgSubID property * Removes unrequired PayPal changes for MsgSubID * Updates CHANGELOG with HEAD changes * Checkout_v2: use `credit_card?`, not case equality with `CreditCard` (#4803) Checkout_v2: use `credit_card?`, not case equality with `CreditCard` * Shift4: Enable general credit feature. (#4790) Summary:------------------------------ Enabling general credit feature Remote Test: ------------------------------ Finished in 171.436961 seconds. 28 tests, 63 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 92.8571% passed failing test not related to PR changes Unit Tests: ------------------------------ 26 tests, 163 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detected Co-authored-by: Nick Ashton <nashton@gmail.com> * Release v1.130.0 * Redsys: Add supported countries This updates the list of countries that Redsys supports by adding France (FR), Great Britain (GB), Italy (IT), Poland (PL), and Portugal (PT) CER-643 5527 tests, 77497 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected * Authorize.net: truncate nameOnAccount for bank refunds The API specification requires that the string be no longer than 22 characters; refunds will fail if this limit is exceeded CER-670 REMOTE 85 tests, 304 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed UNIT 122 tests, 688 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed LOCAL 5525 tests, 77482 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected * Checkout: Add support for several customer data fields CER-595 Ran into a lot of tricky data collisions and had to do some finagling to make sure existing test cases would pass. I left open two possibilities for passing in the phone number depending on how users would like to pass it in: manually via options or via the phone number that’s attached to credit card billing data on the payment method. It’s possible to pay with a stored payment method which would be a `String`. In this case there’s no name data attached so added some guarding against NoMethodErrors that were resulting from trying to call payment_method.name. Remote Tests: 92 tests, 221 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 96.7391% passed Unit Tests: 57 tests, 319 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Local Tests: 5516 tests, 77434 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Worldpay: check payment_method responds to payment_cryptogram and eci (#4812) * Release v1.131.0 * Stripe PI: Add new stored credential flag Stripe has a field called `stored_credential_transaction_type` to assist merchants who vault outside of Stripe to recognize card on file transactions at Stripe. This field does require Stripe enabling your account with this field. The standard stored credential fields map to the various possibilities that Stripe makes available. Test Summary Remote: 87 tests, 409 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Commerce Hub - Add a couple of GSFs (#4786) Description ------------------------- Add: physical_goods_indicator maps to physicalGoodsIndicator inside of transactionDetails scheme_reference_transaction_id maps to schemeReferenceTransactionId inside of storedCredentials SER-501 Unit test ------------------------- Finished in 33.616793 seconds. 5511 tests, 77405 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote test ------------------------- 163.94 tests/s, 2302.57 assertions/s Rubocop ------------------------- Inspecting 760 files 760 files inspected, no offenses detected Co-authored-by: Luis <sinourain+endava@gmail.com> Co-authored-by: Nick Ashton <nashton@gmail.com> * Nuvei (formerly SafeCharge): Add customer details to credit action * IPG: Update live url to correct endpoint The live_url for IPG was likely always incorrect, this updates it to hit the actual endpoint. Also changes test data to prevent a scrub test failure. Remote (same failures on master): 18 tests, 40 assertions, 8 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications Unit: 27 tests, 123 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications * vPos: Adding Panal Credit Card type (#4814) Summary: ------------------------------ Add the panal credit card type and enables it for vPos gateway Unit Tests: ------------------------------ Finished in 38.864306 seconds. 5542 tests, 77546 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed RuboCop: ------------------------------ 760 files inspected, no offenses detectednitial commit * Stripe PI: Update parameters for creation of customer Start sending address, shipping, phone and email when creating a customer. Remote Tests 84 tests, 396 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit Tests 42 tests, 224 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * WorldPay: Update xml tag for Credit Cards Update the xml tag for Credit Cards to be CARD-SSL instead of being specific to card brand. Remote: 100 tests, 416 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: 109 tests, 637 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * PaywayDotCom: Update live url The gateway has advised to direct traffic to their failover .net endpoint LOCAL 5542 tests, 77550 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected UNIT 16 tests, 64 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 16 tests, 43 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Stripe: Update login key validation Remote: Stripe PI 87 tests, 409 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe 77 tests, 362 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Unit: Stripe PI 51 tests, 252 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Stripe 146 tests, 769 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * CheckoutV2: Parse AVS and CVV checks The CheckoutV2 gateway had logic in the response parsing method that would limit the scope of parsing to only authorize or purchase. This presents an issue for merchants using `verify-payment` or other methods that may have the AVS and CVV checks in the response. This commit also updates the AVS and CVV checks to use `dig` to safely try parsing out the values Test Summary Remote: 93 tests, 227 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * NMI: Add shipping_firstname, shipping_lastname, shipping_email, and surcharge fields CER-666 CER-673 LOCAL 5547 tests, 77613 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected UNIT 56 tests, 454 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 51 tests, 184 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 94.1176% passed *Test failures are related to Apple Pay and eCheck, and are also failing on master * Borgun: Update authorization_from & message_from Update authorization_from to return nil if the transaction failed or it is a 3DS transaction. Update message_from to return ErrorMessage if present. Unit: 12 tests, 66 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote: 22 tests, 43 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 72.7273% passed * Kushki: Add Brazil as supported country Unit 17 tests, 109 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed Remote 18 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Adyen: Add additional data for airline and lodging Description ------------------------- GWS-67 This commit adds additional data for Adyen in order to be able to send information regarding the airline and lodging. To send this new data, it sends fields additional_data_airline and additional_data_lodging as a GSF. Unit test ------------------------- Finished in 0.157969 seconds. 109 tests, 567 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 690.01 tests/s, 3589.31 assertions/s Remote test ------------------------- Finished in 176.357086 seconds. 134 tests, 447 assertions, 11 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 91.791% passed 0.76 tests/s, 2.53 assertions/s Rubocop ------------------------- 760 files inspected, no offenses detected * MIT: Changed how the payload was sent to the gateway Closes #4655 * Nuvie/SafeCharge: Add unreferenced refund field * CyberSource: include `paymentSolution` for ApplePay and GooglePay (#4835) See - https://developer.cybersource.com/content/dam/docs/cybs/en-us/apple-pay/developer/fdiglobal/rest/applepay.pdf - https://developer.cybersource.com/content/dam/docs/cybs/en-us/google-pay/developer/fdiglobal/rest/googlepay.pdf Schema: - https://developer.cybersource.com/library/documentation/dev_guides/Simple_Order_API_Clients/html/Topics/Using_XML1.htm - https://ics2ws.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.211.xsd * Release v1.132.0 * Fix CHANGELOG after Version 1.132.0 (#4837) * CyberSource: remove credentials from tests (#4836) * Release v1.133.0 * Paysafe: Map order_id to merchantRefNum If options[:merchant_ref_num] is not supplied, options[:order_id] will be used as the fallback value CER-683 LOCAL 5559 tests, 77691 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 760 files inspected, no offenses detected UNIT 18 tests, 89 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed REMOTE 33 tests, 82 assertions, 8 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 75.7576% passed * Stripe PI: Gate sending NTID Don't send NTID in add_stored_credential if post[:payment_method_options][:card][:stored_credential_transaction_type] = 'setup_on_session' and setup_future_usage=off_session. * Update required Ruby version Updated required Ruby version to be 2.7 and Rubocop to 0.72.0. All unit tests and rubocop: 5532 tests, 77501 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed * Release v1.134.0 * Kushki: Enable 3ds2 Summary: Enable 3ds version 2 on the gateway above SER-625 Unit Test Finished in 0.019977 seconds. ------------------------------------------------------------------------------------------------------ 17 tests, 109 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed ------------------------------------------------------------------------------------------------------ Remote Test Finished in 82.28609 seconds. ------------------------------------------------------------------------------------------------------ 23 tests, 68 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed ----------------------------------------------------------------…
Description
This integration support the following payment operations:
Unit test
Finished in 37.39707 seconds.
5452 tests, 77126 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed
Remote test
145.79 tests/s, 2062.35 assertions/s
Rubocop
760 files inspected, no offenses detected
GWI-471
Important note:
Previous review here: #4696