8797 sujets

Développement web côté serveur, CMS

Bonsoir,


A la fin de l'exécution ma page php, j'obtiens l'écran suivant :
upload/32999-Capture.JPG
Rien à voir avec la page d'invitation à payer traditionnelle !
Pourquoi ?
Pouvez-vous m'aider à y voir plus clair ?
Je hais ces trucs paypal !
A l'aide svp.
Je désespère !
J'ai beau lire partout sur le net, depuis 2 jours, que c'est facile !
J'ai l'impression d'avancer !
Je bloque !
Aidez-moi, svp !
Je n'en peux plus !

Manifestement, l'adresse de la page a été changée automatiquement par paypal !
j'arrive sur la page header("Location: https://www.paypal.com/home"),
au lieu de la page header("Location: https://www.paypal.com/cgi-bin/webscr").

La page en question est ici
Voici ci-dessous, le code simplifié de ma page :
<?php
	session_start();
	ob_start();
	$reptravail="http://www.cx.be";
	$php="boutique40";
	$rubrique="boutique";
	require_once("php/cliquer.inc.php");
	cliquer($rubrique);
	$travaux="";

	require_once("php/fonctions-panier.inc.php");
	require_once("php/connexionMysql.inc.php");	

	// pour tester la page
	ajouterArticle(100, 1, 1);
	$_SESSION['panier']['cumulHTVA']=1;
	$_SESSION['panier']['cumulTVAC']=1;
	//	
	
	$solutionactive = array("",1,1,1,1);
	$validation="no";
	if (isset($_GET['validation']) && !empty($_GET['validation'])) {
		$validation=$_GET['validation'];
	}

	$idclient=$_SESSION['panier']['idClient'];		
	$reqCompte="SELECT * FROM shop_client03 ".
		"WHERE parent='".$idclient."' ";
	$resCompte=mysql_query($reqCompte);
	$record=mysql_fetch_array($resCompte);
	$tvaoui=1;
	if ($record) {
		$tvaoui=trim($record['tvaoui']);
	}
	$cumulHTVA=$_SESSION['panier']['cumulHTVA'];
	$cumulTVAC=$_SESSION['panier']['cumulTVAC'];
	if ($tvaoui==0) {
		$cumulTVAC=$cumulHTVA;
	}
	$cumulTVA=$cumulTVAC-$cumulHTVA;

	$msg1_BDD = "";
	if ($validation=='ok') {
		$cond=$_POST['cond'];
		$moyen=$_POST['moyen'];
		$checked00="";
		if ($cond[0]=="cond00") {
			$checked00="checked='checked'";
		}
		if ($cond[0]=="cond00" AND ($moyen=="VIR" OR $moyen=="PAY" OR $moyen=="MAS" OR $moyen=="VIS")) {
			// ... Après l'acceptation des conditions de vente
			// ... et le choix du mode de paiement,		
			// ... le code pour MAJ des bdd est réalisé
			// ... par la lecture des variables de session
			// ... avant de passer la main à paypal
			if ($moyen=="PAY" OR $moyen=="MAS" OR $moyen=="VIS") {
				header("Location:  https://www.paypal.com/cgi-bin/webscr");
 
			} else {
				header("Location: boutique51.php?bdc=".$refcommande."&xq=".$idclient);
			}
			supprimePanier();
			exit;
		}
	}
	ob_end_flush();
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<LINK REL="SHORTCUT ICON" href="logos/favicon.ico">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name = "reply-to" content = "cx@cx.be"/>
<meta name = "author" content = "cx"/>
<meta name = "description" content = "accueil"/>
<meta name = "keywords" content = "cx cx.be sitecx.be creation impression webdesign site internet web logo carte visite cartons entete flyer affiche catalogue plaquette annonce presse packaging lettrage gif anime newsletter e-commerce vitrine kit promo boutique e-boutique  www.cx.be  www.sitecx.be florence vandoorne deportes 7730 estaimpuis belgique paypal virement mastercard visa tournai mouscron wallonie"/>
<title>cx.be - Boutique</title>
<link rel="alternate" type="application/rss+xml" title="ROR" href="sitemap.xml" />
<link rel="alternate" type="application/rss+xml" title="ROR" href="ror.xml" />
<link href="css/general.css" rel="stylesheet" type="text/css" media="all">
<link href="css/boutique40.css" rel="stylesheet" type="text/css" media="all">

