Debug nip
slyckers
Contributeur
Options
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Envoyé le
janv.-04-2013
06:52 PM
Bonjour,
Si je poste c'est que je ne sais plus comment faire pour faire marcher cette API.
<?php if(isset($_POST)){ file_put_contents('logPOST.txt', print_r($_POST,true)); } //permet de traiter le retour ipn de paypal $email_account = "xxx"; $req = 'cmd=_notify-validate'; foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $req .= "&$key=$value"; } $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 ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30); // je vais essayer de tester avec le port 80 on ne sait jamais $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']; parse_str($_POST['custom'],$custom); if (!$fp) { file_put_contents('log.txt', 'Erreur de socket ssl'); } else { fputs ($fp, $header . $req); while (!feof($fp)) { $res = fgets ($fp, 1024); if (strcmp ($res, "VERIFIED") == 0) { // Ici que s'arrête l'envoie de mail pour debug // vérifier que payment_status a la valeur Completed if ( $payment_status == "Completed") { if ( $email_account == $receiver_email) { if( $payment_currency == "EUR" ){ /** * C'EST LA QUE TOUT SE PASSE * PS : tjrs penser à vérifier la somme !! */ file_put_contents('log.txt', print_r($_POST,true)); $dns = 'mysql:host=xxx;dbname=xxx'; $utilisateur = 'xxx'; $motDePasse = 'xxx'; $db = new PDO( $dns, $utilisateur, $motDePasse ); $req = $db->query('SELECT * FROM buy WHERE id = '.$custom['id'].' LIMIT 1'); $d = $req->fetch(PDO::FETCH_ASSOC); if(!empty($d)){ $uid=$custom['id']; $data=serialize($_POST); $req = $db->query('SELECT * FROM offers WHERE price = '.$payment_amount.' LIMIT 1'); $c = $req->fetch(PDO::FETCH_ASSOC); $offre_id = $c['id']; $offre_duration = $c['duration']; $offre_price = $c['price']; //Mise à jour de la durée des abonnements par rapport au prix if($payment_amount == '5'){ $offre_duration == '1';} if($payment_amount == '10'){ $offre_duration == '2';} if($payment_amount == '15'){ $offre_duration == '3';} if($payment_amount == '20'){ $offre_duration == '4';} //on mets à jour la balance du joueur $db->query('UPDATE buy SET expiration_exclu = DATE_ADD(NOW(), INTERVAL '.$offre_duration.' WEEK) WHERE id = '.$uid.''); //On sauvegarde la commande $db->query("INSERT INTO orders SET user_id=$uid, amount=$payment_amount, created=NOW(), datas=$data"); file_put_contents('log.txt', 'Le paiement a bien été confirmé'); $to = 'xxx'; $subject = 'Payement réussi'; $message = 'Le payement Paypal a réussi'; $headers = 'From: xxx' . "\r\n" . 'Reply-To: xxx' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); }else{ file_put_contents('log.txt', 'Le paiement ne correspond à aucune offre'); } /** * FIN CODE */ } } } else { // Statut de paiement: Echec file_put_contents('log.txt', 'Echec du paiement'); } exit(); } else if (strcmp ($res, "INVALID") == 0) { file_put_contents('log.txt', 'Transaction invalide'); // J'arrive donc toujours ici file_put_contents('log2.txt', print_r($_POST,true)); } } fclose ($fp); }
Pour débuguer le code je m'envoie des mails après chaque étape du code et j'ai fini par voir qu'après ce if je n'ai plus rien
if (strcmp ($res, "VERIFIED") == 0) {
Et que juste avant, je reçois bein un mail me disant que le code s'execute....
Vous avez une idée car moi honnêtement, je suis vidé depuis 2 jous de recherche sur google et ici
Merci à tous ceux qui m'aideront.
Anthony
2 RÉPONSES 2
slyckers
Contributeur
Options
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
janv.-04-2013
08:04 PM
PRSTSCcolonDTL
Contributeur
Options
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
janv.-06-2013
03:33 PM
Haven't Found your Answer?
It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.
Contenu Connexe