THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


Re-bonjour tout le monde,

Nouveau problème toujours du coté du payement.
Je rencontre un problème que beaucoup ont pu rencontrer je pense. En effet, il m'est impossible de passer une commande via mon site sans avoir l'erreur HTTP ERROR 500 avec tout les modes de payements (Paypal, chèque ...etc...) sur l'url : https://web_domain.fr/shop/web/order/invoice

J'ai pu lire que ça pouvait venir d'un problème de droit d'accès sur serveur alors je décide de passer en 755 (récursif) pour le dossier des modules de payements, rien ne change.
Puis ensuite tout le dossier "core", pareil, toujours le problème d'error 500.

J'avoue ne plus savoir quoi faire ...

Last edited by Blank_ (29-03-2017 11:43:07)

Offline


Passe en mode développement ( http://forum.thelia.net/viewtopic.php?id=11787 ), et dis nous quelle est l'erreur exacte qui est affichée.


OpenStudio Toulouse

Offline


Chose faite, et donc voici l'erreur affichée :

"ClassNotFoundException in PayPalBaseService.php line 82:
Attempted to load class "OAuthTokenCredential" from namespace "PayPal\Auth".
Did you forget a "use" statement for another namespace?"

Voici la ligne 82 en question :

 $this->authTokenCredential = new OAuthTokenCredential(self::getLogin(), self::getPassword()); 

Effectivement, en supprimant totalement le module Paypal, le payement par chèque fonctionne  ... Mais j'ai absolument besoin du module Paypal... hmm

Offline


Le seul moyen d'installer PayPal est désormais de passer par composer: https://github.com/thelia-modules/Paypa … stallation

Sinon, il te manquera des dépendances.

J'ai ouvert une issue à ce sujet : https://github.com/thelia-modules/Paypal/issues/33


OpenStudio Toulouse

Offline


EDIT : Espérons qu'une mise à jour soit rapidement faite pour ce module

Last edited by Blank_ (14-03-2017 19:21:26)

Offline


Petit up pour mettre à jour ma situation.

Du coup, je suis passé par Composer en local sur WAMP, où j'ai pu installer le module Paypal comme indiqué sur le manuel d'installation. Tout s'installe sans problème.

Je passe alors les fichiers "composer.json" et "composer.lock" sur mon serveur web ainsi que le dossier du module Paypal dans le dossier "modules". Il est bien possible de paramétrer Paypal via le backend mais j'ai toujours cette erreur 500 au moment du payement.

Une idée d'où pourrait venir le problème ?

Offline


"require": {
    "thelia/installer": "~1.1",
    "paypal/rest-api-sdk-php": "1.7.1",
    "wazaari/monolog-mysql": "1.0.3"
},

Regarde dans ta version local, dans le dossier "core\vendor\" tu devrais y trouver des dossiers "paypal" et "wazaari".
C'est ceux-là que tu dois recopier.

Last edited by informatiqueprog (14-03-2017 20:51:17)

Offline


Effectivement, j'ai bien ces dossiers en local plus 2 autres dossiers "webmozart" et "monolog".
Dans le doute j'ai copié les 4 dossiers sur mon serveur ainsi que les dossiers de module Paypal et HookTest (qui s'est créé en même temps que celui de Paypal dans le dossier "modules").
Ça ne fonctionne toujours pas.

Je précise que tout fonctionne en local désormais.
J'ai essayé après installation sur serveur de copier tout le dossier du Thelia fonctionnel (avec paypal) mais j'obtiens une erreur 500 à la page d'accueil du site.

Je serais obligé d'effectuer la manipulation sous Composer sur le serveur donc ?

Offline


Pas eu le temps de mettre à jour ma situation.

Du coup j'ai réussi à résoudre mon petit problème avec Paypal. Ça pourrait servir à d'autres futurs utilisateurs qui n'auront pas accès à un invite de commande sur serveur.

/!\ IL FAUT INSTALLER LE MODULE PAYPAL EN LOCAL AVANT INSTALLATION DE THELIA /!\

- Installer Composer dans le dossier d'installation de Thelia.
- Se rendre dans le dossier d’installation en invite de commande (pour les utilisateurs de Windows il y a des tutos sur le net pour apprendre à utiliser les bases de cmd).
- Lancez Composer une fois dans le dossier.
- Tapez "composer require thelia/paypal-module:~3.0.0" pour lancer l'installation du module.

Une fois l'installation terminée, fermez l'invite de commande et copiez le dossier d'installation de Thelia avec le module Paypal installé sur votre serveur pour installer Thelia avec Paypal fonctionnel et ensuite installer votre template  ...etc...

En attendant que les devs fassent quelque chose pour rendre l'installation plus ouverte à tous.

Last edited by Blank_ (29-03-2017 11:59:31)

Offline


Bonjour,
Avant de faire une boulette je pose la question. J'ai des soucis sur un Paypal qui ressemblent un peu à ce sujet, donc je me dis que je vais ré-installer en utilisant Composer puisque cela semble être la solution.

Sur un installation Thelia qui a été faite à la mano, (sans composer donc), je souhaite ajouter Paypal via composer:

- possible / pas possible ? je dois ré-installer tout Thelia ???
- pour installer composer, j'ai trouvé la commande "curl -sS https://getcomposer.org/installer | php" ... à priori je dois faire ça ou ? à la racine d'un hébergement ? ou dans le dossier DocumentRoot (public_html dans mon cas) ? ou dans le dossier des modules ? ou dans le dossier core->vendor->composer  qui existe ?
- pour désinstaller composer, je détruis le composer.phar ?
- ce composer, c'est sûr ? je veux dire que je suis moyennement chaud pour accumuler des installations diverses dans un cms qui ne seront pas mises à jour avec le cms ... ce genre de truc traine et 1 an plus tard on se retrouve hacké sans avoir compris d'ou ça venait ... boom le composer qu'on avait installé dans l'urgence 1 an avant a un trou de sécurité :-(

Merci si une bonne âme traine par là en ce beau (sud-est) week-end de Pâques ...
Pierre

Offline


Bonjour,
Question 1 : Pour l'installation de PayPal via Composer j'ai suivi toutes les étapes et à la fin j'ai obtenu ces messages : C'est grave docteur ?
----------------------------------------
Package ensepar/tcpdf is abandoned, you should avoid using it. Use tecnickcom/tcpdf instead.
Package ensepar/html2pdf is abandoned, you should avoid using it. Use spipu/html2pdf instead.
Package symfony/icu is abandoned, you should avoid using it. Use symfony/intl instead.
Writing lock file
Generating autoload files
---------------------------------------------------------

Question 2 : Lorsque je réalise un règlement PayPal en mode Sandox il y a échec et le client est renvoyé vers la page commande ! Pour voir si tout allait bien j'ai fait un index_dev et j'ai obtenu ce message :
-----------------------------------------
    in ConnectionWrapper.php line 228
    at ConnectionWrapper->commit() in PayPalResponseController.php line 502
    at PayPalResponseController->executeExpressCheckoutAction(false) in PayPalResponseController.php line 200
    at PayPalResponseController->invoiceExpressCheckoutOkAction('40')
    at call_user_func_array(array(object(PayPalResponseController), 'invoiceExpressCheckoutOkAction'), array('40')) in HttpKernel.php line 139
    at HttpKernel->handleRaw(object(Request), '1') in HttpKernel.php line 62
    at HttpKernel->handle(object(Request), '1', true) in TheliaHttpKernel.php line 76
    at TheliaHttpKernel->handle(object(Request), '1', true) in ParamInitMiddleware.php line 87
    at ParamInitMiddleware->handle(object(Request), '1', true) in SessionMiddleware.php line 80
    at SessionMiddleware->handle(object(Request), '1', true) in StackedHttpKernel.php line 23
    at StackedHttpKernel->handle(object(Request), '1', true) in Kernel.php line 185
    at Kernel->handle(object(Request)) in index_dev.php line 37
--------------------------------------------
J'y suis presque. Là, j'ai vraiment besoin de vous pour aller au bout du bout d'un rêve convoité depuis des années smile smile smile
Ma boutique c'est http://boutik.joncour.fr (pour l'instant il n'y a qu'un seul produit, une photothèque suivra bientôt).
D'avance merci
FJ

Last edited by laphototheque (09-03-2018 15:10:31)

Offline


j'ai fait un index_dev et j'ai obtenu ce message :

Il manque l'essentiel: le texte de l'erreur.


