paypal notify_url jamais appélé mais le success oui sur cakephp 3

Par tincode, il y a 8 ans


Bonjour,

j'essai de mettre un systeme de paiement sur mon site jai regardé le tuto de grafikart sur cakephp (systeme d abonnement ) je l'ai adapté à mon cas mais le probleme le notify url n'est jamais appelé et pourtant l url de succes est appelé a la fin de la transaction (pas d'insertion a la base de donnée) merci pour votre aide

Ce que je fais

public function notify(){ debug("coucou");die("notify"); $email_account = Configure::read('Paypal.mail'); $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.'.Configure::read('Paypal.sandbox').'paypal.com', 443, $errno, $errstr, 30); $item_name = $_POST['item_name']; $item_number = $_POST['item_number']; $payment_status = $_POST['payment_status']; $payment_amount = $_POST['mc_gross']; $payment_tax = $_POST['tax']; $payment_ht = $payment_amount - $payment_tax; $payment_currency = $_POST['mc_currency']; $address = $_POST['address_street']; $country = $_POST['address_country']; $city = $_POST['address_city']; $name = $_POST['address_name']; $txn_id = $_POST['txn_id']; $receiver_email = $_POST['receiver_email']; $payer_email = $_POST['payer_email']; parse_str($_POST['custom'],$custom); $this->log($_POST, 'paypal'); if (!$fp) { } else { fputs ($fp, $header . $req); while (!feof($fp)) { $res = fgets ($fp, 1024); if (strcmp ($res, "VERIFIED") == 0) { $this->log('paypal','paiement'); // vérifier que payment_status a la valeur Completed if ( $payment_status == "Completed") { if ( $email_account == $receiver_email) { //debug($custom);die(); if($custom['action'] == 'Paypalpayment'){ $this->Soutiens->save([ 'price' => $payment_ht, 'tax' => $payment_tax, 'txnid' => $txn_id, 'action' => 'paiement', 'name'=> $name, 'country'=> $country, 'city' => $city, 'address'=> $address ]); } } } else { // Statut de paiement: Echec $this->log('echec','paiement'); } exit(); } else if (strcmp ($res, "INVALID") == 0) { // Transaction invalide } } fclose ($fp); } }

4 réponses

makamo, il y a 8 ans

as tu bien fait la config sur ton compte paypal ?
Et est ce que paypal est capable de rejoindre ton site( Heberger en ligne ou configurer ta box pour que ton serveur soie rejoignable ? ) ?

tincode, il y a 8 ans

bonjour oui mon appli est en ligne et tout est bien configuré car jai les notif dans le dashboard de paypal. je suis déja passé à Stripe car cest facile et simple à utilisé

Lartak, il y a 8 ans

Bonjour.

je suis déja passé à Stripe car cest facile et simple à utilisé

Tu n'utilises donc plus PayPal mais Stripe si je comprends bien, il n'est donc plus utile de te répondre à ce sujet puisque tu as abandonné PayPal pour ton système de paiement.

tincode, il y a 8 ans

Cest en attendant de trouver une solution pour paypal. Les 2 technos seront présentes sur l'appli