Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Sync with orgiginal gem #7

Open
wants to merge 1,762 commits into
base: master
Choose a base branch
from
Open

Conversation

tarek-elsayyad
Copy link

No description provided.

esmitperez and others added 30 commits August 13, 2020 08:21
Add additional error detail when paymentNetworkResponseErrorMessage
might be more useful.

CE-482

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

Remote:
35 tests, 77 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
82.8571% passed
CE-769

Unit:
22 tests, 99 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
24 tests, 67 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Add additional error detail when paymentNetworkResponseErrorMessage
might be more useful.

CE-482

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

Remote:
35 tests, 77 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
82.8571% passed

Closes PR activemerchant#3717
XML parse error observed if this field comes after partnerSolutionId. Switch order and add tests. Also check merchant_descriptor in case that could cause issues.

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

Remote:
95 tests, 489 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
94.7368% passed
(all known, unrelated failures)
CE-710

Unit:
94 tests, 557 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
36 tests, 185 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
88.8889% passed

Unrelated, previously failing remote tests:
- test_successful_american_express_authorization_with_3ds
- test_successful_american_express_purchase_with_3ds
- test_successful_master_authorization_with_3ds
- test_successful_master_purchase_with_3ds

Rubocop lint fixes.

Add add_card_indicators to the authorize action.

Unit::
95 tests, 561 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Update credit_card number for visa

22 tests were failing on master with previous card_number, change to visa card number fixed most of those failures with the exception of 3ds tests that are still failing (total of 4 failed tests)

Unit:
95 tests, 561 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
36 tests, 185 assertions, 4 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
88.8889% passed
PC3Dtllinetot changed to PC3DtlLineTot

CE-762

Unit: 93 tests, 553 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 35 tests, 181 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
85.7143% passed

Failed tests appear to be new and unrelated to changes made in Active
Merchant

Removing redundant conditional
Currently we are sending ‘X-Device-Session-Id’ in the header. The correct header we should be sending is 'X-meli-session-id'.

Unit tests:
38 tests, 175 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

32 tests, 87 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
84.375% passed

The five failing tests are also failing on Master:
test_partial_capture failing with "Invalid parameters for payment_method API"
test_successful_authorize_and_capture_with_cabal failing with "Deferred capture not supported"
test_successful_purchase_with_processing_mode_gateway failing with "Unauthorized use of processing mode gateway"
test_successful_purchase_with_taxes_and_net_amount failing with "The name of the following parameters is wrong : taxes"
test_successful_void_with_cabal failing with "Deferred capture not supported"

