Salut,
j'ai suivis ce tuto : http://www.grafikart.fr/tutoriels/php/paiement-paypal-181, ainsi que quelques autres, mais je ne comprends pas pourquoi mon code ne fonctionne pas, le voici :
<?php
include('config.php');
$requete = "SELECT * FROM aa_settings";
$query = $connexion->query($requete);
$config = $query->fetch();
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
// $item_name = $_POST'item_name']; // Nom du produit
// $item_number = $_POST'item_number']; // Quantit?
$payment_status = $_POST'payment_status']; // Status du paiement
$payment_amount = $_POST'mc_gross']; // Prix
$payment_currency = $_POST'mc_currency']; // Devise
$txn_id = $_POST'txn_id']; // ID de la transaction
$receiver_email = $_POST'receiver_email']; // Email de reception
$payer_email = $_POST'payer_email']; // Email d'envoie
$id_user = $_POST'custom']; // ID de l'user
if (!$fp)
{
}
else
{
fputs ($fp, $header . $req);
while (!feof($fp))
{
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0)
{
if ( $payment_status == "Completed")
{
$requete = "SELECT * FROM aa_paypal WHERE txn_id = '$txn_id'";
$query = $connexion->query($requete);
$use = $query->rowCount();
if($use == 0)
{
if(($config'paypalmail'] == $receiver_email)&&($payment_currency == 'EUR')&&($payment_amount == $config'paypalprix']))
{
$date = time();
$requete = "SELECT * FROM aa_membre WHERE id = '$id_user'";
$query = $connexion->query($requete);
$exist = $query->rowCount();
if($exist == 1)
{
$user = $query->fetch();
$tokens = $user'tokens'];
$tokens = $tokens + $config'paypalgain'];
$requetepaypal = "INSERT INTO aa_paypal VALUES('','$id_user','$txn_id','$payer_email',$date')";
$querypaypal = $connexion->query($requetepaypal);
if($querypaypal)
{
$requete = "UPDATE aa_membre SET tokens = '$tokens' WHERE id = '$id_user'";
$query = $connexion->query($requete);
file_put_contents('log', 'OK2');
}
}
}
}
}
}
else if (strcmp ($res, "INVALID") == 0)
{
}
}
fclose ($fp);
}
?>
Dans mon fichier 'log', je reçoit : 'HTTP Ok'
Si je rajoute un else après :
}
else if (strcmp ($res, "INVALID") == 0)
{
file_put_contents('log', 'Transaction invalide');
}
Je n'ai plus rien dans le 'log' ...
Je rajoute :
else
{
file_put_contents('log', 'Transaction invalide 2');
}
Vous auriez une idée du soucis ? :/
Merci
Erreur trouvée ->
$requetepaypal = "INSERT INTO aa_paypal VALUES('','$id_user','$txn_id','$payer_email',$date')";
Manque un '
(Oui j'ai honte ^^')
Merci quand même