Integration Paypal probleme

Par Steeven Tronet, il y a 10 ans


alut, alors j'ai suivit le tutoriel pour intégrer Paypal a CakePHP 2 (https://www.grafikart.fr/tutoriels/cakephp/abonnement-premium-paypal-293) en le rendant compatible avec CakePHP 3 mais je rencontre un problème. Quand je suis en local tout fonctionne niquel (sauf le ping de paypal pour dire que le paiement a été effectuer mais ca je pence que c'est normal car je suis en local). Par contre quand j'heberge mon projet cher mon hébergeur qui est 1&1 quand je souhaite effectuer le paiement
le 'curl_error()' me renvoir une erreur qui est : 'error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure'

Apres ce tuto date un peu et je me dit qu'il n'est peut etre plus d'actualiter ? J'ai entendu dire que Paypal était passer en SHA-256 et en regardant le fichier cacert.pem que grafikart fait télécharger est en SHA-1. Cependant cela fonctionne quand même en local. Je me demande donc si le probleme vient de l'hebergeur ou pas ?

Edit : Je vient de faire une verification des versions des curl en utilisant la fonction 'curl_version()' et je voit que sur mon serveur Wamp j'ai une de SSL plus récente que sur 1&1 .
OpenSSL/1.0.1g sur Wamp
OpenSSL/0.9.8o sur 1&1

9 réponses

Grafikart, il y a 10 ans

Ok essaie de changer la version SSL pour voir ?

curl_setopt($curl, CURLOPT_SSLVERSION, 4);
Steeven Tronet, il y a 10 ans

Quelle verifier ? le HOST et le PEER ?

Grafikart, il y a 10 ans

Essaie les deux

Steeven Tronet, il y a 10 ans

J'ai esseyer et ca ne fonctionne pas
Voici le code que j'ai pour envoyer le paiement Paypal :

$uid = $this->Auth->user('id'); $custom = "action=subscribe&uid=$uid&duration=1"; $request = [ 'METHOD' => 'BMCreateButton', 'VERSION' => '87', 'USER' => Configure::read('Paypal.USER'), 'PWD' => Configure::read('Paypal.PWD'), 'SIGNATURE' => Configure::read('Paypal.SIGNATURE'), 'BUTTONCODE' => 'HOSTED', 'BUTTONTYPE' => 'BUYNOW', 'BUTTONSUBTYPE' => 'SERVICES', 'L_BUTTONVAR0' => 'business='.Configure::read('Paypal.mail'), 'L_BUTTONVAR1' => 'item_name=Membres bienfaiteurs 1ans', 'L_BUTTONVAR2' => 'amount='.Configure::read('Tarif'), 'L_BUTTONVAR3' => 'currency_code=EUR', 'L_BUTTONVAR4' => 'no_note=1', 'L_BUTTONVAR5' => 'notify_url='.Router::url('/paypal/notify', true), 'L_BUTTONVAR6' => 'return='.Router::url('/paypal/success', true), 'L_BUTTONVAR7' => 'cancel='.Router::url('/paypal/cancel', true), 'L_BUTTONVAR8' => 'custom='.$custom, ]; $request = http_build_query($request); $curlOptions = [ CURLOPT_URL => "https://api-3t.".Configure::read('Paypal.sandbox')."paypal.com/nvp", CURLOPT_VERBOSE => 1, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_CAINFO => ROOT.DS.'vendor/cacert.pem', CURLOPT_RETURNTRANSFER => 1, CURLOPT_POSTFIELDS => $request ]; $ch = curl_init(); curl_setopt_array($ch, $curlOptions); $response = curl_exec($ch); if (curl_errno($ch)) { debug(curl_error($ch)); die(); } else { curl_close($ch); parse_str($response, $responseArray); $this->redirect($responseArray['EMAILLINK']); }

J'ai aussi esseyer de supprimer le CURLOPT_CAINFO vue que le VERYPEER et a false normalement il n'y a plus besoin du certificat SSL mais ca ne fonctionne pas. :(

Grafikart, il y a 10 ans

et ça te sort toujours la meme erreur ?

Steeven Tronet, il y a 10 ans

Ouai toujours la meme erreur

Steeven Tronet, il y a 10 ans

Peut importe la version que je met j'ai toujours la même erreur sauf quand je le met a 2 j'ai une autre erreur : 'Unknown SSL protocol error in connection to api-3t.sandbox.paypal.com:443 '

Steeven Tronet, il y a 10 ans

Jai contacter 1&1 et il m'ont dit que ca devait venir d'un problème a cause de SSLV3 qui est obsolète, n'y a t-il pas un autre endroit ou je pourrait trouver un certificat plus récent ?