From ead6858a519505345be35a03c6dba7061474888c Mon Sep 17 00:00:00 2001 From: dinamiko Date: Tue, 21 Sep 2021 11:34:16 +0200 Subject: [PATCH] Log 3DS authentication result --- .../Entity/class-cardauthenticationresult.php | 2 +- .../Factory/class-paymentsourcefactory.php | 4 ++-- modules/ppcp-button/services.php | 3 ++- .../src/Helper/class-threedsecure.php | 21 ++++++++++++++++++- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/modules/ppcp-api-client/src/Entity/class-cardauthenticationresult.php b/modules/ppcp-api-client/src/Entity/class-cardauthenticationresult.php index c537ba936..7eedf7d56 100644 --- a/modules/ppcp-api-client/src/Entity/class-cardauthenticationresult.php +++ b/modules/ppcp-api-client/src/Entity/class-cardauthenticationresult.php @@ -112,7 +112,7 @@ class CardAuthenticationResult { $data['liability_shift'] = $this->liability_shift(); $data['three_d_secure'] = array( 'enrollment_status' => $this->enrollment_status(), - 'authentication_result' => $this->authentication_result(), + 'authentication_status' => $this->authentication_result(), ); return $data; } diff --git a/modules/ppcp-api-client/src/Factory/class-paymentsourcefactory.php b/modules/ppcp-api-client/src/Factory/class-paymentsourcefactory.php index aa19e5e4f..b4efffb0e 100644 --- a/modules/ppcp-api-client/src/Factory/class-paymentsourcefactory.php +++ b/modules/ppcp-api-client/src/Factory/class-paymentsourcefactory.php @@ -37,8 +37,8 @@ class PaymentSourceFactory { (string) $data->card->authentication_result->liability_shift : '', isset( $data->card->authentication_result->three_d_secure->enrollment_status ) ? (string) $data->card->authentication_result->three_d_secure->enrollment_status : '', - isset( $data->card->authentication_result->three_d_secure->authentication_result ) ? - (string) $data->card->authentication_result->three_d_secure->authentication_result : '' + isset( $data->card->authentication_result->three_d_secure->authentication_status ) ? + (string) $data->card->authentication_result->three_d_secure->authentication_status : '' ); } $card = new PaymentSourceCard( diff --git a/modules/ppcp-button/services.php b/modules/ppcp-button/services.php index 9ff036bbf..6a1e1e717 100644 --- a/modules/ppcp-button/services.php +++ b/modules/ppcp-button/services.php @@ -159,7 +159,8 @@ return array( ); }, 'button.helper.three-d-secure' => static function ( $container ): ThreeDSecure { - return new ThreeDSecure(); + $logger = $container->get( 'woocommerce.logger.woocommerce' ); + return new ThreeDSecure( $logger ); }, 'button.helper.messages-apply' => static function ( $container ): MessagesApply { return new MessagesApply(); diff --git a/modules/ppcp-button/src/Helper/class-threedsecure.php b/modules/ppcp-button/src/Helper/class-threedsecure.php index 988ce3ce8..e2d8b9e49 100644 --- a/modules/ppcp-button/src/Helper/class-threedsecure.php +++ b/modules/ppcp-button/src/Helper/class-threedsecure.php @@ -9,6 +9,7 @@ declare(strict_types=1); namespace WooCommerce\PayPalCommerce\Button\Helper; +use Psr\Log\LoggerInterface; use WooCommerce\PayPalCommerce\ApiClient\Entity\CardAuthenticationResult as AuthResult; use WooCommerce\PayPalCommerce\ApiClient\Entity\Order; @@ -17,12 +18,27 @@ use WooCommerce\PayPalCommerce\ApiClient\Entity\Order; */ class ThreeDSecure { - const NO_DECISION = 0; const PROCCEED = 1; const REJECT = 2; const RETRY = 3; + /** + * The logger. + * + * @var LoggerInterface + */ + protected $logger; + + /** + * ThreeDSecure constructor. + * + * @param LoggerInterface $logger The logger. + */ + public function __construct( LoggerInterface $logger ) { + $this->logger = $logger; + } + /** * Determine, how we proceed with a given order. * @@ -42,7 +58,10 @@ class ThreeDSecure { if ( ! $order->payment_source()->card()->authentication_result() ) { return self::NO_DECISION; } + $result = $order->payment_source()->card()->authentication_result(); + $this->logger->info( '3DS authentication result: ' . wc_print_r( $result->to_array(), true ) ); + if ( $result->liability_shift() === AuthResult::LIABILITY_SHIFT_POSSIBLE ) { return self::PROCCEED; }