OpenStudio Toulouse

Offline


Bonjour,
Moi et le cache (enfin je suppose) ça fait 2. Ce matin plus d'erreur ! Remarque, voilà une journée qui démarre bien smile smile smile
Je démarre un autre ticket, il me reste un échec à gérer sans rapport avec ce sujet !
Merci pour tout
FJ

Offline


Bonjour,
J'exhume ce fil ou j'avais posé une question sans réponse l'année dernière justement à cette époque, je la re-cite ci-dessous:

Sur une installation Thelia qui a été faite à la mano, (sans composer donc), je souhaite ajouter Paypal via composer:
- possible / pas possible ? je dois ré-installer tout Thelia ???
- pour installer composer, j'ai trouvé la commande "curl -sS https://getcomposer.org/installer | php" ... à priori je dois faire ça ou ? à la racine d'un hébergement ? ou dans le dossier DocumentRoot (public_html dans mon cas) ? ou dans le dossier des modules ? ou dans le dossier core->vendor->composer  qui existe ?
- pour désinstaller composer, je détruis le composer.phar ?

J'avais à l'époque me semble-t-il tenté le coup, mais j'étais sur un serveur à moi ... J'ai le cas aujourd'hui ou je veux mettre à jour un module Paypal dans un site sur mutu OVH pro (donc j'ai un accès SSH) mais en fait je ne sais toujours pas vraiment si je peux installer Composer dans un site en prod, installé sans Composer, avec un module Paypal v2 en service ... Je peux désactiver le Paypal V2, mettre en maintenance, etc ... mais est-ce faisable ?

Je pourrai aussi étendre ma question à "mettre à jour un Thelia installé à la main avec Composer" ... possible ?
Si une bonne âme a un avis :-)
Pierre.

Offline


je pense que le plus simple est de prendre la version 2

après roadster a fait une issue pour la version 3, mais meme si il les connaît chez open studio, apparemment ils ont pas envie ----> ils attendent peut être que tu la fasse pour eux ;-)

Offline


Bonjour,

En fait je replonge dans cette histoire de Paypal à cause de ce message que reçoivent les clients:

• Mise à niveau TLS 1.2 et HTTP/1.1 – À effectuer d'ici à juin 2018
- Mise à jour nécessaire : No

• HTTPS pour les envois de vérification IPN – À effectuer d'ici à juin 2018
- Mise à jour nécessaire : No

• Abandon de la méthode GET pour les API SOAP/NVP classiques – À effectuer d'ici à juin 2018
- Mise à jour nécessaire : Yes

• Mise à niveau des identifiants des certificats d'API des marchands – À effectuer d'ici à juin 2018
• La mise à jour peut être effectuée plus tôt selon la date d'expiration de votre certificat. 
- Mise à jour nécessaire : No

Donc apparemment je suis pas bon sur l'histoire de la méthode GET (et j'imagine que je ne suis pas le seul), je suis sur Paypal v2.0 (d'après la page modules) ... donc j'imaginais qu'il fallait que je passe en v3 ... après si la dernière v2 qui semble être la v2.1.1 (d'après ce que je vois sur Git) le fait, ça me va ... mais est-ce bien le cas ?

Pierre

Offline


Une nouvelle version de la version 2 du module PayPal qui devrait normalement être compatible avec les exigences de Paypal pour juin 2018 est disponible :

https://github.com/thelia-modules/Paypa … /tag/2.1.3


OpenStudio Toulouse

Offline


Purée ça c'est une good news comme on dit :-) Je vais tester ça incessamment sous peu et je reviens si pbm !

PS: pour mon éducation, une question: serait-il possible d'utiliser composer pour installer Paypalv3 sur un site qui n'a pas été installé avec composer ?

Pierre.

Offline


Oui, il te suffit d'installer le module PayPal v3 avec composer.


OpenStudio Toulouse

Offline


Bon premiers tests, problèmes:

