Adyen / adyen-salesforce-commerce-cloud

Salesforce Commerce Cloud (formerly Demandware)
MIT License
90 stars 75 forks source link

Bancontact support #186

Closed gmoulin closed 4 years ago

gmoulin commented 5 years ago

Hello,

I am trying to implement the newest SFCC cartridge for Adyen but I am getting an unexpected behavior when trying to make a payment with Bancontact (bcmc).

Instead of being redirected to the HPP page (RedirectShopper eventCode case) I am getting an error "Invalid card number". For reference, no card number is being transmitted in the request as nothing in the cartridge provides a card form and a logic to transmit it.

It also does not match what is happening in the live environment where the customer is redirected to https://live.adyen.com/hpp/skipDetails.shtml with the bancontact form. (in production we are using a 2 years old Adyen cartridge)

When using the SoFort method in the test environment, I am redirected as expected. So it does not seems to be a cartridge problem.

In conclusion, I am not sure what is missing in the request or the logic.

(technical logs at the bottom)

I asked the Adyen support (#887692) and they replied:

The latest version of the SFCC plug-in (with the 3DS2 functionality) uses our checkout solution, and not the Hosted Payment Page solution anymore. So it is indeed correct that the flow for certain payment methods is different compared to the live-environment.

For the BCMC transaction it looks like we are not receiving the encrypted card details in the payment request, so it looks like the encryptedCard details are not correctly passed on in a request to Adyen. Could you please verify if you are seeing anything unusual happening with the encrypted details in SFCC before these are sent to Adyen?

Could you please share some light on this mess?

Regards, Guillaume


Request: {"merchantAccount":"VBQ-EU","reference":"SB4_00003201","browserInfo":{"acceptHeader":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3gzip, deflate, br","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"},"applicationInfo":{"adyenPaymentSource":{"name":"adyen-salesforce-commerce-cloud","version":"19.1.0"},"externalPlatform":{"name":"SalesforceCommerceCloud","version":"SiteGenesis"}},"returnUrl":"https://www-sb4.vilebrequin.com/on/demandware.store/Sites-VBQ-EU-Site/en_GB/Adyen-ShowConfirmation","amount":{"currency":"EUR","value":9500},"countryCode":"BE","deliveryAddress":{"city":"Bruxelles","country":"BE","houseNumberOrName":"","postalCode":"1000","stateOrProvince":"","street":"Rue de la Vierge Noire 16-24"},"billingAddress":{"city":"Bruxelles","country":"BE","houseNumberOrName":"","postalCode":"1000","stateOrProvince":"","street":"Rue de la Vierge Noire 16-24"},"paymentMethod":{"type":"bcmc"},"telephoneNumber":"+3225149868","shopperEmail":"gmoulin.test@yopmail.com","shopperName":{"firstName":"Gui","gender":"UNKNOWN","infix":"","lastName":"Mou"},"shopperReference":"00015003","shopperIP":"194.158.19.228","shopperLocale":"en_GB"}

Response: {"status":422,"errorCode":"101","message":"Invalid card number","errorType":"validation"}

full SFCC log: [2019-07-29 06:31:58.420 GMT] INFO PipelineCallServlet|7674974|Sites-VBQ-EU-Site|COShipping-SingleShipping|PipelineCall|rO3-CxXgTg custom.service.AdyenOriginKeys.COMM [] Request: {"originDomains":["https://www-sb4.vilebrequin.com"]} [2019-07-29 06:31:58.420 GMT] INFO PipelineCallServlet|7674974|Sites-VBQ-EU-Site|COShipping-SingleShipping|PipelineCall|rO3-CxXgTg custom.service.AdyenOriginKeys.COMM [] Response: {"originKeys":{"https:\/\/www-sb4.vilebrequin.com":"pub.v2.7814701236820044.aHR0cHM6Ly93d3ctc2I0LnZpbGVicmVxdWluLmNvbQ.wpOg4nYBp-Pp0vTJSdHgzIS5xNyHVrnL5_QZS-KetqE"}} [2019-07-29 06:31:58.430 GMT] INFO PipelineCallServlet|7674974|Sites-VBQ-EU-Site|COShipping-SingleShipping|PipelineCall|rO3-CxXgTg custom.service.AdyenOriginKeys.HEAD [] service=AdyenOriginKeys status=OK [2019-07-29 06:32:04.269 GMT] DEBUG PipelineCallServlet|2867150|Sites-VBQ-EU-Site|COBilling-UpdateHppMethods|PipelineCall|rO3-CxXgTg custom.service.AdyenCheckoutPaymentMethods.LOG [] Created local HTTP service AdyenCheckoutPaymentMethods from int_adyen_overlay [2019-07-29 06:32:04.355 GMT] INFO PipelineCallServlet|2867150|Sites-VBQ-EU-Site|COBilling-UpdateHppMethods|PipelineCall|rO3-CxXgTg custom.service.AdyenCheckoutPaymentMethods.COMM [] Webservice Communication: AdyenCheckoutPaymentMethods (POST https://checkout-test.adyen.com/v41/paymentMethods), 67 ms [2019-07-29 06:32:04.356 GMT] INFO PipelineCallServlet|2867150|Sites-VBQ-EU-Site|COBilling-UpdateHppMethods|PipelineCall|rO3-CxXgTg custom.service.AdyenCheckoutPaymentMethods.COMM [] Request: {"merchantAccount":"VBQ-EU","amount":{"currency":"EUR","value":9500},"countryCode":"BE"} [2019-07-29 06:32:04.356 GMT] INFO PipelineCallServlet|2867150|Sites-VBQ-EU-Site|COBilling-UpdateHppMethods|PipelineCall|rO3-CxXgTg custom.service.AdyenCheckoutPaymentMethods.COMM [] Response: {"groups":[{"name":"Credit Card","types":["bcmc","mc","visa","maestro","amex","diners","discover"]}],"paymentMethods":[{"details":[{"key":"number","type":"text"},{"key":"expiryMonth","type":"text"},{"key":"expiryYear","type":"text"},{"key":"holderName","optional":true,"type":"text"}],"name":"Bancontact card","supportsRecurring":false,"type":"bcmc"},{"details":[{"key":"number","type":"text"},{"key":"expiryMonth","type":"text"},{"key":"expiryYear","type":"text"},{"key":"cvc","type":"text"},{"key":"holderName","optional":true,"type":"text"}],"name":"Credit Card","type":"scheme"},{"name":"Online bank transfer.","supportsRecurring":true,"type":"directEbanking"},{"name":"SEPA Bank Transfer","supportsRecurring":true,"type":"bankTransfer_IBAN"}]} [2019-07-29 06:32:04.366 GMT] INFO PipelineCallServlet|2867150|Sites-VBQ-EU-Site|COBilling-UpdateHppMethods|PipelineCall|rO3-CxXgTg custom.service.AdyenCheckoutPaymentMethods.HEAD [] service=AdyenCheckoutPaymentMethods status=OK [2019-07-29 06:32:39.317 GMT] DEBUG PipelineCallServlet|31819376|Sites-VBQ-EU-Site|COBilling-Billing|PipelineCall|rO3-CxXgTg custom.service.AdyenPayment.LOG [] Created local HTTP service AdyenPayment from int_adyen_overlay [2019-07-29 06:32:39.609 GMT] INFO PipelineCallServlet|31819376|Sites-VBQ-EU-Site|COBilling-Billing|PipelineCall|rO3-CxXgTg custom.service.AdyenPayment.COMM [] Webservice Communication: AdyenPayment (POST https://checkout-test.adyen.com/checkout/v41/payments), 282 ms [2019-07-29 06:32:39.609 GMT] INFO PipelineCallServlet|31819376|Sites-VBQ-EU-Site|COBilling-Billing|PipelineCall|rO3-CxXgTg custom.service.AdyenPayment.COMM [] Request: {"merchantAccount":"VBQ-EU","reference":"SB4_00003201","browserInfo":{"acceptHeader":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3gzip, deflate, br","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"},"applicationInfo":{"adyenPaymentSource":{"name":"adyen-salesforce-commerce-cloud","version":"19.1.0"},"externalPlatform":{"name":"SalesforceCommerceCloud","version":"SiteGenesis"}},"returnUrl":"https://www-sb4.vilebrequin.com/on/demandware.store/Sites-VBQ-EU-Site/en_GB/Adyen-ShowConfirmation","amount":{"currency":"EUR","value":9500},"countryCode":"BE","deliveryAddress":{"city":"Bruxelles","country":"BE","houseNumberOrName":"","postalCode":"1000","stateOrProvince":"","street":"Rue de la Vierge Noire 16-24"},"billingAddress":{"city":"Bruxelles","country":"BE","houseNumberOrName":"","postalCode":"1000","stateOrProvince":"","street":"Rue de la Vierge Noire 16-24"},"paymentMethod":{"type":"bcmc"},"telephoneNumber":"+3225149868","shopperEmail":"gmoulin.test@yopmail.com","shopperName":{"firstName":"Gui","gender":"UNKNOWN","infix":"","lastName":"Mou"},"shopperReference":"00015003","shopperIP":"194.158.19.228","shopperLocale":"en_GB"} [2019-07-29 06:32:39.609 GMT] INFO PipelineCallServlet|31819376|Sites-VBQ-EU-Site|COBilling-Billing|PipelineCall|rO3-CxXgTg custom.service.AdyenPayment.COMM [] Response: {"status":422,"errorCode":"101","message":"Invalid card number","errorType":"validation"} [2019-07-29 06:32:39.619 GMT] ERROR PipelineCallServlet|31819376|Sites-VBQ-EU-Site|COBilling-Billing|PipelineCall|rO3-CxXgTg custom.service.AdyenPayment.HEAD [] service=AdyenPayment status=ERROR errorCode=422 errorMessage={"status":422,"errorCode":"101","message":"Invalid card number","errorType":"validation"}

maassenbas commented 5 years ago

Hi @gmoulin ,

I checked and was able to reproduce the issue. Bancontact should not be shown in the payments list, but rather be processed through the credit card component. I will create an internal ticket that this will be hidden in the payment list.

Could you test a BCMC transaction through the credit card component and see if this works for you?

Kind regards, Bas Maassen Adyen