[RESOLU] Paiement sécurisé DEBUG!YES! aucune réaction ??

Mammouth du PHP | 804 Messages

25 oct. 2013, 11:01

Bonjour,
Depuis que j'ai recodé mon site en registre global OFF une fois que j'arrive à la page de paiement plus de réaction, les droits sont bon, les chemins sont bon mais rien ne ce passe, mais le plus étrange c'est mon fichier pathfile qui ne faitpas son travail ???
J’ai configuré DEBUG!YES!
Et rien, j'ai toujours la même et unique stupide réponse de mon API
Erreur appel request
executable request non trouve /var/www/vhosts/monsite.com/httpdocs/paiement/request
Quelqu’un aurait-il une idée de mon problème ?
Pour info je vous poste mon nouveau code on sait jamais
<?php
session_start(); 
require("config.php");
mysql_connect($SQL_HOST,$SQL_Compte,$SQL_Password);
mysql_select_db($SQL_Database);
mysql_query("SET NAMES 'utf8'");
include("caddie.php");

$dateday = (isset($_POST['dateday'])) ? $_POST['dateday'] : (isset($_GET['dateday']) ? $_GET['dateday'] : null);
$dateday = (isset($_POST['dateday'])) ? mysql_real_escape_string($_POST['dateday']) : '';

$amount = (isset($_POST['amount'])) ? $_POST['amount'] : (isset($_GET['amount']) ? $_GET['amount'] : null);
$amount = (isset($_POST['amount'])) ? mysql_real_escape_string($_POST['amount']) : '';
$amount = $_POST['amount']*100;

$mon_caddie = (isset($_POST['mon_caddie'])) ? $_POST['mon_caddie'] : (isset($_GET['mon_caddie']) ? $_GET['mon_caddie'] : null);
$mon_caddie = (isset($_POST['mon_caddie'])) ? mysql_real_escape_string($_POST['mon_caddie']) : '';

$adr_livraison = (isset($_POST['adr_livraison'])) ? $_POST['adr_livraison'] : (isset($_GET['adr_livraison']) ? $_GET['adr_livraison'] : null);
$adr_livraison = (isset($_POST['adr_livraison'])) ? mysql_real_escape_string($_POST['adr_livraison']) : '';

$courrielfr = (isset($_POST['courrielfr'])) ? $_POST['courrielfr'] : (isset($_GET['courrielfr']) ? $_GET['courrielfr'] : null);
$courrielfr = (isset($_POST['courrielfr'])) ? mysql_real_escape_string($_POST['courrielfr']) : '';

$customer_id = (isset($_POST['customer_id'])) ? $_POST['customer_id'] : (isset($_GET['customer_id']) ? $_GET['customer_id'] : null);
$customer_id = (isset($_POST['customer_id'])) ? mysql_real_escape_string($_POST['customer_id']) : '';

$commande = (isset($_POST['commande'])) ? $_POST['commande'] : (isset($_GET['commande']) ? $_GET['commande'] : null);
$commande = (isset($_POST['commande'])) ? mysql_real_escape_string($_POST['commande']) : '';



				  $select = "INSERT INTO source_commande (Numcaddie,Datecaddie,commande_idclient,commande_prix,artcaddie,commande_livrer) VALUES(
				  \"$customer_id\",
				  \"$dateday\",
				  \"$commande\",
				  \"$amount\",
				  \"$mon_caddie\",
				  \"$adr_livraison\"
				  )";
		/*		  
	$query = mysql_query($select);
	*/
	
				  
	$parm_caddie = base64_encode(serialize($mon_caddie));

	$parm="merchant_id=XXXXXXXXXXXXXXXX";
	 
	$parm="$parm merchant_country=fr";
	
	$parm="$parm amount=$amount";
	
	$parm="$parm currency_code=978";
	    
	$parm="$parm pathfile=/var/www/vhosts/monsite.com/httpdocs/paiement/pathfile";

	$parm .= " transaction_id=".$customer_id;
	

	/*
	if (file_exists("/var/www/vhosts/monsite.com/httpdocs/paiement/request")) { 
	echo ("<P>File 'request' exists </P>"); 
	} else { 
	echo ("<P>File 'request' does not exist </P>"); 
	} 
*/

	//		Affectation dynamique des autres param&egrave;tres
	// 		Les valeurs propos&eacute;es ne sont que des exemples
	// 		Les champs et leur utilisation sont expliqu&eacute;s dans le Dictionnaire des donn&eacute;es
	//
	 		$parm="$parm normal_return_url=http://www.monsite.com/caddie_response.php";
			$parm="$parm cancel_return_url=http://www.monsite.com/caddie_response.php";
			$parm="$parm automatic_response_url=http://www.monsite.com/caddie_autoresponse.php";
			$parm="$parm language=fr";
			$parm="$parm payment_means=CB,2,VISA,2,MASTERCARD,2";
			$parm="$parm header_flag=yes";
			$parm="$parm capture_day=";
			$parm="$parm capture_mode=";//delai avant envoi en bank
			$parm="$parm bgcolor=\"FFFFFF\"";//couleur de font de la fenetre paiement
			$parm="$parm block_align=center";
			$parm="$parm block_order=1,2,3,4,5,6,7,8";
			$parm="$parm textcolor=";
			$parm="$parm receipt_complement=";
	
			$parm="$parm order_id=\"$customer_id\"";
	
			$parm="$parm customer_email=$courrielfr";
			$parm="$parm customer_ip_address=\"$_SERVER[REMOTE_ADDR]\"";
			$parm="$parm data="; //personnalisation des pages &agrave; voir
			$parm="$parm return_context=";
			$parm="$parm target=";
			$parm="$parm order_id=\"$customer_id\"";

			$parm .= " caddie=".$parm_caddie ;
			
			//echo $parm;

	//		Les valeurs suivantes ne sont utilisables qu'en pr&eacute;-production
	//		Elles n&eacute;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=";//logo du haut du paiement
	 		$parm="$parm background_id=";
	 		$parm="$parm templatefile=template_scellius";


	$path_bin = "/var/www/vhosts/monsite.com/httpdocs/paiement/request";

	$result=exec("$path_bin $parm");

	//	sortie de la fonction : $result=!code!error!buffer!
	//	    - code=0	: la fonction g&eacute;n&egrave;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
	

	//var_dump($result);

	$tableau = explode ("!", "$result");

	//	r&eacute;cup&eacute;ration des param&egrave;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&eacute;
		print (" $error <br>");
		
		print ("  $message <br>");
	}
