THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Probleme avec Paypal 2.5

(15-02-2023 19:05:10)


Bonjour,
je suis en train de tester paypal,
au moment de payer je reçois :

Payment->create() in local/modules/PayPal/Service/PayPalPaymentService.php (line 273)

                    //$refreshToken = FuturePayment::getRefreshToken($this->getAuthorizationCode(), self::getApiContext());
                    $payment->updateAccessToken($refreshToken, self::getApiContext());
                    $payment->create(self::getApiContext(), $clientMetadataId);
                } else {
                    $payment->create(self::getApiContext());
                }
                return $payment;
            }  catch (PayPalConnectionException $e) {

Voila la stack trace

TypeError:
sizeof(): Argument #1 ($value) must be of type Countable|array, string given

  at vendor/cqfdev/paypal-rest-api-sdk-php/lib/PayPal/Common/PayPalModel.php:179
  at sizeof()
     (vendor/cqfdev/paypal-rest-api-sdk-php/lib/PayPal/Common/PayPalModel.php:179)
  at PayPal\Common\PayPalModel->_convertToArray()
     (vendor/cqfdev/paypal-rest-api-sdk-php/lib/PayPal/Common/PayPalModel.php:281)
  at PayPal\Common\PayPalModel->toArray()
     (vendor/cqfdev/paypal-rest-api-sdk-php/lib/PayPal/Common/PayPalModel.php:296)
  at PayPal\Common\PayPalModel->toJSON()
     (vendor/cqfdev/paypal-rest-api-sdk-php/lib/PayPal/Api/Payment.php:571)
  at PayPal\Api\Payment->create()
     (local/modules/PayPal/Service/PayPalPaymentService.php:273)
  at PayPal\Service\PayPalPaymentService->generatePayment()
     (local/modules/PayPal/Service/PayPalPaymentService.php:92)
  at PayPal\Service\PayPalPaymentService->makePayment()
     (local/modules/PayPal/PayPal.php:176)
  at PayPal\PayPal->pay()
     (vendor/thelia/core/lib/Thelia/Action/Module.php:401)
  at Thelia\Action\Module->pay()
     (vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115)
  at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke()
     (vendor/symfony/event-dispatcher/EventDispatcher.php:206)
  at Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
     (vendor/symfony/event-dispatcher/EventDispatcher.php:56)
  at Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
     (vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:127)
  at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch()
     (vendor/thelia/core/lib/Thelia/Action/Order.php:419)
  at Thelia\Action\Order->create()
     (vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115)
  at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke()
     (vendor/symfony/event-dispatcher/EventDispatcher.php:206)
  at Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
     (vendor/symfony/event-dispatcher/EventDispatcher.php:56)
  at Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
     (vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:127)
  at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch()
     (local/modules/Front/Controller/OrderController.php:325)
  at Front\Controller\OrderController->pay()
     (vendor/symfony/http-kernel/HttpKernel.php:163)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
     (vendor/symfony/http-kernel/HttpKernel.php:74)
  at Symfony\Component\HttpKernel\HttpKernel->handle()
     (vendor/thelia/core/lib/Thelia/Core/TheliaHttpKernel.php:72)
  at Thelia\Core\TheliaHttpKernel->handle()
     (vendor/symfony/http-kernel/Kernel.php:184)
  at Symfony\Component\HttpKernel\Kernel->handle()
     (vendor/thelia/core/lib/Thelia/Core/Thelia.php:438)
  at Thelia\Core\Thelia->handle()
     (web/index_dev.php:43)                

Offline

#2 Re: Probleme avec Paypal 2.5

(21-02-2023 10:49:21)


C'est possible que je me sois trompé en configurant paypal,
cependant, j'arrive bien à le configurer en bo et il apparait bien dans le fo.

J'ai cherché un peu ce que veut dire le message d'erreur qui apparait au moment de payer,
mes petites recherches me font penser qu'il pourrait y avoir un problème avec le code du module (lié a la version de php), soit avec une extension php, ou avec le sdk.

Précision mes tests ont lieu sur un thelia brut pour le moment.

Offline

#3 Re: Probleme avec Paypal 2.5

(21-02-2023 23:24:07)


C'est un problème avec le fork de l'API PayPal qui est utilisé par le module (https://github.com/roadster31/PayPal-PHP-SDK), qui n'est pas compatible avec PHP 8. Dans le cas présent avec l'utilisation ici de sizeof(), qui est un alias de count() :

count() lance désormais une TypeError pour des types dénombrables invalides passés au paramètre value.

Il faudrait porter ce fork vers PHP 8 pour , car le SDK d'origine (https://github.com/paypal/PayPal-PHP-SDK) est déprécié: https://github.com/paypal/PayPal-PHP-SD … ion-notice

Il existe peut-être d'autres solutions sur le site Developer Paypal https://developer.paypal.com/api/rest/ mais elles n'ont pas été explorées.


OpenStudio Toulouse

Offline

#4 Re: Probleme avec Paypal 2.5

(22-02-2023 13:56:02)


Bon, ça va ça me rassure, j'avais bien l'impression qu'il y avait un problème avec ce SDK.

On s'en doute, j'aimerai bien mais je ne serai malheuresement pas d'une grande aide pour porter le fork, ni pour proposer une autre solution.

C'est dommage mais ma solution va être de me passer de paypal pour le moment.

Offline

#5 Re: Probleme avec Paypal 2.5

(01-03-2023 09:24:36)


Je viens de penser à quelque chose.

Si j'essaie de porter la branche 2.x qui est "paypal-php-sdk free", en 2.5,
est ce que cela a une chanche de fonctionner ou je perds mon temps avec ce genre d'idée ?

Last edited by vz777 (01-03-2023 09:36:57)

Offline

#6 Re: Probleme avec Paypal 2.5

(08-03-2023 18:36:27)


Ça peut marcher, bien sur.


OpenStudio Toulouse

Offline

#7 Re: Probleme avec Paypal 2.5

(27-01-2024 17:15:06)


Il y a des maj sur la branche 'main' mais de mon coté je n'arrive pas toujours pas à faire tourner cette branche.
Cela me suprend car je pense que beaucoup de commerçants utilisent paypal.


Bon et ben voila pour le plus grand bien être de la communauté, et pour le mien,
j'ai taché de rendre compatible la branche 2.x avec thelia > 2.5

Le résultat est ici : https://github.com/vz777/PayPal/tree/2. … patibility
Si ce truc est convenable et que ça plait, cela ne me dérange pas de le pousser vers le repo thelia

D'après mes tests en sandbox cela fonctionne, je n'ai pas encore essayé en prod, car je suis flippé d'avoir fait des bétises.
Si certains veulent bien jeter un oeil !

Last edited by vz777 (27-01-2024 17:16:45)