Bonjour,
Bon je vous raconte mes misères : je suis écrivain et j’ai écrit deux bouquins (un roman et un essai). Devant le refus de plusieurs éditeurs, mais restant persuadé de la qualité de mes oeuvres (en toute modestie of course !), je me suis dit que je pourrait les vendre en plaçant les fichiers pdf en téléchargement payant sur mon site perso. J’ai bien réfléchi aux risques de me faire “pirater” mes oeuvres, mais je crois que je vais le faire. Je précise que j’ai tous les droits légaux pour le faire vu que je ne proposerai que mes oeuvres à télécharger et rien d’autre. Donc s’il vous plait évitons le débat : “t’es sûr que t’as le droit de faire ça ?” Oui, j’ai le droit, et je paierai la TVA et des impots sur mes gains, pas de pb.
Je me suis dit que la solution la plus simple était de faire payer l’acheteur avec le système “paypal IPN”. Techniquement, c’est assez compliqué : l’acheteur clique sur un bouton “acheter maintenant”, il est renvoyé sur paypal où il paye (par son compte paypal ou directement par CB), puis il est renvoyé sur mon site vers une page “votre téléchargemetn va commencer”. simultanément paypal me notifie par un POST qui prouve que le paiement est OK, ce qui doit déclancher automatiquement le téléchargement. j’ai cherché sur le net des scripts php “tout prets” qui fassent tout ça, mais nada. il semble que les gens qui ont trouvé la solution la gardent pour eux… ou bien ils la vendent (dans un ebook ! ) Je trouve pas ça très fair play : lorsque j’aurai des scripts php au point (gràce à vous), je compte bien faire profiter les internautes de mon expérience et les mettre à leur disposition ! une sorte de projet open source si on veut.
Bref, je me suis mis à apprendre PHP (sur le site du zero, très bien fait), et voila où j’en suis : je sais déclencher un téléchargement de pdf depuis mon site, mais je ne vois pas encore comment garantir que seul l’internaute qui a payé pourra télécharger mes oeuvres. Et puis j’ai un script qui gère l’IPN, mais il est loin d’être complet, je galère et je voudrais savoir si quelqu’un pourrait m’aider ! En plus toute la doc de paypal est super ardue à comprendre, c’est vraiment la galère.
Voici mon script pour l’IPN (mais j’imagine que ce n’est qu’une petite partie du système à créer) :
<?php
// lire la publication du système PayPal et ajouter 'cmd'
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
// renvoyer au système PayPal pour validation
$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 ('www.paypal.com', 80, $errno, $errstr, 30);
// affecter les variables publiées aux variables locales
$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'];
if (!$fp) {
// ERREUR HTTP je fais quoi là ?
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIE") == 0) {
// TOUT CA RESTE A FAIRE !!!
// vérifier que payment_status est Terminé
// vérifier que txn_id n'a pas été précédemment traité sinon c'est un hacker
// vérifier que receiver_email est mon adresse email PayPal principale
// vérifier que payment_amount et payment_currency sont corrects
// traiter le paiement : enregistrer dans la BD, envoyer l'internaute vers une page "votre téléchargement va commencer"
// déclencher le téléchargement (et comment savoir si ça s'est bien passé ?)
}
else if (strcmp ($res, "NON VALIDE") == 0) {
// consigner pour étude manuelle, qu'ils disent. Je fais comment ?
}
}
fclose ($fp);
}
?>
Ah, j’oubliais : j’ai besoins aussi de conseils pour savoir comment organiser ma base de données : je voudrais garder la trace des acheteurs (et leur email), et savoir pour chaqun d’eux le statut de leur achat (en cours, téléchargement OK, erreur…) pour pouvoir recontacter ceux qui ont eu un pb technique.
Et je voudrais savoir où je met mes deux fichiers pdf : soit sur le site dans un endroit “secret”, soit dans la BD ? qu’est-ce qui est le mieux ? Dans le cas où c’est dans la BD, comment provoquer le téléchargement ?
Bon voila, il me semble que c’est un bon sujetp pour des cadors comme vous, mais pour un débutant comme moi c’est dur dur de commencer par un truc aussi compliqué… C’est pourquoi j’appelle à l’aide !
merci !