Problème réalisation d'un Script de paiement

Bonjour,

Je crée actuellement un site commercial.
L’ensemble du site est réalisé, mais j’ai un problème de codage avec le script de paiement.
Le modèle utilisé est Paybox, avec le système e-transaction du Crédit Agricole, et l’hébergeur est Icodia.

Pour effectuer le paiement j’ai utilisé les codes d’exemple fournis mais à chaque fois j’ai une erreur.
Apparemment il manquerait une variable.

Voici le code d’exemple :

<?php

// Mode d'appel
    $PBX_MODE        = '4';    //pour lancement paiement par exécution
    //$PBX_MODE        = '1';    //pour lancement paiement par URL
// Identification
    $PBX_SITE        = '1999888';
    $PBX_RANG        = '98';
    $PBX_IDENTIFIANT = '3';
// Gestion de la page de connection : paramétrage "invisible"
    $PBX_WAIT        = '0';
    $PBX_TXT         = " ";
    $PBX_BOUTPI      = "nul";
    $PBX_BKGD        = "white";
// Informations paiement (appel)
    $PBX_TOTAL       = '1290';
    $PBX_DEVISE      = '978';
    $PBX_CMD         = "ref cmd";
    $PBX_PORTEUR     = "test@e-transactions.fr";
// Informations nécessaires aux traitements (réponse)
    $PBX_RETOUR      = "auto:A\;amount:M\;ident:R\;trans:T";
    $PBX_EFFECTUE    = "http://www.xxxxxxxxxx/effectue.php";
    $PBX_REFUSE      = "http://www.xxxxxxxxxx/refuse.php";
    $PBX_ANNULE      = "http://www.xxxxxxxxxx/annule.php";
// Page en cas d'erreur
    $PBX_ERREUR      = "http://www.xxxxxxxxxx/erreur.php";

// Construction de la chaîne de paramètres
    $PBX             = "PBX_MODE=$PBX_MODE PBX_SITE=$PBX_SITE PBX_RANG=$PBX_RANG PBX_IDENTIFIANT=$PBX_IDENTIFIANT PBX_WAIT=$PBX_WAIT PBX_TXT=$PBX_TXT PBX_BOUTPI=$PBX_BOUTPI PBX_BKGD=$PBX_BKGD PBX_TOTAL=$PBX_TOTAL PBX_DEVISE=$PBX_DEVISE PBX_CMD=$PBX_CMD PBX_PORTEUR=$PBX_PORTEUR PBX_EFFECTUE=$PBX_EFFECTUE PBX_REFUSE=$PBX_REFUSE PBX_ANNULE=$PBX_ANNULE PBX_ERREUR=$PBX_ERREUR PBX_RETOUR=$PBX_RETOUR";

// Lancement paiement par exécution
   echo shell_exec( "./modulev2.cgi $PBX" );

//lancement paiement par URL
//"http://www.xxxxxxxxxx/modulev2.cgi?PBX_MODE=$PBX_MODE&PBX_SITE=$PBX_SITE&PBX_RANG=$PBX_RANG&PBX_IDENTIFIANT=$PBX_IDENTIFIANT&PBX_WAIT=$PBX_WAIT&PBX_TXT=$PBX_TXT&PBX_BOUTPI=$PBX_BOUTPI&PBX_BKGD=$PBX_BKGD&PBX_TOTAL=$PBX_TOTAL&PBX_DEVISE=$PBX_DEVISE&PBX_CMD=$PBX_CMD&PBX_PORTEUR=$PBX_PORTEUR&PBX_EFFECTUE=$PBX_EFFECTUE&PBX_REFUSE=$PBX_REFUSE&PBX_ANNULE=$PBX_ANNULE&PBX_ERREUR=$PBX_ERREUR&PBX_RETOUR=$PBX_RETOUR"
?>

J’ai remplacé toutes les variables qui devaient l’être pour que ce soit correct mais ca ne marche toujours pas et je recoit l’erreur PAYBOX INPUT ERROR (code -7) : “Il manque une variable obligatoire (PBX_SITE, PBX_RANG, PBX_IDENTIFIANT, PBX_TOTAL,
PBX_CMD,
).”

J’ai utilisé les différentes méthodes :

  • Lancement paiement par exécution
  • Lancement paiement par URL

Je voudrais savoir si quelqu’un avait une idée de comment faire pour régler ce problème.

Merci d’avance.

Personne ne saurais d’ou vient le problème ou aurait une solution ?

Visiblement, tu ne lui passe pas tous les paramètres requis.

Je connais pas ta librairie, mais c’est ce que dis le message d’erreur. Tu devrais commencer par vérifier que tout est fourni.

Notamment: fait un echo "./modulev2.cgi ", $PBX; pour voir ce que tu passes en paramètres du CGI.

Voici le résultat

./modulev2.cgi PBX_MODE=4 PBX_SITE=1999888 PBX_RANG=98 PBX_IDENTIFIANT=3 PBX_WAIT=0
PBX_TXT= PBX_BOUTPI=nul PBX_BKGD=white PBX_TOTAL=1450 PBX_DEVISE=978
PBX_CMD=commande_internet_215 PBX_PORTEUR=djidi@hotmail.fr PBX_EFFECTUE=paiement_succes.php
PBX_REFUSE=refuse.php PBX_ANNULE=annule.php PBX_ERREUR=http://www.orange-bleue.fr/accueil.php
PBX_RETOUR=auto:A\;amount:M\;ident:R\;trans:T PBX_LANGUE=FRA PBX_TYPECARTE=CB

Le kit d’installation de la banque :
http://www.orange-bleue.fr/Kit_Installation.zip

Il me semble avoir mis toutes les varibales obligatoires.
De plus, il s’agit du script donné par la banque.

Demandes leur en ce cas, ça sera mieux :slight_smile:

Par contre : PBX_TXT=, elle n’est pas remplie. Tu devrais mettre autre chose qu’un espace pour tester.