Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    PayPal-PHP-Notifica di pagamento.

    C'è qualcuno che ha provato la soluzione in PHP del sistema di notifica di pagamento PayPal??

    https://www.paypal.com/it/cgi-bin/we.../rec/ipn-intro

    Ho provato diverse volte ma senza risultati.
    Ho copiato il codice da loro fornito, ho creato una pagina php dove ho ficcato tale codice e l'ho denominata "paypal.php", ho mirato il ritorno del pagamento direttamente su quella pagina ma nn succede nulla??
    Questo è il codice:...... che è il cmd??
    ______________________________

    // leggi il post del sistema PayPal e aggiungi cmd
    $req = 'cmd=_notify-validate';

    foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
    $req .= "&$key=$value";
    }

    // reinvia al sistema PayPal per la convalida
    $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 ('www.paypal.com', 80, $errno, $errstr, 30);

    // assegna variabili inviate a variabili locali
    $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'];

    if (!$fp) {
    // HTTP ERROR
    } else {
    fputs ($fp, $header . $req);
    while (!feof($fp)) {
    $res = fgets ($fp, 1024);
    if (strcmp ($res, "VERIFIED") == 0) {
    // controlla che payment_status sia Completed
    // controlla che txn_id non sia stato già elaborato
    // controlla che receiver_email sia il tuo indirizzo email PayPal principale
    // controlla che payment_amount/payment_currency siano corretti
    // elabora pagamento
    }
    else if (strcmp ($res, "INVALID") == 0) {
    // registra investigazione manuale
    }
    }
    fclose ($fp);
    }
    ?>

    _______________________________________

    Se qualcuno ha già fatto pratica e magari positiva, sarebbero graditissime info!!

    Ciao ciao

    JR

  2. #2
    Prestiamoci una spalla a vicenda per piangere.

    Per un sito che si arroga di essere usabile anche da chi non programma, é un vero casino.

    Qualcosa su cmd te lo posso dire:
    Metti
    codice:
    <input type="hidden" name="cmd" value="_notify-validate">
    nel modulo da inviare a paypal (il pulsante "paga")
    serve per accedere alla pagina nascosta di notifica immediata.

    fsockopen dovrebbe servire per reinviare le variabili con metodo POST per la seconda volta a paypal.

    Altro non so.

    AIUTO!
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  3. #3
    Questo script, che in locale reinvia tutte le variabili in post,
    con paypal restituisce un impietoso
    INVALID

    codice:
    $data = 'cmd=_notify-validate';
    foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
    $data .= "&$key=$value";
    
    $sock = fsockopen("www.sandbox.paypal.com", 80, $errno, $errstr, 30); 
    if (!$sock) die("$errstr ($errno)\n"); 
    fwrite($sock, "POST /cgi-bin/webscr HTTP/1.0\r\n"); 
    fwrite($sock, "Host: www.sandbox.paypal.com\r\n"); 
    fwrite($sock, "Content-type: application/x-www-form-urlencoded;\r\n"); 
    fwrite($sock, "Content-length: " . strlen($data) ."&\r\n"); 
    fwrite($sock, "Accept: */*\r\n"); 
    fwrite($sock, "\r\n"); 
    fwrite($sock, "$data\r\n"); 
    fwrite($sock, "\r\n"); 
    $headers = ""; 
    while ($str = trim(fgets($sock, 4096))) 
    $headers .= "$str\n"; 
    
    echo "\n"; 
    
    $body = ""; 
    while (!feof($sock)) 
    $body .= fgets($sock, 4096); 
    
    fclose($sock); 
    echo $body;
    Possibile che nessuno si sia mai trovato a che fare con paypal?
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.