IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eCommerce] Error get DATA response parameter (wrong length)


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut [eCommerce] Error get DATA response parameter (wrong length)
    J'ai installé tout comme il faut l'api de la banque pop cyberplus paiement et je l'ai mis en mode débug, quand j'essaye une n°de carte sur la démo, ça fonctionne, j'ai le ticket qui me précise que la transaction a bien été enregistrée mais quand je fait retour à la boutique, au lieu de m'afficher la réponse manuelle du serveur, il me met un message d'erreur : Error get DATA response parameter (wrong length). Pourtant dans la page précédente callcreditcard, la source de la page a bien son champ hidden DATA de rempli avec plein de chiffres et de lettres. J'ai appelé la banque mais ça n'avance pas pour le moment.
    Merci de votre aideeeeeeeee!!

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour,

    La plupart du temps il s'agit d'un mauvais paramètre :

    voir les paramètres 'caddie' , 'receipt_complement' si il n'y a pas un espace en trop ou un caractère qui causerait l'erreur


    Tu peux eventuellement tout enregistrer dans un fichier de log, (puisqu'il n'y a pas de sortie écran) puis récuperer ton fichier de log par ftp pour voir le contenu.

    Sinon, tu peux eventuellement mettre un bout de code ici (request et response sans tes codes ) pour qu'on regarde ce qui se passe
    .

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    ben j'ai essayé en ne mettant pas de caddie ni de receipt_complement et j'ai quand même la même erreur.
    Pour le fichier log l'autoresponse le rempli de l'erreur!

    mon call_request :

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    <?php 
     
        print ("<HTML><HEAD><TITLE>CYBERPLUS - Paiement Securise sur Internet</TITLE></HEAD>");
        print ("<BODY bgcolor=#ffffff>");
        print ("<Font color=#000000>");
        print ("<center><H1>Test de l'API plug-in CYBERPLUS</H1></center><br><br>");
     
        //        Affectation des paramètres obligatoires
     
        $parm="merchant_id=***************";
        $parm="$parm merchant_country=fr";
        $parm="$parm amount=100";
        $parm="$parm currency_code=978";
     
        // Initialisation du chemin du fichier pathfile (à modifier)
         // ex :
         // -> Windows : $parm="$parm pathfile=c:\\repertoire\\pathfile";
         // -> Unix : $parm="$parm pathfile=/home/repertoire/pathfile";
     
                $parm="$parm pathfile=/home/www/monsite.fr/paiement/param/pathfile";
     
     
        //        Si aucun transaction_id n'est affecté, request en génère
        //        un automatiquement à partir de heure/minutes/secondes
        //        Référez vous au Guide du Programmeur pour
        //        les réserves émises sur cette fonctionnalité
        //
        //        $parm="$parm transaction_id=125894";
     
     
     
        //        Affectation dynamique des autres paramètres
        //         Les valeurs proposées ne sont que des exemples
        //         Les champs et leur utilisation sont expliqués dans le Dictionnaire des données
        //
                $parm="$parm normal_return_url=http://www.monsite.fr/paiement/sample/call_response.php";
                $parm="$parm cancel_return_url=http://www.monsite.fr/page_retour.html";
                $parm="$parm automatic_response_url=http://www.monsite.fr/paiement/sample/call_autoresponse.php";
     
        //        $parm="$parm language=fr";
        //        $parm="$parm payment_means=CB,2,VISA,2,MASTERCARD,2";
        //        $parm="$parm header_flag=no";
        //        $parm="$parm capture_day=";
        //        $parm="$parm capture_mode=";
        //        $parm="$parm bgcolor=";
        //        $parm="$parm block_align=";
        //        $parm="$parm block_order=";
        //        $parm="$parm textcolor=";
        //        $parm="$parm receipt_complement=";
        //        $parm="$parm caddie=";
        //        $parm="$parm customer_id=";
        //        $parm="$parm customer_email=";
        //        $parm="$parm customer_ip_address=";
        //        $parm="$parm data=";
        //        $parm="$parm return_context=";
        //        $parm="$parm target=";
        //        $parm="$parm order_id=";
     
     
        //        Les valeurs suivantes ne sont utilisables qu'en pré-production
        //        Elles nécessitent l'installation de vos fichiers sur le serveur de paiement
        //
        //         $parm="$parm normal_return_logo=";
        //         $parm="$parm cancel_return_logo=";
        //         $parm="$parm submit_logo=";
        //         $parm="$parm logo_id=";
        //         $parm="$parm logo_id2=";
         //        $parm="$parm advert=";
        //         $parm="$parm background_id=";
        //         $parm="$parm templatefile=";
     
     
        //        insertion de la commande en base de données (optionnel)
        //        A développer en fonction de votre système d'information
     
        // Initialisation du chemin de l'executable request (à modifier)
        // ex :
        // -> Windows : $path_bin = "c:\\repertoire\\bin\\request";
        // -> Unix : $path_bin = "/home/repertoire/bin/request";
        //
        $path_bin = "/home/www/cgi-bin/doss/request";
     
     
        //    Appel du binaire request
     
        $result=exec("$path_bin $parm");
        //    sortie de la fonction : $result=!code!error!buffer!
        //     - code=0    : la fonction génère une page html contenue dans la variable buffer
        //     - code=-1     : La fonction retourne un message d'erreur dans la variable error
     
        //On separe les differents champs et on les met dans une variable tableau
     
        $tableau = explode ("!", "$result");
     
        //    récupération des paramètres
     
        $code = $tableau[1];
        $error = $tableau[2];
        $message = $tableau[3];
     
        // analyse du code retour
     
    if (( $code == "" ) && ( $error == "" ) )
        {
        print ("<BR><CENTER>erreur appel request</CENTER><BR>");
        print ("executable request non trouve $path_bin");
        }
     
        //    Erreur, affiche le message d'erreur
     
        else if ($code != 0){
            print ("<center><b><h2>Erreur appel API de paiement.</h2></center></b>");
            print ("<br><br><br>");
            print (" message erreur : $error <br>");
        }
     
        //    OK, affiche le formulaire HTML
        else {
            print ("<br><br>");
     
            # OK, affichage du mode DEBUG si activé
            print (" $error <br>");
            print (" $message <br>");
        }
     
    print ("</BODY></HTML>");
     
    ?>

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Essaie de refaire ton call_request plus propre comme celui-ci :
    http://thierry-godin.developpez.com/php/atos/

    eventuellement refais ton call_autoresponse

    et vérifie aussi la syntaxe des fichiers parmcom et pathfile

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    Oui je suis allé voir ses scripts mais je voulais mettre un minimum de paramètre pour pas rajouter d'erreurs. Je me repenche dessus demain.

  6. #6
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    Voici mon call_autoresponse :
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
     
    <?php
    	// Récupération de la variable cryptée DATA
    	//$message="message=$HTTP_POST_VARS[DATA]";
          $message="message=".$_POST['DATA'];
     
    	// Initialisation du chemin du fichier pathfile (à modifier)
    	    //   ex :
    	    //    -> Windows : $pathfile="pathfile=c:\\repertoire\\pathfile"
    	    //    -> Unix    : $pathfile="pathfile=/home/repertoire/pathfile"
     
       $pathfile="pathfile=/home/www/monsite.fr/paiement/param/pathfile";
     
    	//Initialisation du chemin de l'executable response (à modifier)
    	//ex :
    	//-> Windows : $path_bin = "c:\\repertoire\\bin\\response"
    	//-> Unix    : $path_bin = "/home/repertoire/bin/response"
    	//
    	$path_bin="/home/www/cgi-bin/doss/response";
     
    	// Appel du binaire response
     
    	$result=exec("$path_bin $pathfile $message");
     
    	//	Sortie de la fonction : !code!error!v1!v2!v3!...!v29
    	//		- code=0	: la fonction retourne les données de la transaction dans les variables v1, v2, ...
    	//				: Ces variables sont décrites dans le GUIDE DU PROGRAMMEUR
    	//		- code=-1 	: La fonction retourne un message d'erreur dans la variable error
     
     
    	//	on separe les differents champs et on les met dans une variable tableau
     
    	$tableau = explode ("!", $result);
     
    	$code = $tableau[1];
    	$error = $tableau[2];
    	$merchant_id = $tableau[3];
    	$merchant_country = $tableau[4];
    	$amount = $tableau[5];
    	$transaction_id = $tableau[6];
    	$payment_means = $tableau[7];
    	$transmission_date= $tableau[8];
    	$payment_time = $tableau[9];
    	$payment_date = $tableau[10];
    	$response_code = $tableau[11];
    	$payment_certificate = $tableau[12];
    	$authorisation_id = $tableau[13];
    	$currency_code = $tableau[14];
    	$card_number = $tableau[15];
    	$cvv_flag = $tableau[16];
    	$cvv_response_code = $tableau[17];
    	$bank_response_code = $tableau[18];
    	$complementary_code = $tableau[19];
    	$complementary_info= $tableau[20];
    	$return_context = $tableau[21];
    	$caddie = $tableau[22];
    	$receipt_complement = $tableau[23];
    	$merchant_language = $tableau[24];
    	$language = $tableau[25];
    	$customer_id = $tableau[26];
    	$order_id = $tableau[27];
    	$customer_email = $tableau[28];
    	$customer_ip_address = $tableau[29];
    	$capture_day = $tableau[30];
    	$capture_mode = $tableau[31];
    	$data = $tableau[32];
     
     
    	// Initialisation du chemin du fichier de log (à modifier)
        //   ex :
        //    -> Windows : $logfile="c:\\repertoire\\log\\logfile.txt";
        //    -> Unix    : $logfile="/home/repertoire/log/logfile.txt";
        //
     
    	$logfile="/home/www/monsite.fr/logstock/logfile.txt";
     
    	// Ouverture du fichier de log en append
     
    	$fp=fopen($logfile, "a");
     
    	//  analyse du code retour
     
      if (( $code == "" ) && ( $error == "" ) )
     	{
      	fwrite($fp, "erreur appel response\n");
      	print ("executable response non trouve $path_bin\n");
     	}
     
    	//	Erreur, sauvegarde le message d'erreur
     
    	else if ( $code != 0 )
    	{
            fwrite($fp, " API call error.\n");
            fwrite($fp, "Error message :  $error\n");
     	}
    	else 
    	{
     
    		// OK, Sauvegarde des champs de la réponse
     
    		fwrite( $fp, "merchant_id : $merchant_id\n");
    		fwrite( $fp, "merchant_country : $merchant_country\n");
    		fwrite( $fp, "amount : $amount\n");
    		fwrite( $fp, "transaction_id : $transaction_id\n");
    		fwrite( $fp, "transmission_date: $transmission_date\n");
    		fwrite( $fp, "payment_means: $payment_means\n");
    		fwrite( $fp, "payment_time : $payment_time\n");
    		fwrite( $fp, "payment_date : $payment_date\n");
    		fwrite( $fp, "response_code : $response_code\n");
    		fwrite( $fp, "payment_certificate : $payment_certificate\n");
    		fwrite( $fp, "authorisation_id : $authorisation_id\n");
    		fwrite( $fp, "currency_code : $currency_code\n");
    		fwrite( $fp, "card_number : $card_number\n");
    		fwrite( $fp, "cvv_flag: $cvv_flag\n");
    		fwrite( $fp, "cvv_response_code: $cvv_response_code\n");
    		fwrite( $fp, "bank_response_code: $bank_response_code\n");
    		fwrite( $fp, "complementary_code: $complementary_code\n");
    		fwrite( $fp, "complementary_info: $complementary_info\n");
    		fwrite( $fp, "return_context: $return_context\n");
    		fwrite( $fp, "caddie : $caddie\n");
    		fwrite( $fp, "receipt_complement: $receipt_complement\n");
    		fwrite( $fp, "merchant_language: $merchant_language\n");
    		fwrite( $fp, "language: $language\n");
    		fwrite( $fp, "customer_id: $customer_id\n");
    		fwrite( $fp, "order_id: $order_id\n");
    		fwrite( $fp, "customer_email: $customer_email\n");
    		fwrite( $fp, "customer_ip_address: $customer_ip_address\n");
    		fwrite( $fp, "capture_day: $capture_day\n");
    		fwrite( $fp, "capture_mode: $capture_mode\n");
    		fwrite( $fp, "data: $data\n");
    		fwrite( $fp, "-------------------------------------------\n");
    	}
     
    	fclose ($fp);
    ?>
    mon pathfile :
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    #########################################################################
    #
    #	Pathfile 
    #
    #	Liste fichiers parametres utilisés par le module de paiement
    #
    #########################################################################
    #
    #
    #-------------------------------------------------------------------------
    # Activation (YES) / Désactivation (NO) du mode DEBUG
    #-------------------------------------------------------------------------
    #
    DEBUG!YES!
    #
    # ------------------------------------------------------------------------
    # Chemin vers le répertoire des logos depuis le web alias  
    # Exemple pour le répertoire <a href="http://www.merchant.com/paiement/logo/" target="_blank">www.merchant.com/paiement/logo/</a>
    # indiquer:
    # ------------------------------------------------------------------------
    #
    D_LOGO!/image/logo/!
    #
    #------------------------------------------------------------------------
    #  Fichiers parametres lies a l'api cyberplus paiement	
    #------------------------------------------------------------------------
    #
    # certificat du commercant
    #
    F_CERTIFICATE!/home/www/monsite.fr/paiement/param/certif!
    #
    # fichier paramètre commercant
    #
    F_PARAM!/home/www/monsite.fr/paiement/param/parmcom!
    #
    # fichier des  paramètres cyberplus
    #
    F_DEFAULT!/home/www/monsite.fr/paiement/param/parmcom.cyberplus!
    #
    # --------------------------------------------------------------------------
    # 	end of file
    # --------------------------------------------------------------------------
     
    mon parcom :
     
    ###############################################################################
    #
    #	Fichier des parametres du commercant
    #
    #	Remarque :	Ce fichier parametre est sous la responsabilite du
    #				commercant
    #
    ###############################################################################
     
    # Logo du commercant (il apparait en entete sur les pages de paiement)
     
    ADVERT!merchant.gif!
     
    # URL de retour automatique de la reponse du paiement
     
    AUTO_RESPONSE_URL!<a href="http://www.monsite.fr/paiement/sample/call_autoresponse.php" target="_blank">http://www.monsite.fr/paiement/sampl...toresponse.php</a>!
     
    # URL de retour suite a paiement refuse
     
    CANCEL_URL!<a href="http://www.monsite.fr/paiement/sample/call_response.php" target="_blank">http://www.monsite.fr/paiement/sample/call_response.php</a>!
     
    # URL de retour suite a paiement accepte
     
    RETURN_URL!<a href="http://www.monsite.fr/paiement/sample/call_response.php" target="_blank">http://www.monsite.fr/paiement/sample/call_response.php</a>!
     
     
    # END OF FILE
    en fesant le minimum de modif et en respectant ce qu'ils disent dans leur doc, je vois pas ce qui cloche...?

  7. #7
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Tes urls dans ton parcom devraient etre écrits comme ceci :


    AUTO_RESPONSE_URL!http://www.monsite.fr/paiement/sample/call_autoresponse.php!

  8. #8
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    Citation Envoyé par N1bus Voir le message
    Tes urls dans ton parcom devraient etre écrits comme ceci :
    Elles le sont c'est que j'ai pas décoché l'option convertir automatiquement les liens dans le message.
    Je sais plus quoi faire ça me désespère

  9. #9
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Par défaut
    bon j'ai remis en commentaire dans mon call_request les url et dans mon parcom les url de retour étaient mauvaises comme il y a plusieurs redirection, les adresses étaient des redirections!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Error get DATA response parameter (wrong length)
    Par Creanet dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2009, 14h08
  2. Error getting value ?
    Par jacpapac dans le forum JSF
    Réponses: 3
    Dernier message: 02/02/2007, 11h04
  3. [VBA][recordset]pb update error 3061 too few parameters
    Par megapacman dans le forum Access
    Réponses: 2
    Dernier message: 23/03/2006, 16h11
  4. [MFC] Error: no data exchange control
    Par LeMafiozo dans le forum MFC
    Réponses: 5
    Dernier message: 16/01/2004, 20h23
  5. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo