Je termine l'implémentation d'un paiement en ligne pour un client dans le cadre de cyberplus (AtosOrigin).
Le client souhaite que des emails contenant un récapitulatif de la commande soit directement adressé via un mail à l'administrateur des ventes, plutôt que de passer par la gestion via l'interface dans la base de données que j'ai créée, un peu en vain d'ailleurs.
Il m'a fallu passer donc le contenu du panier dans un champ prévu à cet effet dans le dispositif assez contraignant qui transite par le serveur de la banque.
Le tableau qui contient les informations ne passant pas, j'ai sérialisé une variable $caddie et je l'a récupère une fois la transaction validée dans la page adéquate sous cette forme:
Précision : L'API de cyberplus ne supporte pas d'espace ni un autre séparateur que %.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $caddie="Politesse:M%Prenom:William%Nom:Esteen%Etablissement:Aucun%Adresse:Rue_du_Cer cle_Rouge%Ville:Béziers% Cp:34500%Telephone:0661234567%Nombre_articles:3%NomArticle_0:SERVI%Reference_0:67%Qte_0:1% PrixHTByRow_0:36.5% TauxTva_0:0.196%MontantTaxesByRow_0:7.154%PrixUnitTTC_0:43.65%PrixTotalByRow_0:43.65% NomArticle_1:ECO-SED%Reference_1:97%Qte_1:1%PrixHTByRow_1:12.5%TauxTva_1:0.196% MontantTaxesByRow_1:2.45%PrixUnitTTC_1:14.95%PrixTotalByRow_1:14.95%NomArticle_2:GELION_30 00% Reference_2:98%Qte_2:1%PrixHTByRow_2:18%TauxTva_2:0.196%MontantTaxesByRow_2:3.528%PrixUnit TTC_2:21.53% PrixTotalByRow_2:21.53%";
Dans un premier temps, je récupère les données clients:
Voilà où se trouve mon problème:
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 $caddie = explode("%",$caddie); $politesse = explode(":",$client_info_1); $prenom = explode(":",$client_info_2); $nom = explode(":",$client_info_3); $etablissement = explode(":",$client_info_4); $adresse = explode(":",$client_info_5); $adresse=str_replace("_"," ",$adresse); $ville = explode(":",$client_info_6); $cp = explode(":",$client_info_7); $tel = explode(":",$client_info_8); echo "<br>"; echo "Politesse : ".$politesse[1]."<br>"; echo "Prénom : ".$prenom[1]."<br>"; echo "Nom : ".$nom[1]."<br>"; echo "Etablissement : ". $etablissement[1]."<br>"; echo "Adresse : ".$adresse[1]."<br>"; echo "Ville : ".$ville[1]."<br>"; echo "Code postal : ".$cp[1]."<br>"; echo "Téléphone : ".$tel[1]."<br>"; //ici tout se passe bien //Ensuite, je m'occupe des données du panier produit //Je passe lçà toutes les valeurs (om produit, reference, prix unitaire ht, taux tva, montant tva, prix tc unitaire, prix ttc par ligne de //produit, et prix total de la commande). //Rien ne sera recalculé. //Je supprime les valeurs utilisées du tableau $caddie_produit=array_slice($caddie,9); //Contrôle du tableau print_r($caddie_produit); //Récupération du nombre d'articles différents echo $nbrItems[1]."<br>"; echo $champs_produits= count($caddie_produit); echo "<br>";
Si je réalise la récupération manuellement, ça marche, mais c'est évidemment insatisfaisant.
Par contre, si je fais une boucle pour créer et incrémenter les variables, j'ai un message :
J'ai essayé avec un . à la place de l'underscore... sans effet.Parse error: syntax error, unexpected T_VARIABLE ...
Si quelqu'un (une) a une idée pour résoudre cette question. Depuis hier, je planche dessus...
Merci d'avance...
Configuration: Windows XP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //$caddie_produit=explode(":",$caddie[$i]); for($i=0;$i<$champs_produits;$i++){ $caddie_produit_$i = explode(":",$caddie_produit[$i]); /*$caddie_produit_1 = explode(":",$caddie_produit[1]); $caddie_produit_2 = explode(":",$caddie_produit[2]); $caddie_produit_3 = explode(":",$caddie_produit[3]); $caddie_produit_4 = explode(":",$caddie_produit[4]); $caddie_produit_5 = explode(":",$caddie_produit[5]); $caddie_produit_6 = explode(":",$caddie_produit[6]); $caddie_produit_7 = explode(":",$caddie_produit[7]);*/ } echo "<br>Nom".$i.": ".$caddie_produit_0[1]." Reférence: ". $caddie_produit_1[1]. " Qte ".$caddie_produit_2[1] ." prix HT : ".$caddie_produit_3[1]." "." TVA ". $caddie_produit_4[1]*100 . " % " ." Prix TTC : ".$caddie_produit_7[1]." "." dont Taxes : ".round($caddie_produit_5[1],2)." ". "<br>";
Partager