Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2012, 09h26   #1
Membre du Club
 
Inscription : janvier 2008
Messages : 706
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 706
Points : 66
Points : 66
Par défaut conseils insertion BDD avant paiement paypal

Bonjour je me suis aider de cette page:
<lien>https://www.paypaltech.com/SG2/scriptparse.php</lien>

pour faire ma page ipn avec email

mais comme apres une semaine je ne comprend toujours pk je ne recoit aucun POST sur ma page.

Pour securite on m'avait conseiler d enregistrer la commande apres validation du paiement chez paypal sur ma page IPN, mais comme je peux pas faire autrement.

Comment pourrai je securiser au mieux le traitement.

1) confirmer la commande insertion commande dans ma BDD.
2)redirection sur paypal avec paiment.
3) redirection dur mon site avec reponse de confirmation de commande.

Je voudrai securiser ces etapes au mieux auriez vosu des conseils?

MON CODE QUI FONCTIONNE PAS:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<form action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="POST">
 
<img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="my.bab_1324302424_biz@gmail.com">
<input type="hidden" name="item_name_1" value="mon objet">
<input type="hidden" name="item_number_1" value="6">
<input type="hidden" name="custom" value="22">
<input type="hidden" name="amount_1" value="15.00">
<input type="hidden" name="no_shipping" value="0">
<input name="return" type="text" value="http://www.webcreation66.com/mybabylove/test3.php" />
<input name="cancel_return" type="text" value="http://www.webcreation66.com/mybabylove/test3.php" />
<input name="notify_url" type="text" value="http://www.webcreation66.com/mybabylove/test3.php" />
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="lc" value="FR">
 
<input type="image" src=" <lien url="https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif">https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif</lien>
border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>
</form>

Code :
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
82
83
84
85
86
87
88
89
 
<?php
// Revision Notes
// 11/04/11 - changed post back url from <lien>https://www.paypal.com/cgi-bin/webscr</lien> to <lien>https://ipnpb.paypal.com/cgi-bin/webscr</lien>
// For more info see below:
// <lien url="https://www.x.com/content/bulletin-ip-address-expansion-paypal-services">https://www.x.com/content/bulletin-ip-address-expansion-paypal-services</lien>
// "ACTION REQUIRED: if you are using IPN (Instant Payment Notification) for Order Management and your IPN listener script is behind a firewall that uses ACL (Access Control List) rules which restrict outbound traffic to a limited number of IP addresses, then you may need to do one of the following: 
// To continue posting back to <lien>https://www.paypal.com</lien>  to perform IPN validation you will need to update your firewall ACL to allow outbound access to *any* IP address for the servers that host your IPN script
// OR Alternatively, you will need to modify  your IPN script to post back IPNs to the newly created URL <lien>https://ipnpb.paypal.com</lien> using HTTPS (port 443) and update firewall ACL rules to allow outbound access to the ipnpb.paypal.com IP ranges (see end of message)."
 
 
// 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
 
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
 
	// If testing on Sandbox use: 
	 $header .= "Host: www.sandbox.paypal.com:443\r\n";
//$header .= "Host: ipnpb.paypal.com:443\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
 
	// If testing on Sandbox use:
	$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
//$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);
 
// assign posted variables to local variables
$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 = "my.babylove66140@gmail.com";
$payer_email = $_POST['payer_email'];
 
//set email variables
$From_email = "From: <a href="mailto:my.babylove66140@gmail.com">my.babylove66140@gmail.com</a>";
$Subject_line = "SUBJ";
 
$email_msg = "TEXT";
$email_msg .= "\n\nThe details of your order are as follows:";
$email_msg .= "\n\n" . "Transaction ID: " .  $txn_id ;
$email_msg .= "\n" . "Payment Date: " . $payment_date;
 
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
// check the payment_status is Completed
// check that txn_id has not been previously processed
// check that receiver_email is your Primary PayPal email
// check that payment_amount/payment_currency are correct
// process payment
 
$mail_From = $From_email;
$mail_To = $payer_email;
$mail_Subject = $Subject_line;
$mail_Body = $email_msg;
 
mail($mail_To, $mail_Subject, $mail_Body, $mail_From);
 
 
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
 
$mail_From = $From_email;
$mail_To = $receiver_email;
$mail_Subject = "INVALID IPN POST";
$mail_Body = "INVALID IPN POST. The raw POST string is below.\n\n" . $req;
 
mail($mail_To, $mail_Subject, $mail_Body, $mail_From);
 
}
}
fclose ($fp);
}
?>
le recoit un email mais aucun post j'ai ce message dans l'email:
INVALID IPN POST cmd=_notify-validate.


Merci.
kate59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 09h37   #2
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
Code :
1
2
<input type="image" src=" <lien url="https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif">https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif</lien>
border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>
c'est quoi la balise '<lien>' dans l'attribut src de ton input, c'est plutot comme ça :
Code :
1
2
<input type="image" src="https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif"
border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 09h40   #3
Membre du Club
 