- j'ai d'abord essayé la méthode sauvage en remplaçant le dossier du module complètement, page blanche .. (front et back)
- je suis revenu en arrière avec les sauvegardes que j'avais faites et j'ai installé en utilisant la "mise à jour" des modules et là ça s'est installé correctement apparemment
- j'ai réussi à atteindre l'écran de configuration qui était vierge (donc la mise à jour ne conserve pas les données du Payal précédent, il vaut mieux en être averti)
- j'ai configuré avec les données que j'avais ,, sauvegardé et là au retour j'avais un écran normal avec juste le titre "Configuration Paypal " et plus aucun champ en dessous ... c'est vide en-dessous du titre ...
- j'ai testé alors un achat et quand je veux faire un paiement Paypal j'ai un écran ooops avec le message suivant: "The username option must be set. " ... alors que c'est ce que j'ai fait au-dessus mais j'imagine que le retour sur cet écran vide est le symptôme du non enregistrement de ce que j'avais saisi donc cette erreur est à moitié surprenante ..;
Je suis dispo pour d'autres tests, réponses ... c'est un site en prod (mais ça n'est pas le seul moyen de paiement donc je peux faire patienter un peu le client) ...
Pierre.

Offline


J'ai réussi à reproduire le souci après avoir vidé le cache, voici l'erreur quand j'essaye d'entrer les paramètres dans le module Paypal dans le back-office:

FatalThrowableError in ParserContext.php line 224: Fatal error: Class 'Thelia\Core\Template\FormError' not found

    in ParserContext.php line 224
    at ParserContext->getForm('paypal.form.configure', 'Paypal\Form\ConfigurationForm', 'form') in Form.php line 127
    at Form->generateForm(array('name' => 'paypal.form.configure'), null, object(Smarty_Internal_Template), true) in 57ad34b34c792711b3dbc6746211846a88b1440c.file.module-configuration.html.php line 56
    at content_5ae9ea63b4bda7_46423818(object(Smarty_Internal_Template)) in smarty_internal_templatebase.php line 188
    at Smarty_Internal_TemplateBase->fetch('file:/home/lemonimphz/www/local/modules/Paypal/templates/backOffice/default/paypal/module-configuration.html') in SmartyParser.php line 381
    at SmartyParser->internalRenderer('file', '/home/lemonimphz/www/local/modules/Paypal/templates/backOffice/default/paypal/module-configuration.html', array('trace_content' => 'Le fichier de log est vide.', 'locale' => 'fr_FR', 'lang_code' => 'fr', 'lang_id' => '1', 'current_url' => 'https://www.lemonimport.com/index_dev.php/admin/module/Paypal', 'app' => object(stdClass)), true) in SmartyParser.php line 424
    at SmartyParser->render('/home/lemonimphz/www/local/modules/Paypal/templates/backOffice/default/paypal/module-configuration.html', array('trace_content' => 'Le fichier de log est vide.', 'locale' => 'fr_FR', 'lang_code' => 'fr', 'lang_id' => '1', 'current_url' => 'https://www.lemonimport.com/index_dev.php/admin/module/Paypal', 'app' => object(stdClass))) in BaseHook.php line 140
    at BaseHook->render('paypal/module-configuration.html', array('trace_content' => 'Le fichier de log est vide.')) in HookManager.php line 78
    at HookManager->onModuleConfigure(object(HookRenderEvent), 'hook.2.module.configuration.26', object(ContainerAwareEventDispatcher))
    at call_user_func(array(object(HookManager), 'onModuleConfigure'), object(HookRenderEvent), 'hook.2.module.configuration.26', object(ContainerAwareEventDispatcher)) in EventDispatcher.php line 181
    at EventDispatcher->doDispatch(array(array(object(HookManager), 'onModuleConfigure')), 'hook.2.module.configuration.26', object(HookRenderEvent)) in EventDispatcher.php line 46
    at EventDispatcher->dispatch('hook.2.module.configuration.26', object(HookRenderEvent)) in Hook.php line 106
    at Hook->processHookFunction(array('name' => 'module.configuration', 'location' => 'module_configuration', 'modulecode' => 'Paypal'), object(Smarty_Internal_Template)) in 2ae43b323f7e0f41fb7c3e358ce6767ccf9e09c8.file.module-configure.html.php line 255
    at content_5ae9ea6385eb56_54452872(object(Smarty_Internal_Template)) in smarty_internal_templatebase.php line 188
    at Smarty_Internal_TemplateBase->fetch('file:module-configure.html') in SmartyParser.php line 381
    at SmartyParser->internalRenderer('file', 'module-configure.html', array('module_code' => 'Paypal', 'edit_language_id' => '1', 'edit_language_locale' => 'fr_FR', 'edit_currency_id' => '1', 'locale' => 'fr_FR', 'lang_code' => 'fr', 'lang_id' => '1', 'current_url' => 'https://www.lemonimport.com/index_dev.php/admin/module/Paypal', 'app' => object(stdClass)), true) in SmartyParser.php line 424
    at SmartyParser->render('module-configure.html', array('module_code' => 'Paypal', 'edit_language_id' => '1', 'edit_language_locale' => 'fr_FR', 'edit_currency_id' => '1', 'locale' => 'fr_FR', 'lang_code' => 'fr', 'lang_id' => '1', 'current_url' => 'https://www.lemonimport.com/index_dev.php/admin/module/Paypal', 'app' => object(stdClass))) in BaseAdminController.php line 390
    at BaseAdminController->renderRaw('module-configure.html', array('module_code' => 'Paypal', 'edit_language_id' => '1', 'edit_language_locale' => 'fr_FR', 'edit_currency_id' => '1')) in BaseAdminController.php line 346
    at BaseAdminController->render('module-configure', array('module_code' => 'Paypal')) in ModuleController.php line 238
    at ModuleController->configureAction('Paypal')
    at call_user_func_array(array(object(ModuleController), 'configureAction'), array('Paypal')) in HttpKernel.php line 139
    at HttpKernel->handleRaw(object(Request), '1') in HttpKernel.php line 62
    at HttpKernel->handle(object(Request), '1', true) in TheliaHttpKernel.php line 76
    at TheliaHttpKernel->handle(object(Request), '1', true) in ParamInitMiddleware.php line 87
    at ParamInitMiddleware->handle(object(Request), '1', true) in SessionMiddleware.php line 80
    at SessionMiddleware->handle(object(Request), '1', true) in StackedHttpKernel.php line 23
    at StackedHttpKernel->handle(object(Request), '1', true) in Kernel.php line 185
    at Kernel->handle(object(Request)) in index_dev.php line 37

Si cela peut aider :-)