?>

merci d'avance de voter aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 oct. 2013, 10:17

Salut,

Affiche la ligne de commande complète pour voir a quoi elle ressemble et dit elle comme tu le pense.
Ensuite t'est cette ligne dans un Shell afin de voir ce qui ce passe quand tu le fait.


Tu peux aussi supprimer le commentaire devant le var_dump($result) pour savoir ce qu'il y a comme retour.


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 804 Messages

26 oct. 2013, 11:14

Bonjour,
Affiche la ligne de commande complète pour voir a quoi elle ressemble et dit elle comme tu le pense.
elle est complète et pour être certain que mon code fonctionne je l'ai testé sur un autre de mes serveur et ça tourne nickel, du coup j'ai vérifier si la configuration serveur était la même, pareil :shock: nickel
c'est une histoire de fou, le second ne veux pas exécuté mon API :evil:
Ensuite t'est cette ligne dans un Shell afin de voir ce qui ce passe quand tu le fait.
que veux tu dire ?

Tu peux aussi supprimer le commentaire devant le var_dump($result) pour savoir ce qu'il y a comme retour.

Code : Tout sélectionner

string(0) ""
J'ai quand même une sérieuse impression que exec() ne fait pas son boulot pas toi ? :?

merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 oct. 2013, 11:30

Tu te connecte sur le serveur via ssh (avec putty par exemple si tu est sous Windows) et tu exécute cette ligne de commande.

Le top serait de le faire avec le même utilisateur que celui qui exécute php sur ton serveur.

Tu verra ce qui se passe. Si cela fonctionne en ligne de commande tu verra si cela vient de php.
As tu les bons droits sur le fichier cible ?
Il est "exécutable" ?

Toutes ces questions sont utile car si tu tu n'y arrive avec ton Shell php non plus ;)

Ensuite tu regarde du côté de php voir s'il n'y a pas des restrictions dans la configuration etc.


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 804 Messages

27 oct. 2013, 12:12

aucun souci avec ma config PHP ça je maîtrise
pardonne moi je vais te paraître ignare mais tu parle de quelle ligne de commande ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 oct. 2013, 12:51

Un Shell classique comme bash par exemple.
Sous Windows c'est "l'invite de commande".

Bref de quoi exécuter la commande que tu construis avec php.


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 804 Messages

27 oct. 2013, 13:08

j'obtiens j'avais déjà essayé ca
No such file or directory

Mammouth du PHP | 804 Messages

27 oct. 2013, 13:13

ls: cannot access /war/www/vhosts/monsite.com//httpdocs/paiement/param/pathfile/: No such file or directory

Mammouth du PHP | 804 Messages

27 oct. 2013, 16:24

Le plus dingue c'est que si je lui coupe la ligne comme suit
//$parm=$parm ."pathfile=/var/www/vhosts/monsite.com/httpdocs/cgi-bin/pathfile";
il n'a aucun réaction et me réclame encore request :shock:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 oct. 2013, 23:05

d'après le système de fichier "pathfile" n'existe pas la où tu l'a indiqué et dans ce cas la j'ai tendance à le croire :)

question de droit ?
tu n'as pas mis les fichiers qui vont bien là où il faut ?


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 804 Messages

28 oct. 2013, 00:03

J'en ai installé une dizaines de toute banques, je t'assure que j'ai mis les fichiers partout ou ils doivent être
J'en suis même à me demander si les pirates on pas magouiller mon API :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 oct. 2013, 00:47

ben la un fichier n'est pas trouvé donc c'est au niveau système qu'il faut voir la chose récupère le fichier d'origine et remplace le tu verra ce que cela donne


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 804 Messages

28 oct. 2013, 00:52

oui dans la semaine je vais contacter scellius et voir ce qu'il en pense 8-|, c'est loin d'être gagné.

Mammouth du PHP | 804 Messages

28 oct. 2013, 11:58

Le certificat était endommagé j'ai demandé ce matin un nouveau API et miracle :evil:
je vous remercie vraiment pour votre soutiens ce week-end c'est toujours moins difficile quand on est aider.

Mammouth du PHP | 804 Messages

28 oct. 2013, 12:07

d'ailleurs j'en profite pour vous informé que chez ATOS ils ont crypter le nouveau certificat en php, c'est mieux, avec un petit .htaccess et c'est parfait. :wink:

Je n'ai malheureusement pas le droit de vous fournir le liens du nouveau API mais si vous en faites la demande il vous le ferons passer avec plaisir