</head>

<body>
<div id="site">
<div id="visuel">
  <div id="contenu">
	<div id="paiement">
    	<form name="paiementok" action="texte.php?validation=ok" method="post">
        <table border="0" align="left" cellspacing="0" id="tablepaiement" style="vertical-align:middle;">
            <tr>
            <td width="75"></td>
            <td width="472"></td>
            <td width="125"></td>
            </tr>
            <tr>
            <td colspan="3" style="padding:7px;" bgcolor="#0E72B5" class="blanc bold">Confirmation de commande</td>
            </tr>
            <tr>
            <td width="75"></td>
            <td width="472" align="right" style="font-size:15px;">
                <input type="hidden" name="cmd" value="_xclick"/>
                <input type="hidden" name="business" value="cx@skynet.be"/>
                <input type="hidden" name="item_name" value="<?php echo $email1; ?> - Commande : <?php echo $refcommande; ?>"/>
                <input type="hidden" name="item_number" value="Commande : <?php echo $refcommande; ?>"/>
                <input type="hidden" name="amount" value="<?php echo number_format($cumulTVAC,2,'.',''); ?>"/>
                <input type="hidden" name="currency_code" value="EUR"/>
                <input type="hidden" name="no_note" value="1"/>
                <input type="hidden" name="no_shipping" value="0"/>
                <input type="hidden" name="bn" value="Créaprint_boutique_WPS_BE">
                <input type="hidden" name="lc" value="FR"/>
                <input type="hidden" name="return" value="www.cx.be/termine.php?val=OK" />
				<input type="hidden" name="notify_url" value="www.cx.be/termine.php?val=OK" />
				<input type="hidden" name="cancel_return" value="www.cx.be/termine.php?val=STOP" />
            </td>
            <td width="125">&nbsp;</td>
            </tr>
            <tr>
            <td width="75"></td>
            <td width="472" align="right" style="font-size:15px; padding-bottom:3px; padding-top:3px;">Prix HTVA :&nbsp;</td>
            <td width="125" align="right"><?php echo number_format($cumulHTVA,2,'.',''); ?>&nbsp;€&nbsp;&nbsp;</td>
            </tr>
            <tr>
            <td width="75"></td>
            <td width="472" align="right" style="font-size:15px; padding-bottom:3px; padding-top:3px;">TVA :&nbsp;</td>
            <td width="125" align="right"><?php echo number_format($cumulTVA,2,'.',''); ?>&nbsp;€&nbsp;&nbsp;</td>
            </tr>
            <tr>
            <td width="75"></td>
            <td width="472" align="right" class="bold" style="font-size:15px; padding-bottom:3px; padding-top:3px;">Prix TVAC :&nbsp;</td>
            <td width="125" align="right" class="bold"><?php echo number_format($cumulTVAC,2,'.',''); ?>&nbsp;€&nbsp;&nbsp;</td>
            </tr>
            <tr>
            <td width="75"></td>
            <td width="472" align="right" style="font-size:15px;">&nbsp;</td>
            <td width="125">&nbsp;</td>
            </tr>
            <tr>
            <td colspan="3" style="padding-left:7px; font-size:13px;">
     			<label><Input type = 'Radio' name ='moyen' id="moyen01" value= 'VIR' <?php echo ($solutionactive[1] == 1)?'':'disabled'; ?> <?php echo ($_POST['moyen']=="VIR")?checked:""; ?> onclick="solpaiement(1);">
                <span class="<?php echo ($solutionactive[1] == 1)?'noir':'grisfonce'; ?>">&nbsp;Je verse la somme de <span class="bold"><?php echo number_format($cumulTVAC,2,'.',''); ?>&nbsp;€</span>&nbsp;par virement bancaire</span></label>
            </td>
            </tr>
            <tr>
            <td colspan="3" style="padding-left:7px; font-size:13px;">
                <label><Input type = 'Radio' name ='moyen' id="moyen02" value= 'PAY' <?php echo ($solutionactive[2] == 1)?'':'disabled'; ?> <?php echo ($_POST['moyen']=="PAY")?checked:""; ?> onclick="solpaiement(2);">
                <span class="<?php echo ($solutionactive[2] == 1)?'noir':'grisfonce'; ?>">&nbsp;Je verse la somme de <span class="bold"><?php echo number_format($cumulTVAC,2,'.',''); ?>&nbsp;€</span>&nbsp;par Paypal</span></label>
            </td>
            </tr>
            <tr>
            <td colspan="3" style="padding-left:7px; font-size:13px;">
                <label><Input type = 'Radio' name ='moyen' id="moyen03" value= 'MAS' <?php echo ($solutionactive[3] == 1)?'':'disabled'; ?> <?php echo ($_POST['moyen']=="MAS")?checked:""; ?> onclick="solpaiement(3);">
                <span class="<?php echo ($solutionactive[3] == 1)?'noir':'grisfonce'; ?>">&nbsp;Je verse la somme de <span class="bold"><?php echo number_format($cumulTVAC,2,'.',''); ?>&nbsp;€</span>&nbsp;par MasterCard</span></label>
            </td>
            </tr>
            <tr>
            <td colspan="3" style="padding-left:7px; font-size:13px;">
                <label><Input type = 'Radio' name ='moyen' id="moyen04" value= 'VIS' <?php echo ($solutionactive[4] == 1)?'':'disabled'; ?> <?php echo ($_POST['moyen']=="VIS")?checked:""; ?> onclick="solpaiement(4);">
                <span class="<?php echo ($solutionactive[4] == 1)?'noir':'grisfonce'; ?>">&nbsp;Je verse la somme de <span class="bold"><?php echo number_format($cumulTVAC,2,'.',''); ?>&nbsp;€</span>&nbsp;par VISA</span></label>
            </td>
            </tr>
            <tr>
            <td colspan="3" style="padding-left:7px; font-size:13px;">
            	<br>
     			<input type="checkbox" name="cond[]" id="cond00" value="cond00" <?php echo $checked00; ?>>&nbsp;<label for="cond00">J’ai lu et je suis d’accord avec ce qui suit :</label>
            </td>
        </table>
		</form>
	</div>  
    <div id="valider" <?php echo ($cumulTVAC>0)?"style='visibility:visible;'":"style='visibility:hidden;'"; ?>><a href="#" onclick="javascript:document.paiementok.submit();">Payer</a></div>
  </div>