Inscription : janvier 2008
Messages : 706
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 706
Points : 66
Points : 66
bonjour,

voila mon code d'hier excuse ca celui d''au dessus etait avant hier.
Je fais au moins une 30 de tests.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="POST">
 
<img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="my.bab_1324302424_biz@gmail.com">
<input type="hidden" name="item_name_1" value="mon objet">
<input type="hidden" name="item_number_1" value="6">
<input type="hidden" name="custom" value="22">
<input type="hidden" name="amount_1" value="15.00">
<input type="hidden" name="no_shipping" value="0">
<input name="return" type="text" value="http://www.webcreation66.com/mybabylove/test1.php" />
<input name="cancel_return" type="text" value="http://www.webcreation66.com/mybabylove/test4.php" />
 
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="lc" value="FR">
 
<input type="image" src=" https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif
border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>
</form>
j avais changer le submit mais ne recoit tj aucun $_POST.
merci.
kate59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 10h09   #4
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
tu ne recois pas les données de ton form ? si c'est ça que tu veux dire : normal l'url d l'action est https://www.sandbox.paypal.com/fr/cgi-bin/webscr et pas l'url de ton script après de ce que je vois je pense plutot que ton form soumet les données au cgi de paypal qui te renvoi des données en post sur l'url de retour ou se trouve la page test1.php si c'est le cas dans ton script essai d'inserer var_dump($_POST) dans une table quelconque en base de données pour voire ce que te renvoi paypal.
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 10h39   #5
Membre du Club
 
Inscription : janvier 2008
Messages : 706
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 706
Points : 66
Points : 66
merci de ta reponse.

j'ai mit dans test1.php
var_dump($_POST):
array(0) { }


mais moi j'avais compris que paypal passer par la page de noritificatino qui est chez moi test3.php.
pour l adresse form on m'a donner ce code de paypal.
kate59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 12h29   #6
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
Citation:
Envoyé par kate59 Voir le message
bonjour,

voila mon code d'hier excuse ca celui d''au dessus etait avant hier.
Je fais au moins une 30 de tests.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="POST">
 
<img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="my.bab_1324302424_biz@gmail.com">
<input type="hidden" name="item_name_1" value="mon objet">
<input type="hidden" name="item_number_1" value="6">
<input type="hidden" name="custom" value="22">
<input type="hidden" name="amount_1" value="15.00">
<input type="hidden" name="no_shipping" value="0">
<input name="return" type="text" value="http://www.webcreation66.com/mybabylove/test1.php" />
<input name="cancel_return" type="text" value="http://www.webcreation66.com/mybabylove/test4.php" />
 
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="lc" value="FR">
 
<input type="image" src=" https://www.paypal.com/fr_FR/i/bnr/horizontal_solution_PP.gif
border="0" name="submit" alt="Paiement sécurisé par carte bancaire"/>
</form>
j avais changer le submit mais ne recoit tj aucun $_POST.
merci.
Dans le second code que t'as posté c'est test1.php pour le retour et test4.php en cas d'annulation du client...
le $_POST est vide parce que si tu as appelé directement la page via ta barre d'adresse, y a pas de données qui transite en post...
si tu as le script d'origine pour le traitement (doc) poste le qu'on voit le code d'origine...
peux tu poster le contenu du mail que tu reçois pour connaitre la variable qui est en cause.
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 15h19   #7
Membre du Club
 
Inscription : janvier 2008
Messages : 706
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 706
Points : 66
Points : 66
voila le contenu de mon email:

INVALID IPN POST. The raw POST string is below.

cmd=_notify-validate


et pour formulaire type difference est que moi cmd est _cart pour le panier et que je doit rajouter _x a certains information pour avoir plusieurs produit :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type='hidden' value="Montant_Achat" name="amount" />
<input name="currency_code" type="hidden" value="EUR" />
<input name="shipping" type="hidden" value="0.00" />
<input name="tax" type="hidden" value="0.00" />
<input name="return" type="hidden" value="http://votredomaine/paiementValide.php" />
<input name="cancel_return" type="hidden" value="http://votredomaine/paiementAnnule.php" />
<input name="notify_url" type="hidden" value="http://votredomaine/validationPaiement.php" />
<input name="cmd" type="hidden" value="_xclick" />
<input name="business" type="hidden" value="votre_emailtest_biz@domaine" />
<input name="item_name" type="hidden" value="Nom de votre produit" />
<input name="no_note" type="hidden" value="1" />
<input name="lc" type="hidden" value="FR" />
<input name="bn" type="hidden" value="PP-BuyNowBF" />
<input name="custom" type="hidden" value="ID_ACHETEUR" />
<input alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée" name="submit" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynow_LG.gif" type="image" /><img src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" border="0" alt="" width="1" height="1" />
</form>
kate59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h46.


 
 
 
 
Partenaires

Hébergement Web