Aller au contenu

Récupérer une confirmationde paiment de don en PHP avec Paypal


Sujets conseillés

Posté (modifié)

Récupérer une confirmationde de paiment de don en PHP avec Paypal

Bonjour tout le monde,

Je me tourne vers l'assistance car je commence a en avoir plein le choux.

Situation :

Je souhaite créer une page de donation avec paypal, sur laquelle le visiteur choisie le montent qu'il souhaite donner.

Une fois le don effectuer je souhaite récupérer une confirmation pour que le visiteur, qui auparavant c'est identifié, soit ajouter au groupe membres donateurs et lui octroyer quelque privilèges et ceux avec une simple requête dans la BDD à partir de l'ID du membre récupéré.

Ou en sont mes recherche ?

Alors pour faire ça automatiquement il faut utiliser la fonction de notification instantanée de paiement (NIP).

Déjà 1er problème, toutes les documentations sont en anglais, arf ... comme si le codage à proprement dit n'était pas suffisamment compliqué ... Voilà le bout de code que fourni paypal, je n'y comprend absolument rien et je n'ai aucune idée de comment est appelé cette page.

// 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
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIE") == 0) {
// vérifier que payment_status est Terminé
// vérifier que txn_id n'a pas été précédemment traité
// vérifier que receiver_email est votre adresse email PayPal principale
// vérifier que payment_amount et payment_currency sont corrects
// traiter le paiement
}
else if (strcmp ($res, "NON VALIDE") == 0) {
// consigner pour étude manuelle
}
}
fclose ($fp);
}
?>

Après avoir trouvé ça j'ai créé 2 comptes sur le site de test de paypal, histoire de pas lacher des sous à chaque fois que je test quelque chose.

https://developer.paypal.com

Déjà mon 1er test c'est de faire un don simple sans rien chercher à récupérer, déjà ça foire, j'ai bien sur le compte 1 un paiement fictif, mais rien reçu sur le compte 2.

A partir de là je ne peut rien faire et c'est là que ma patience à été complètement rongé, c'était déjà bien lourd de trouver ces infos, mais je j'ai besoin d'aide.

Le code html ressemble à ça :

<form target="paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="mon_compte_AT_paypal_a_moi">
<input type="hidden" name="item_name" value="Faire un don à la communauté">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="return" value="http://www.domaine.net/paypal_terminee.php">
<input type="hidden" name="invoice" value="<?php echo $membre['membre_id'];?>">
<INPUT TYPE="hidden" name="currency_code" value="EUR">
<INPUT TYPE="hidden" name="cpp_headerback_color" value="e9e9e9">
<INPUT TYPE="hidden" name="cpp_payflow_color" value="e9e9e9">
<INPUT TYPE="hidden" name="cpp_headerborder_color" value="a8a8a8">
<input type="numeric" name="amount" value="5.00">
<input type="hidden" name="charset" value="utf-8">
<input type="hidden" name="cancel_return" value="http://www.domaine.net/paypal_annule.php">
<input type="image" src="http://images.paypal.com/images/x-click-but01.gif" name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée">
</form>

Merci d'avance

Modifié par Spark

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...