</div>
</div>
</body>
</html>

Modifié par jytest (17 Oct 2012 - 08:52)
Je sais que ceci va être fastidieux...
Mais y aurait-il une bonne âme pour m'aider à corriger ce code ?

Il y a une erreur avec le header location de paypal...
A mon avis !

Mais comment faire pour que cela fonctionne ?
Merci d'avance pour votre (très précieuse) aide !
Je viens d'avancer à pas de kangourou !

L'erreur vient d'ici.
Paypal ne veut lancer son script d'invitation de paiement que depuis l'action du form,
comme ceci :
<form name="paiementok" action="https://www.paypal.com/cgi-bin/webscr" method="post">

Il n'aime pas le header !

Dès lors, 2 autres questions me viennent.

1.
Comment tester que le client a bien :
- lu les conditions de vente et
- qu'il a bien choisi un mode de paiement précis ?
avant d'effectuer le paiement par paypal !
Je sais qu'il faut passer par du javascript...


2.
De plus, je suppose que le passage vers la page https de paypal,
va m'anéantir toutes mes variables de session,
pourtant utiles pour la mise à jour de mes bdd...
Je sais que je dois utiliser le champ caché custom de paypal,
pour tout récupérer après.


Modifié par jytest (27 Jul 2012 - 14:09)