RE: paypal et php - Xenos - 06-09-2013
Eh bien, cela dépend peut-être des mutus, mais https est-il bien pris en charge sur un mutualisé? Si la connexion est non sécurisé avec paypal, cela craint un peu...
RE: paypal et php - niahoo - 06-09-2013
avec paypal généralement tu fais ton paiement sur le site de paypal, pas sur le site du vendeur.
RE: paypal et php - Xenos - 06-09-2013
Oui, mais après, il faut bien récupérer l'information comme quoi le produit a été payé, et faute de sécuriser la transaction, y'a un fort risque que l'on puisse savoir ce que les autres joueurs ont achetés... Voire pire: n'y aurait-il pas un risque (là, j'en sais rien en fait) qu'un tiers se fasse passer pour paypal si le mutu se fiche du certificat fournit par le site qu'il consulte?
RE: paypal et php - niahoo - 06-09-2013
Il faudrait pour cela qu'il pirate les DNS du mutu, et à ce niveau, https ou pas ben de toute façon le gars il peut faire à peu près ce qu'il veut sur ton site.
mais oui dans tous les cas https c'est mieux car tu rends privé le contenu des transactions.
RE: paypal et php - php_addict - 06-09-2013
oui donc http ou https ou s'en fout royalement
voici le but du jeu:
vous créez un compte marchand et un compte acheteur virtuelle sur paypal develloper, pour tester avec deux comptes virtuels, c'est cool d'avoir l'impression d’être pété de thune ;-)
faut dire dans votre compte paypal (sandbox et en reel) votre url de notification, un de vos scripts qui se chargera de vérifier la transaction et de la traiter
voici en php un exemple pour l'url de notification:
//
//
// A la fin d'un achat d’un produit, cette URL de notification est appelée
//
// inspirée de http://www.johnboy.com/blog/http-11-paypal-ipn-example-php-code
//______________
// SANDOX ??? |
//______________|
// true or false
// sandbox = true permet de tester en mode argent virtuel (faut s'inscrire sur paypal develloper pour créer un compte marchant et un compte acheteur virtuel)
// sanbox = false en mode paiement réel)
//
$sandbox = true;
$debug = '';
if($sandbox === true) { $url_paypal = 'www.sandbox.paypal.com'; }
else { $url_paypal = 'www.paypal.com'; }
//________________________________________________
//read the post from PayPal system and add 'cmd' |
//________________________________________________|
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
//_________________________________________________________________
//post back to PayPal system to validate (replaces old headers) |
//_________________________________________________________________|
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Host: " . $url_paypal . "\r\n";
$header .= "Connection: close\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://' . $url_paypal, 443, $errno, $errstr, 30);
//_____________________________
//error connecting to paypal |
//_____________________________|
if (!$fp)
{
$debug .= 'fsockopen error : ' . "\r\n\r\n";
}
//_________________________
//successful connection |
//_________________________|
if ($fp)
{
fputs ($fp, $header . $req);
while (!feof($fp))
{
$res = fgets ($fp, 1024);
$res = trim($res); //NEW & IMPORTANT (je sais pas pourquoi mais peut importe...)
if (strcmp($res, "VERIFIED") == 0)
{
//_________________
// ALL IS OK !!! |
//_________________|
//insert order into database
$debug .= 'VERIFIED';
}
if (strcmp ($res, "INVALID") == 0)
{
//_______________________
// INVALID TRANSACTION |
//_______________________|
//insert into DB in a table for bad payments for you to process later
$debug .= 'INVALID';
}
}
fclose($fp);
}
//_________________________
// DEBUG |
//_________________________|
$uniqid = uniqid();
$date = date ( 'Y-m-d_@_H-i-s', time());
$directory = '/var/www/paypal_log/' . CONF_NOM_DU_MONDE;
if (file_exists($directory))
{
file_put_contents($directory . '/sandbox_' . $date . '___' . $uniqid . '.txt' , $debug) ;
}
|