Bonjour,

j'ai suivis le tuto sur setexpresscheckout,tout fonctionne sauf un petit truc,j'ai cette erreur qui pour moi en est pas un

array (size=6)
  'TOKEN' => string 'EC-1WS65598V4698293D' (length=20)
  'TIMESTAMP' => string '2013-12-31T14:33:35Z' (length=20)
  'CORRELATIONID' => string '759f4bde6cd64' (length=13)
  'ACK' => string 'Success' (length=7)
  'VERSION' => string '109.0' (length=5)
  'BUILD' => string '8951431' (length=7)
erreur

j'ai écouté et regardé le tuto plusieurs fois mais je n'arrive pas a comprendre pourquoi il m'affiche se que j'ai mis au dessus au lieu
du lien,comme vous pouvez le voir le ACK est a success donc devrait afficher le lien

je mets le code paiement

$response=$paypal->quest('SetExpressCheckout',$params);

        if($response){

            $paypal=' https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token='.$response'TOKEN'];

      }else{
            var_dump($paypal->errors);
            die('erreur');

      }?>
            <a href="<?php echo $paypal;?>">payer</a>

et le code de la class

<?php 
class Paypal{
    private $user = "";
    private $pass= "";
    private $sign ="";
    private $returnpoint='https://api-3t.sandbox.paypal.com/nvp';
    public $errors=array();

    public function __construct($user=false,$pass=false,$sign=false,$prod=false){

            if($user){
            $this->user=$user;
            }
            if($pass){
            $this->pass=$pass;
            }
            if($sign){
            $this->sign=$sign;
            }
            if($prod){
            $this-> $returnpoint=str_replace('sandbox.','',$this->returnpoint);
            }
    }

    public function quest($method,$params){
        $params = array_merge($params,array(
              'METHOD'=>$method,
              'VERSION'=>'109.0',
              'USER' => $this->user,
              'PWD' => $this->pass,
              'SIGNATURE' => $this->sign
         ));

        $params = http_build_query($params);
        $curl = curl_init();
        curl_setopt_array($curl,array(
            CURLOPT_URL => $this->returnpoint,
            CURLOPT_POST => 1,
            CURLOPT_POSTFIELDS => $params,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_SSL_VERIFYHOST => false,
            CURLOPT_VERBOSE => 1
        ));
        $response = curl_exec($curl);

        $responsearray = array();

        parse_str($response,$responsearray);
        if(curl_errno($curl)){
             echo'<div class="annonce">';$this->errors = curl_error($curl);'</div>';

            curl_close($curl);
            return false;
            }else{
                if($responsearray'ACK']=='success'){

                    curl_close($curl);
                    return $responsearray;

                }else{
                    echo'<div class="annonce">';$this->errors = $responsearray;'</div>';

                    curl_close($curl);

                    return false;
                }

             }
    }
}

merci pour l'aide

2 réponses


arckaliann
Auteur
Réponse acceptée

bon j'ai résolu le problème,fallait que je mettent success avec une majuscule sinon sa marche pas

j'ai une incompréhension total si dans

if($responsearray'ACK']=='success'){

je met != au lieu de == je récupère mon lien,normalement sa devrait pas être l'inverse,si

success on a le lien et si c'est différent on a l'erreur