From 1bbfb5e9d70188076ff88e4eba50bd22a5706f78 Mon Sep 17 00:00:00 2001 From: Nicolas MELONI Date: Tue, 18 Jun 2024 11:43:43 +0200 Subject: [PATCH] SYL-218 - catch invalid phone number as they are not required --- src/Creator/PayPlugPaymentDataCreator.php | 28 +++++++++++++++-------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/Creator/PayPlugPaymentDataCreator.php b/src/Creator/PayPlugPaymentDataCreator.php index 2973b02b..ae99e267 100644 --- a/src/Creator/PayPlugPaymentDataCreator.php +++ b/src/Creator/PayPlugPaymentDataCreator.php @@ -6,6 +6,7 @@ use DateInterval; use DateTime; +use libphonenumber\NumberParseException; use libphonenumber\PhoneNumberFormat as PhoneNumberFormat; use libphonenumber\PhoneNumberType; use libphonenumber\PhoneNumberUtil as PhoneNumberUtil; @@ -107,22 +108,29 @@ public function create( public function formatNumber(string $phoneNumber, ?string $isoCode): array { - $phoneNumberUtil = PhoneNumberUtil::getInstance(); - $parsed = $phoneNumberUtil->parse($phoneNumber, $isoCode); + try { + $phoneNumberUtil = PhoneNumberUtil::getInstance(); + $parsed = $phoneNumberUtil->parse($phoneNumber, $isoCode); + + if (!$phoneNumberUtil->isValidNumber($parsed)) { + return [ + 'phone' => null, + 'is_mobile' => null, + ]; + } + + $formatted = $phoneNumberUtil->format($parsed, PhoneNumberFormat::E164); - if (!$phoneNumberUtil->isValidNumber($parsed)) { + return [ + 'phone' => $formatted, + 'is_mobile' => PhoneNumberType::MOBILE === $phoneNumberUtil->getNumberType($parsed), + ]; + } catch (NumberParseException) { return [ 'phone' => null, 'is_mobile' => null, ]; } - - $formatted = $phoneNumberUtil->format($parsed, PhoneNumberFormat::E164); - - return [ - 'phone' => $formatted, - 'is_mobile' => PhoneNumberType::MOBILE === $phoneNumberUtil->getNumberType($parsed), - ]; } private function formatTitle(CustomerInterface $customer): ?string