Bonjour,
J'ai mis en place un système de paiement en ligne via la solution e-transactions du crédit agricole.
Mon problème est que je n'arrive pas à récupérer toutes les lignes de mon panier après la transaction.
Sur la page d'appel du paiement, je récupére les infos de mon panier :
<?php
// on construit le tableau du caddie en récupérant les variables de la session
$TheCaddie = array();
// les infos du client
$TheCaddie[] = $_SESSION['login'];
$TheCaddie[] = MontantGlobal();
$TheCaddie[] = PortGlobal();
$TheCaddie[] = TotalGlobal();
$TheCaddie[] = $_POST['livraison'];
//le contenu du caddie
$nbArticles=count($_SESSION['panier']['libelleProduit']);
if ($nbArticles >= 0)
{
for ($i=0 ;$i < $nbArticles ; $i++)
{
$TheCaddie[] = $_SESSION['panier']['libelleProduit'][$i];
$TheCaddie[] = $_SESSION['panier']['libelle'][$i];
$TheCaddie[] = $_SESSION['panier']['qteProduit'][$i];
$TheCaddie[] = $_SESSION['panier']['prixProduit'][$i];
$TheCaddie[] = $_SESSION['panier']['prixProduit'][$i]*$_SESSION['panier']['qteProduit'][$i];
}
}
//pour envoyer le caddie à e-transaction sans probleme
//on serialize le tableau pour en faire 1 string et on le base64_encode()
//car certains caractères sont interdits dans la valeur du parm caddie
$xCaddie = base64_encode(serialize($TheCaddie));
$parm="$parm caddie=".$xCaddie;
?>
Puis, au retour du paiement, je veux enregistrer la commande dans ma base.
Pour l'entête, pas de problème.
Mais pour les lignes de mon panier, mes valeurs sont bien retournées, car j'arrive à enregistrer la première ligne, mais je n'arrive pas à faire la boucle sur toutes les lignes.
Pour mon premier article je doit récupérer les valeurs $arrayCaddie[5], $arrayCaddie[6], $arrayCaddie[7], $arrayCaddie[8], $arrayCaddie[9].
Pour le deuxième : $arrayCaddie[10], $arrayCaddie[11], $arrayCaddie[12], $arrayCaddie[13], $arrayCaddie[14].
Etc...
J'ai essayé avec for each, mais ça ne fonctionne pas.
<?php
//Caddie
//Ici nous retrouvons tout notre caddie que nous remmettons dans un tableau
$arrayCaddie = unserialize(base64_decode($caddie));
// ci-dessous on insère les lignes de la commande
$sql = "INSERT INTO lignescde(id,id_cde,ref,libelle,qte,prix,totalligne) VALUES('','$id_cde','".$arrayCaddie[5]."','".$arrayCaddie[6]."','".$arrayCaddie[7]."','".$arrayCaddie[8]."','".$arrayCaddie[9]."')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
?>
Une idée ?
Merci