ZauChoco
-
Modifié par ZauChoco le 22/02/2017 à 18:35
ZauChoco -
22 févr. 2017 à 19:21
Bonsoir,
J' installe en ce moment un IPN sur mon site web pour faire des paiement:
Mais problème: Tout est bon (Normalement) mais mon code dans le ipn ne s'execute pas.
J'ai tout tenté mais la je seche !
Pouvez vous trouver ou est mon erreur svp:
ipn.php:
<?php// prépare la requête de vérification$req="cmd=_notify-validate";// ajoute le message IPN au format NVP à la requête de vérificationforeach($_POSTas$key=>$value){$value=urlencode(stripslashes($value));$req.='&$key=$value';}// définition des headers pour la requête de vérification$header="POST /cgi-bin/webscr HTTP/1.0rn";// test $header.="Host: www.sandbox.[/sites/details/paypal.com paypal].com:443rn";// production//$header .= "Host: ipnpb.paypal.com:443rn"; $header.="Content-Type: application/x-www-form-urlencodedrn";$header.="Content-Length: ".strlen($req)."\r\n\r\n";// Ouverture du socket// test$fp=fsockopen('ssl://www.sandbox.paypal.com',443,$errno,$errstr,30);// production//$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);// s'il y a une erreur lors de l'ouverture du socketif(!$fp){// on s'envoie un mail pour être informé de l'erreur$msg='Erreur de socket, l\'url n\'a pas pu être ouverte';mail('***@***','erreur socket',$msg);}else{// on post la requête de vérificationfputs($fp,$header.$req);// créé une boucle tant qu'on est pas arrivé à la fin du fichierwhile(!feof($fp)){// lit la réponse de paypal$res=fgets($fp,1024);// si paypal répond VERIFIED, // tout s'est bien déroulé et on peut procéder à nos traitementsif(strcmp($res,'VERIFIED')==0){$item_name=$_POST['item_name'];$item_number=$_POST['item_number'];$payment_status=$_POST['payment_status'];$payment_amount=$_POST['mc_gross'];$payment_currency=$_POST['mc_currency'];$txn_id=$_POST['txn_id'];$receiver_email=$_POST['receiver_email'];$payer_email=$_POST['payer_email'];$custom=$_POST['custom'];include'bdd.php';$sommereq=$bdd->prepare("SELECT * FROM buy WHERE ID = ? AND statue = 0");$sommereq->execute(array($custom['id']));$somme=$sommereq->fetch();if($receiver_email=="***@outlook.fr"){if($somme['prix']==$payment_amount){$conf=$bdd->prepare('UPDATE buy SET statue = 1 WHERE ID = :ID');$conf->execute(array('ID'=>$custom['id']));}}// type de transaction// $_POST['txn_type'] // mail du compte paypal à qui est destiné le paiement// $_POST['receiver_email']// montant// $_POST['mc_gross']// id de la transaction// $_POST['txn_id']// champ personnalisé// $_POST['custom']}// si la transaction est invalideelseif(strcmp($res,'INVALID')==0){// on s'envoie un mail pour être informé de l'erreur$msg='Message de l\'IPN : '.$res;mail('***@***','erreur IPN',$msg);}}fclose($fp);}