Ciao,
scusa se sembro pignolo, ma dobbiamo essere chiari per cercare di risolvere il problema.
La funzione ipn di paypal è una funzione che contatta, a transazione avvenuta, un tuo codice (per esempio ipn.php) che fa scattare una serie di eventi tipo aggiornamento del db ed invio di email.
Tale codice non c'entra nulla con la pagina in cui viene reindirizzato il cliente da paypal a pagamento avvenuto (per esempio grazie.php).
La prima ti garantisce che il pagamento sia effettivamente andato a buon fine (perché è paypal che ti invia mediante POST data dei codici precisi con delle chiavi ad hoc,se ben ricordo) mentre la seconda pur potendo far scattare diversi eventi potrebbe in relatà essere chiamata da chiunque senza fornirti alcuna certezza di pagamento.
Nel form di acquisto ci devono essere quindi due campi:
<input type="hidden" name="return" value="http://www.miosito/grazie.php">
<input type="hidden" name="notify_url" value="http://www.miosito/ipn.php">
con ovvio significato di entrambi.
Detto ciò, mi confermi che la notifica ***ipn verificato ***ti giunge dall'equivalente di ipn.php piuttosto che da grazie.php?