Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-11-2013, 17:56   #1
oracle74
Junior Member
 
Iscritto dal: Oct 2011
Messaggi: 2
Problema IPN Paypal

Ciao a tutti, oggi è sorto un problema per quanto riguarda l'IPN che ho scritto per intercettare le operazioni Paypal in un ecommerce che ho realizzato. La struttura attuale del file è questa:

Codice PHP:
// intercetta le variabili IPN inviate da PayPal
    
$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 .= "Host: www.paypal.com\r\n"//$header .= "Host: www.sandbox.paypal.com\r\n"; per testing
    
$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.paypal.com'443$errno$errstr30); //$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
    // converte le variabili inviate da IPN in variabili locali
    
$txn_id filter_var($_POST['txn_id'], FILTER_SANITIZE_STRING);
    
$payment_status filter_var($_POST['payment_status'], FILTER_SANITIZE_STRING);
    
$receiver_email filter_var($_POST['receiver_email'], FILTER_SANITIZE_EMAIL);
    
$payer_email filter_var($_POST['payer_email'], FILTER_SANITIZE_EMAIL);
    
$first_name filter_var($_POST['first_name'], FILTER_SANITIZE_STRING);
    
$last_name filter_var($_POST['last_name'], FILTER_SANITIZE_STRING);

    
$address_name filter_var($_POST['address_name'], FILTER_SANITIZE_STRING);
    
$address_street filter_var($_POST['address_street'], FILTER_SANITIZE_STRING);
    
$address_city filter_var($_POST['address_city'], FILTER_SANITIZE_STRING);
    
$address_state filter_var($_POST['address_state'], FILTER_SANITIZE_STRING);
    
$address_zip filter_var($_POST['address_zip'], FILTER_SANITIZE_STRING);
    
$telefono filter_var($_POST['contact_phone'], FILTER_SANITIZE_STRING);
    
$codice_paese filter_var($_POST['address_country_code'], FILTER_SANITIZE_STRING);
    
$spese_spedizione filter_var($_POST['mc_handling'], FILTER_SANITIZE_STRING);
    
$totale filter_var($_POST['mc_gross'], FILTER_SANITIZE_STRING);
    
$num_prodotti filter_var($_POST['num_cart_items'], FILTER_SANITIZE_STRING);
    
// verifica l'apertura della connessione al socket
    
if (!$fp) {
        
// se la connessione non avviene l'esecuzione dello script viene bloccata
        
exit();

    } 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) {
                
// controllo sull'email del venditore
                
if($receiver_email == PAGAMENTI_EMAIL_PAYPAL){
            
$query ORDINE_CODICE."='".$txn_id."'";
                   
$transazione db_select('*',TABELLA_ORDINI,$query,'','','','');
                    
// controllo sull'identificatore della transazione
                    
if (mysql_num_rows($transazione) == 0){ //registro l'ordine nel database
                      /* Qui registro l'ordine nel database ed invia email di conferma al
                          venditore e all'acquirente. */
                  
}
              }

            }           

            if (
strcmp ($res"INVALID") == 0) {
                      
/* Qui invio un email che segnala che c'è stato un errore nell'operazione. */
            
}
        }
        
// chiusura della sorgente di dati
        
fclose($fp);
    } 
Il problema che si è verificato è che strcmp ($res, "VERIFIED") è risultato uguale a 0, ovvero Paypal ha riscontrato l'invalidità dei dati. Ora le cose strane sono tre:

1) Non è la prima volta che acquistano con Paypal dal sito e non era mai successa una cosa del genere

2) Il pagamento risulta correttamente effettuato! Il cliente ha infatti fornito come prova la ricevuta di avvenuto pagamento inviata da Paypal, e lo stesso venditore ha confermata di aver ricevuto il denaro

3) Ho effettuato vari test con Sandbox e l'errore non capita mai! (quindi non possono essere dati discordanti o errati, perché altrimenti suppongo che l'errore si verificherebbe anche in Sandbox, no?)


Ora sono parecchio confuso, vi chiedo aiuto perché ovviamente non voglio aver capito male il funzionamento e fare pasticci con i pagamenti (essendo un ecommerce non è decisamente il caso...)


Grazie mille per l'aiuto
oracle74 è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2013, 17:59   #2
oracle74
Junior Member
 
Iscritto dal: Oct 2011
Messaggi: 2
Scusatemi ho dimenticato di mettere [php] nel titolo del post!
oracle74 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
La Cina potrebbe puntare con maggiore de...
Un clamoroso errore strategico: il nuovo...
Cos’è il nuovo cartello del "...
HP: gli attacchi con l'IA puntano su vel...
Acer compie 50 anni e si trasforma: dall...
La rete elettrica USA funziona solo a me...
La Corte Costituzionale albanese: 'Il ba...
Secondo trailer del nuovo anime di Ken i...
La guerra tra Russia e Ucraina arriva co...
KadNap: il botnet che ha infettato 14.00...
Il cloud è sempre più cent...
Lisuan svela la GPU gaming LX 7G106: deb...
Amazon piena di offerte, ma queste sono ...
Wi-Fi veloce: router e mesh Huawei super...
La retrocompatibilità di Project ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v