Bonjour les amis,
Avant tout, merci pour le forum et pour vos aides précieuses les pro.
Voilà je suis en train d'intégerer un script paypal sur mon site, le script en question est ici :
Quand je fais un test de paiement (en vrai et pas de sandbox), le paiement s'effectue très bien, mon compte acheteur est débité mais dans mon compte vendeur paypal me dit que j'ai reçu un paiement mais il n'affiche pas la somme, dans l'etat du paiement il affiche seulement "effectuer un remboursement" et je ne peut pas recevoir les sous mais la seule option c'est d'effectuer un remboursement seulement
Code : Sélectionner tout - Visualiser dans une fenêtre à part http://www.wikistuce.info/doku.php/articles/mise_en_place_d_un_paiement_paypal_sur_site_marchand#%5B1%5D
Ci-dessous une capture
Ma question :
- est ce que c'est à cause de mon script?
Dans la ligne 65 j'ai un commentaire // Traiter le paiement, d'après vous qu'est ce que je doit mettre la dessus, il doit y avoir encore un code pour dire à paypal de traiter enfin le paiement? J'avoue que je suis un peu perdu et j'ai cherché des solutions mais nada.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 <?php /* Template Name: Retour paypal */ get_header(); ?> <div id="primary" class="content-area"> <div id="content" class="site-content" role="main"> <?php //email pour prévenir le vendeur $mailTo="Moi <xxxx@gmail.com>"; //permet de traiter le retour ipn de paypal // 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"; //www.sandbox.paypal.com pour la phase de test //www.paypal.com pour la phase réel. $fp = fsockopen ('www.paypal.com', 443, $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']; $headerMail= "Content-Type:text/html;charset=iso-8859-1\n";//permet d'envoyer les message au format html $headerMail.= "Content-Transfer-Encoding: 8bit\n";//permet d'envoyer les message au format html $headerMail.="From: me";//pour répondre au message //on prépare le texte de l'email $textMail=" <strong>Détail de la commande</strong><br /> Commande numéro:".$item_number."<br /> prix: ".$payment_amount." € "; echo $textMail; if (!$fp) { echo 'erreur http'; } else { fputs ($fp, $header.$req); while(!feof($fp)) { $res = fgets ($fp, 1024); if(substr_count($res, "VERIFIED") === 0) { //on envoi un email pour prévenir qu'une commande a ete passee mail($mailTo,"Une nouvelle commande à été réglée avec succès",$textMail,$headerMail); // C'est ici que vous devrez traiter la commande (enregistrement bdd etc..) // 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 } elseif (strcmp ($res, "INVALIDE") == 0) { // consigner pour étude manuelle echo 'invalide'; } } fclose ($fp); } ?> </div><!-- #content --> </div><!-- #primary --> <?php get_sidebar(); ?> <?php get_footer(); ?>
Est ce que quelqu'un a une idée? c'est à cause du script ou c'est mon compte paypal? j'ai testé deux comptes vendeurs paypal mais c'est la même chose.
Partager