Bonjour à tous et à toutes.

J'aurais besoins de votre aide pour mettre à jour mon système de paiement par paypal.

Le sandbox ne fonctionne plus.

Voici le message d'erreur :

Erreur

SSL read: error:00000000:lib(0):func(0):reason(0), errno 104

par contre le paiement en production fonctionne et je pense que c'est par-ce qu'il faut mettre à jour le code mais je n'arrive pas à savoir comment.

Je parle pas anglais lol et je n'arrive pas à trouver sur paypal.

Voici mon code qui est normalement le même que le tuto ET qui fonctionne en mode production.

page paypal.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
$designation= "Commande sur ".TITRESITE."";
include("fonction_api.php"); // On importe la page créée précédemment
$requete = construit_url_paypal(); // Construit les options de base
 
// La fonction urlencode permet d'encoder au format URL les espaces, slash, deux points, etc.)
$requete = $requete."&METHOD=SetExpressCheckout".
            "&CANCELURL=".urlencode("".ROOTPATH."/index.php?page=cancel").
            "&RETURNURL=".urlencode("".ROOTPATH."/index.php?page=return").
            "&AMT=".number_format($tot, 2,'.',' ').
            "&CURRENCYCODE=EUR".
            "&DESC=".urlencode($designation).
            "&EMAIL=".urlencode($_SESSION['email']).
            "&LOCALECODE=FR".
            "&HDRIMG=".urlencode("".ROOTPATH."/images/logo-lunette-lucchini.jpg");
 
// Initialise notre session cURL. On lui donne la requête à exécuter
$ch = curl_init($requete);
 
// Modifie l'option CURLOPT_SSL_VERIFYPEER afin d'ignorer la vérification du certificat SSL. Si cette option est à 1, une erreur affichera que la vérification du certificat SSL a échoué, et rien ne sera retourné.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// Retourne directement le transfert sous forme de chaîne de la valeur retournée par curl_exec() au lieu de l'afficher directement.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
// On lance l'exécution de la requête URL et on récupère le résultat dans une variable
$resultat_paypal = curl_exec($ch);
 
// S'il y a une erreur, on affiche "Erreur", suivi du détail de l'erreur.
if (!$resultat_paypal)
    {echo "<p>Erreur</p><p>".curl_error($ch)."</p>";}
 
else // S'il s'est exécuté correctement, on effectue les traitements...
{
    $liste_param_paypal = recup_param_paypal($resultat_paypal); // Lance notre fonction qui dispatche le résultat obtenu en un array
 
    // Si la requête a été traitée avec succès
    if ($liste_param_paypal['ACK'] == 'Success')
    {
        // Redirige le visiteur sur le site de PayPal
        header("Location: ".$serveur_paypal.$liste_param_paypal['TOKEN']."&useraction=commit");
        exit();
    }
    else // En cas d'échec, affiche la première erreur trouvée.
    {echo "<p>Erreur de communication avec le serveur PayPal.<br />".$liste_param_paypal['L_SHORTMESSAGE0']."<br />".$liste_param_paypal['L_LONGMESSAGE0']."</p>";}  
}
 
// On ferme notre session cURL.
curl_close($ch);
 
?>
page fonction_api.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
/******   SERVEUR DE TESTS  ******/
    $serveur_paypal = "https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=";
 
    /******   SERVEUR DE PRODUCTION ******/
    //$serveur_paypal = "https://www.paypal.com/webscr&cmd=_express-checkout&token=";
function construit_url_paypal()
  {
    $api_paypal = 'https://api-3t.sandbox.paypal.com/nvp?'; // Site de l'API PayPal. On ajoute déjà le ? afin de concaténer directement les paramètres.
    $user = 'contact-facilitator_api1.commercesdu7.fr'; // Utilisateur API
    $pass = '***'; // Mot de passe API
    $signature = '***'; // Signature de l'API
 
    $version = 86.0; // Version de l'API
 
    $api_paypal = $api_paypal.'VERSION='.$version.'&USER='.$user.'&PWD='.$pass.'&SIGNATURE='.$signature; // Ajoute tous les paramètres
 
    return  $api_paypal; // Renvoie la chaîne contenant tous nos paramètres.
  }
function recup_param_paypal($resultat_paypal)
  {
    $liste_parametres = explode("&",$resultat_paypal); // Crée un tableau de paramètres
    foreach($liste_parametres as $param_paypal) // Pour chaque paramètre
    {
        list($nom, $valeur) = explode("=", $param_paypal); // Sépare le nom et la valeur
        $liste_param_paypal[$nom]=urldecode($valeur); // Crée l'array final
    }
    return $liste_param_paypal; // Retourne l'array
  }
?>
Un grand merci à tous ceux qui pourrons m'aider, je suis en galère.