Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Aiuto con ipn paypal

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    194

    Aiuto con ipn paypal

    Salve a tutti, sto testando i pagamenti con paypal, l'invio del form funziona così come il ritorno al sito mentre non riesco ad ottenere un risultato con il notify url.
    Ho seguito la guida su html.it: http://www.html.it/articoli/php-e-paypal-ipn-1/
    Ho provato a inviare email con php mailer o semplicemente a riportare i dati su DB come proposto dal codice di esempio. Non funziona in nessuno dei casi.
    C'è qualcosa che va aggiornato rispetto al codice proposto? Per la cronaca uso PHP 7.
    Vi posto il codice che sto usando.
    Grazie mille



    Codice PHP:
    <?php
        
    // intercetta le variabili IPN inviate da PayPal
        
    $req 'cmd=_notify-validate';
         
        
    // legge l'intero contenuto dell'array POST
        
    foreach ($_POST as $key => $value) {
            
    $value urlencode(stripslashes($value));
            
    $req .= "&$key=$value";
        }
     
        
    // intestazione, prepara le variabili PayPal per la validazione
        
    $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";
     
        
    // apre una connessione al socket PayPal 
        
    $fp fsockopen ('ssl://www.sandbox.paypal.com'443$errno$errstr30);
     
        
    // converte le variabili inviate da IPN in variabili locali
        
    $txn_id filter_var($_POST['txn_id'], FILTER_SANITIZE_STRING);
     
     
        
    // verifica l'apertura della connessione al socket
        
    if (!$fp) {
     
            
    // se la connessione non avviene l'esecuzione dello script viene bloccata
            
    exit();
     
            
    // in alternativa è per esempio possibile inviare un'email al venditore
        
    } else {
     
            
    // elaborazione delle informazioni
            
    fputs ($fp$header $req);
            while (!
    feof($fp)) {
                
    $res fgets ($fp1024);
     
                
    // azioni in caso di risposta positiva da parte di PayPal
                
    if (strcmp ($res"VERIFIED") == 0) {
     
                         
                
    // connessione a MySQL tramite istanza
                        
    $mysqli = new mysqli("****""****""****""****");
                        
    $count $mysqli->query("SELECT id FROM notifiche WHERE txn_id = '$txn_id'");
     
                        
    // controllo sull'identificatore della transazione
                        
    if ($mysqli->affected_rows == 0){
                            
    // query per l'inserimento dei dati
                            
    $result $mysqli->query("INSERT INTO notifiche (txn_id) VALUES ('$txn_id')");
                        }
     
                        
    // liberazione della memoria dal risultato della query
                        
    $count->close();
     
                        
    // chiusura della connessione
                        
    $mysqli->close();
     
                }
     
                
    // azione in caso di risposta negativa da parte di PayPal else 
                
    if (strcmp ($res"INVALID") == 0) {
                    
    // è possibile eseguire qualsiasi operazione
            // per esempio compilare un log degli errori o inviare una mail al venditore
                
    }
     
            }
     
            
    // chiusura della sorgente di dati
            
    fclose($fp);
        }
     
        
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    194
    Ho risolto. Ho trovato uno script che usa un approccio diverso per la connessione al socket. Ad ogni modo l'indirizzo corretto per l'uso con sandbox è https://www.sandbox.paypal.com/cgi-bin/webscr
    Grazie lo stesso

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.