I have received email from Global Payments (Realex) saying that:

Here's what you need to know:

From September 2019, most ecommerce payments will have to undergo Strong Customer Authentication (SCA).
A new authentication protocol is being introduced by the Card Schemes (Mastercard, Visa, etc.) called 3D Secure 2 (3DS v2).
Global Payments will be supporting the 3DS v2 protocol by introducing options that will make it easy for you to comply with the SCA requirement.

What Do I Need to Do?
As you're integrated with our Hosted Payment Page (HPP), there are additional fields that need to be sent in the HPP POST, which will ensure you're compliant with the regulation. When you update your integration to support these additional required fields, we'll seamlessly transition you to 3DS v2, once it's supported, without any further changes being needed.

Please click on the link below to obtain the details of the changes.

3D Secure V2 - HPP

What you'll need to do?
We'd recommend that you forward this communication to your web developer and/or shopping cart provider to ensure that they're aware of these required changes.

We've set a deadline of May 2019 for you to make the HPP changes. This supports our recommendation to complete any changes that are required well in advance of the SCA being introduced. Failure to make the changes may affect your ability to process successful transactions.

Integration type Communication of Changes Target Date for changes to be made
Hosted Payment Page On this email May - 2019
Shoping Carts and Platforms Mar - 2019 Jun - 2019
API; Apr - 2019 Jun - 2019
MOTO No action needed No action needed

Comments

adpo created an issue. See original summary.

EdPhillis’s picture

Yes I need to consider this too. Is anyone going to look at this from the module point of view? My client is thinking of moving away from Realex so if noone is going to do anything to the contrib module then it might be the time to jump ship. would be great if someone could respond to say whether they will be amending the module accordingly.

Tony Sharpe’s picture

Title: Changes Required to Your Hosted Payment Page Integration for Strong Customer Authentication » Changes Required to Your Hosted Payment Page Integration for Strong Customer Authentication PSD2 3DS V2
Tony Sharpe’s picture

Has anyone managed to update the D7 Global Payments module to implement SCA and work with 3DS2?

EdPhillis’s picture

I dont think anyone is working on this for commerce_realex. I think its time to jump ship if you are able.

stella’s picture

Drupal 7 work is underway with changes for 3DS2 with HPP nearly complete and should be released in the coming week. A Drupal 8 update will then follow.

Tony Sharpe’s picture

Excellent, thanks for the update!

  • stella committed f79a0a9 on 7.x-1.x
    Issue #3034651 by stella, developers@globalpay.com: Changes Required to...

stella’s picture

stella’s picture

Status: Active » Needs review

The 7.x-1.x-dev branch is ready for testing. I need to do some more testing here too, but if others can help on their test sites/sandboxes that would really help speed things along.

skorzh’s picture

Thanks for your work @stella,

with HPP redirect method, GlobalPayments sends response to the '/commerce-realex/redirect/complete' url, but obviously GP can't send response to my local environment. Is there a way to test it locally or it always requires '/commerce-realex/redirect/complete' url to be available in internet to receive response and finalize the order?

Do you know if 3DS2 challenge can be tested? They mentioned some test cards for 3D Secure, but I can't reproduce the SCA challenge anyway.

skorzh’s picture

I also noticed a few points according to the code:
1) Why Gateway url is "https://hpp.realexpayments.com/pay”, but documentation says "https://pay.realexpayments.com/payhttps://developer.realexpayments.com/#!/hpp/getting-started

2) “redirect_referring_url” setting isn’t used anywhere

3) Should it also send Phone number, or it should be done in alter hook?

skorzh’s picture

Status: Needs review » Needs work

According to previous realex remote implementation, It looks like it should use $response['order_id'] instead of $response['commerce_order_id'] for $transaction->remote_id in commerce_realex_redirect.inc:1026

skorzh’s picture

Priority: Normal » Major

The functionality stopped working after GlobalPayments enabled 3ds v2 for our account.
Now it throws the following error: "508 Mandatory field missing. HPP_BILLING_CITY not present in request. Please contact the merchant."
The module functionality allows to redirect to the checkout page without all billing/shipping filled.
But it looks like these fields are mandatory now.

stella’s picture

Version: 7.x-1.3 » 7.x-1.x-dev
Status: Needs work » Needs review

with HPP redirect method, GlobalPayments sends response to the '/commerce-realex/redirect/complete' url, but obviously GP can't send response to my local environment. Is there a way to test it locally or it always requires '/commerce-realex/redirect/complete' url to be available in internet to receive response and finalize the order?

No, I don't see a way to avoid this. I would recommend that you have a publicly accessible dev or uat environment that you can use for testing this integration.

1) Why Gateway url is "https://hpp.realexpayments.com/pay”, but documentation says "https://pay.realexpayments.com/payhttps://developer.realexpayments.com/#!/hpp/getting-started

Both are valid.

2) “redirect_referring_url” setting isn’t used anywhere

It's not used anywhere. It's for informational purposes. As per the help text for that field, you will need to send the value in this form field to Global Payments when setting up your live account with them.

3) Should it also send Phone number, or it should be done in alter hook?

The HPP_CUSTOMER_PHONENUMBER_MOBILE field is conditional. If the cart isn't capturing it, then you don't need to send it in. If you are capturing it, then the commerce_realex_redirect_data alter hook is the place to add it.

According to previous realex remote implementation, It looks like it should use $response['order_id'] instead of $response['commerce_order_id'] for $transaction->remote_id in commerce_realex_redirect.inc:1026

Well remote is different from redirect... "commerce_order_id" is set on line 167 of includes/commerce_realex_redirect.inc in the request data, and this is returned in the response. Is there something not working as expected here?

The functionality stopped working after GlobalPayments enabled 3ds v2 for our account.
Now it throws the following error: "508 Mandatory field missing. HPP_BILLING_CITY not present in request. Please contact the merchant."
The module functionality allows to redirect to the checkout page without all billing/shipping filled.
But it looks like these fields are mandatory now.

which version of the module are you using? The HPP_BILLING and HPP_SHIPPING fields are set in the latest dev version of the module - set to a value if available or empty otherwise.