Pierre

Last edited by pierrot (02-05-2018 17:47:25)

Offline


Oui, il y a un bug dans core/lib/Thelia/Core/Template/ParserContext.php/ParserContext.php, il faut ajouter ceci après "use Symfony\Component\Form\Form;" :

use Symfony\Component\Form\FormError;


OpenStudio Toulouse

Offline


Bonsoir,

Dans "core/lib/Thelia/Core/Template/ParserContext.php/ParserContext.php" (en supposant qu'il y a bien un "ParserContext.php" de trop dans le chemin que tu donnes) j'ai:

use Symfony\Component\HttpFoundation\RequestStack;
use Thelia\Core\Form\TheliaFormFactoryInterface;
use Thelia\Core\Form\TheliaFormValidatorInterface;
use Thelia\Core\HttpFoundation\Session\Session;
use Thelia\Core\Thelia;
use Thelia\Form\BaseForm;
use TheliaSmarty\Template\Exception\SmartyPluginException;

Donc pas de

use Symfony\Component\Form\Form;

Donc pas trop sûr si la correction s'applique à moi (v2.3.4) ou si je suis dans le bon fichier ...

Merci en tous cas de s'intéresser au problème :-)
Pierre

Offline


Oups pardon. Je recommence.

Dans dans core/lib/Thelia/Core/Templatet/ParserContext.php, tu ajoutes après:

use TheliaSmarty\Template\Exception\SmartyPluginException;

les lignes suivantes :

use Symfony\Component\Form\Form;
use Symfony\Component\Form\FormError;

OpenStudio Toulouse

Offline


Bonjour,
Ok ça marche nickel pour un achat en réel, il faut maintenant que je trouve le moyen de vérifier que ça passe tous les tests de Paypal puisque c'était le but, j'attends un retour du client pour avoir un accès au compte Paypal.
Grand merci pour ton intervention qui m'évite d'avoir  réfléchir à Composer dans ce cadre ... néanmoins je l'utilise pour les nouvelles installations de Thelia, pas fou ...
Pierre.

PS: la modif ci-dessus, ça sera intégré dans une future mise à jour ? je dois y faire attention ?

Last edited by pierrot (03-05-2018 10:26:17)