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

Redsys: Add exemptions #3354

Merged
merged 1 commit into from
Sep 20, 2019
Merged

Conversation

britth
Copy link
Contributor

@britth britth commented Sep 16, 2019

Sets sca_exemption when available for 3ds transactions. Also sets
moto flag when requested.

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

Unit:
36 tests, 111 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

@@ -441,8 +441,15 @@ def build_merchant_data(xml, data, options = {})
xml.DS_MERCHANT_DIRECTPAYMENT 'true'
end

# Set moto flag only if explicitly requested via moto field
# Requires account configuration to be able to use
if options.dig(:moto) && options.dig(:metadata, :manual_entry)
Copy link
Contributor Author

@britth britth Sep 16, 2019

Choose a reason for hiding this comment

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

I added a moto field in addition to the standard metadata[:manual_entry] since requests will fail with the error SIS0488: Merchant has not configured the payment method "MOTO/Manual payment" if you pass this field without your account being configured. Wondering if I should just remove the check for options.dig(:metadata, :manual_entry) in this case?

Copy link
Contributor

Choose a reason for hiding this comment

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

Where exactly is this :metadata, :manual_entry coming from?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

per here, that's what I believe shopify has used for determining moto transactions, and was suggested as the standardized field for marking moto. I don't want to use just that field though, since if the account doesn't support moto but this field is passed in, it'll result in a possibly unintended error (but perhaps that means I should just use the separate field altogether?)

Copy link
Contributor

@curiousepic curiousepic Sep 19, 2019

Choose a reason for hiding this comment

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

I'm a little confused; it doesn't seem like the moto field would help much in ensuring that's the case. Are you picturing it being an extra verification that the account is flagged to support moto? If so, I don't feel like that's necessary. We (Spreedly) could map our own separate flag to the manual_entry flag, if that makes sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

My thought was, even though we're standardizing on the manual_entry flag, since it's already being used by Shopify I don't want to unintentionally request this exemption for someone if their account isn't configured.

So basically trying to prevent a case where you're marking your payment method as manual_entry as you normally would but you're not actually intending to request an exemption, and the transaction fails because your account isn't set up - does that make sense?

Copy link
Contributor

Choose a reason for hiding this comment

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

Ah I see, I didn't quite understand its interaction with the exemption piece. Thanks for the clarification. I don't have a strong opinion about whether to keep the second condition, I think you're right that it should work as intended with only the first.

@britth britth requested a review from a team September 16, 2019 20:16
@britth britth force-pushed the redsys-exemptions branch 2 times, most recently from 63013f3 to 9ea3fce Compare September 19, 2019 15:45
Copy link
Contributor

@curiousepic curiousepic left a comment

Choose a reason for hiding this comment

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

LGTM! 👍

Sets sca_exemption when available for 3ds transactions. Also sets
moto flag when requested.

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

Unit:
36 tests, 111 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
@britth britth merged commit 4b8ddb1 into activemerchant:master Sep 20, 2019
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.

2 participants