Did not update the changelog since it is a fix.
Fixes the RuboCop to-do for [Style/TrailingCommaInHashLiteral](https://docs.rubocop.org/rubocop/0.85/cops_style.html#styletrailingcommainhashliteral).

All unit tests:
4534 tests, 72191 assertions, 0 failures, 0 errors, 0 pendings, 0
omissions, 0 notifications
100% passed
Fixes the RuboCop to-do for [Naming/PredicateName](https://docs.rubocop.org/rubocop/0.85/cops_naming.html#namingpredicatename).

All unit tests:
4543 tests, 72248 assertions, 0 failures, 0 errors, 0 pendings, 0
omissions, 0 notifications
100% passed
Fixes the RuboCop to-do for [Style/Attr](https://docs.rubocop.org/rubocop/0.85/cops_style.html#styleattr).

All unit tests:
4544 tests, 72251 assertions, 0 failures, 0 errors, 0 pendings, 0
omissions, 0 notifications
100% passed
For rev share flagging purposes, Payflow requires the corresponding
code to be included as ExtData field BUTTONSOURCE, similar to Paypal.
Example structure as follows, confirmed by paypal/payflow support
(https://stackoverflow.com/a/19414626):

```
<Sale>
     <PayData>
          (Invoice)
          (Tender)
     </PayData>
     (ExtData)*
</Sale>
```

This PR updates sale and auth requests to set this field appropriately
when application_id is provided

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

Remote:
38 tests, 156 assertions, 12 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
68.4211% passed
(unrelated failures preexist on master)
Currently, if you try to issue a refund using a capture as your
reference transaction, you will get an error. This is because the
authorization value here only refers to the capture, with no
connection to the auth. In other adapters, we solve for this by
building up an authorization value that includes references to the
current transaction as well as reference transactions (and potentially
other data). This allows us to parse this field to return the
correct reference transaction for supplemental actions. This PR
updates HPS to build an authorization value including the authorize
transaction id for captures. It also adds in logic to pluck off
the appropriate value when issuing a refund on a capture txn.

Unit:
54 tests, 267 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
52 tests, 143 assertions, 3 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
94.2308% passed
(preexisting failures also on master)
This fixes a bug caused by submitting an empty string for the state
field (which is submitted as 'region' to Quickbooks). While `nil` values
for this field are fine because the field is then simply omitted from
the request sent to Quickbooks, sending an empty string results in the
error message `card.address.region is invalid`.

ECS-1355

Unit:
22 tests, 118 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions,
0 notifications
100% passed

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

All unit tests:
4544 tests, 72251 assertions, 0 failures, 0 errors, 0 pendings, 0
omissions, 0 notifications
100% passed
Fully support `transaction-meta-data` field.

See documentation on
[meta-data](https://developers.bluesnap.com/v8976-XML/docs/meta-data)
field.

CE-697

Unit:
35 tests, 199 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
45 tests, 158 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Add level 3 fields to capture transactions. Revert a previous 'fix'
where PC3DtlLineTot was incorrectly assumed to be the correct tag
(should be `PC3Dtllinetot`).

CE-930

Unit: 95 tests, 561 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote: 37 tests, 192 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
94.5946% passed
Credorax now requires the following parameters when issuing CFT payouts:
* j5 - Fund recipient's first name
* j13 - Fund recipient's surname

Updates the referral_cft action to set these two fields,
and checks for their presence in the tests.

Remote:
41 tests, 152 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
69 tests, 329 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Confirm that card_indicators is being passed to the gateway. I confirm that card_indicators is being passed with options. See options hash below. 3DS tests on orbital are still failing, as they have been on master.

{:order_id=>"bc8b1fd1ca40f4d8ba6e072cfa11f38f", :address=>{:name=>"Jim Smith", :address1=>"456 My Street", :address2=>"Apt 1", :company=>"Widgets Inc", :city=>"Ottawa", :state=>"ON", :zip=>"K1C2N6", :country=>"CA", :phone=>"(555)555-5555", :fax=>"(555)555-6666"}, :merchant_id=>"merchant1234", :soft_descriptors=>{:merchant_name=>"Merch", :product_description=>"Description", :merchant_email=>"email@example"}, :card_indicators=>"y"}

Orbital: correct ordering for CardIndicators

Unit:
95 tests, 561 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
36 tests, 189 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
94.4444% passed

Unrelated, previously failing remote tests:
- test_successful_american_express_authorization_with_3ds
- test_successful_american_express_purchase_with_3ds

Updated CHANGELOG
Previously, when an empty string was submitted for the
`[:billing_address][:country]`, CyberSource would response with an error
message since this field is required.

When a payment method that contained only a phone number with no other
address information was used, this resulted in the payment failing. To
resolve this issue, the `setup_address_hash` method was updated to match
the intent of the already existing comment: to always supply the default
address to CyberSource regardless of whether a `nil` value or an empty
string was initially submitted as the value for `country` or any other
required address field.

ECS-1363

Unit:
97 tests, 470 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions,
0 notifications
100% passed

Remote:
95 tests, 490 assertions, 5 failures, 0 errors, 0 pendings, 0 omissions,
0 notifications
94.7368% passed

All unit tests:
4551 tests, 72299 assertions, 0 failures, 0 errors, 0 pendings, 0
omissions, 0 notifications
100% passed
* Partial Refund reject on Pending status

* update condition for greater and less

* update for The Travis CI build failed

Co-authored-by: Rocky Lee <[email protected]>
Add support for following fields:
- card-holder-info/address
- card-holder-info/address2
- card-holder-info/phone
- shipping-contact-info/first-name
- shipping-contact-info/last-name
- shipping-contact-info/address1
- shipping-contact-info/address2
- shipping-contact-info/city
- shipping-contact-info/state
- shipping-contact-info/zip
- shipping-contact-info/country

CE-913

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

Remote:
47 tests, 162 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
A recent commit added support for receiving meta-data on BlueSnap but
did not protect against a `nil` key being submitted for that field. This
change protects against `{ transaction_meta_data: nil }` for BlueSnap.

4556 tests, 72358 assertions, 0 failures, 0 errors, 0 pendings,
  0 omissions, 0 notifications
692 files inspected, no offenses detected
…roller::Parameters`

When `ActionController::Parameters` is passed to Cybersource, the default address fields are used
instead of the passed parameters. See following comment for more information.

References: activemerchant#3747 (comment)
In df60a2c when execute_threeds is
false it is assigned to the additionalData as a whole instead of
additively, so previously added additionalData fields were destroyed.
This change adds the field safely.

Remote:
92 tests, 353 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
70 tests, 330 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Closes activemerchant#2756
dsmcclain and others added 26 commits May 17, 2021 14:52
CE-1176

Local:
4722 tests, 73466 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
Loaded suite test/remote/gateways/remote_qvalent_test
22 tests, 70 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
699 files inspected, no offenses detected
Add support for reccuring payment types. Extract networkTransId into response. Set originalNetworkTransId for all MIT transactions. Set isFirstRecurringPayment if it is a first recurring transaction.

ECS-1817

Unit:
107 tests, 637 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
73 tests, 269 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Messing with the github workflow to try and get a new runner.
This reverts commit 7865287.
CE-1541

Remote:
98 tests, 502 assertions, 6 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
93.8776% passed
The following remote tests are currently failing on master as well as this branch:
test_successful_validate_pinless_debit_card
test_successful_pinless_debit_card_purchase
test_successful_tax_calculation
test_successful_authorization_and_failed_capture
test_successful_3ds_validate_authorize_request
test_successful_3ds_validate_purchase_request

Local:
4731 tests, 73512 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
699 files inspected, no offenses detected
…e call (activemerchant#3983)

* Add 'unmaskExpirationDate' and 'includeIssuerInfo' to customer profile call

Currently the 'unmaskExpirationDate' option only exists when getting a
customer payment profile. If you get a customer profile, which in turn
includes connected customer payment profiles, this option is not
available.

That would mean in cases where you may be trying to get a default card,
or just a list of cards, you need to make 2..n calls in order to get the
expiration date.

Additionally, the Auth.net CIM api allows for getting the issuer info:

- The Issuer Identification Number (IIN)
- Also sometimes known as the Bank Identification Number (BIN)
- Not all issuers are banks

This adds the issuer info option as well to both the customer profile call
and the customer payment profile call.
CE-798

Local:
4719 tests, 73458 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
6 tests, 28 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
699 files inspected, no offenses detected
Allows ssl_vendor_id to be passed via gateway credentials as well as
options hash.

CE-1660

Remote:
35 tests, 165 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Local:
4732 tests, 73513 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Rubocop:
699 files inspected, no offenses detected
* Bump braintree gem version

* Changes to support braintree 3.0.x
There are two changes required to support braintree 3.0.x

1. lib/active_merchant/billing/gateways/braintree_blue.rb is hardcoded
   to support specific braintree versions. I have updated this to
support versions 3.0.x

2. The android_pay_card parameter has been renamed to google_pay_card. I
   have modified Billing::Gateways::BraintreeBlue#add_payment_method to
hand in google_pay_card, instead of android_pay_card.

* updated tests to use google_pay_card

* Update changelog
Lift restriction on the Braintree gem version to allow for versions
older than 3.* to work with AM. A part of this is to dynamically
determine the key name for pay card (`google_pay_card` for versions > 3
and `android_pay_card` for older versions).

CE-1579

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

Remote: 84 tests, 444 assertions, 2 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
97.619% passed
Verify call was not passing the currency code to the Payment Express aka Windcave gateway. It appears it was not passing an amount originally, which is needed in order to verify with a currency code.

Local:
4733 tests, 73517 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

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

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

rubocop fixes
When adding the AVSName element, if there is no name on the payment
method itself, look in the billing address hash for a name instead.

Remote:
68 tests, 316 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
120 tests, 701 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Unit:
5 tests, 15 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
7 tests, 21 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Metadata information added to request payment, capture, refund, and void. Found here in [Checkout's documentation](https://api-reference.checkout.com/#operation/requestAPaymentOrPayout)

CE-1043

Local:
4735 tests, 73541 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Unit
34 tests, 169 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote
38 tests, 99 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Add support to pass `networkTxReference`, from initial auth
transactions, to subsequent MIT requests. We also extract the
`networkTxReference` from the gateway response and add it to the
`network_transaction_id` field in the Response object.

CE-1603

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

Remote: 99 tests, 378 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
- Support the following standard AM methods: authorize, capture, purchase, void, refund, store and verify
- Authorize and purchase methods support receiving PAN or vaulted customer ID
- Support additional general methods: redact
- [PayTrace API documentation](https://developers.paytrace.com/support/home)

CE-1601

Local:
4752 tests, 73583 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Unit:
16 tests, 47 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Remote:
21 tests, 55 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Hardcoded amount of $1 for verify calls per convention.

Local
4757 tests, 73618 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

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

Remote:
17 tests, 79 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
CE-1549

Unit:
7 tests, 22 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
11 tests, 36 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Closes activemerchant#3974

bundle exec rake test:local

4773 tests, 73667 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Running RuboCop...

705 files inspected, no offenses detected

Loaded suite test/unit/gateways/pay_arc_test

14 tests, 42 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Loaded suite test/remote/gateways/remote_pay_arc_test

17 tests, 43 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

---------
Added live API URL

updated the home page url

Updated comments
Removed duplicate currency description in the comments.

Corrected the successful_purchase_response method.

Added some value to last name

Removed money parameter in token method

Changed the implementation of Verify mehtod to re-use token generation, which itself verifies the card details

Removed money from token method

Moved Customer name in to add_creditcard method.

Moved Customer name in to add_creditcard method and removed customer_data method

Converted options keys to symbols when we are using it.

Fixed the RegEx bug in scrubbing test case.

Fixed the bug in params in token method..
NMI is now using `cardholder_auth` to determine the `eci` value at the gateway level.

Local:
4757 tests, 73618 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Unit:
46 tests, 352 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

Remote:
42 tests, 156 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.