The-Arbiter Skrevet 5. november 2011 Del Skrevet 5. november 2011 Heisann! Er det noen som har peiling på IPN-systemet til paypal? Jeg er usikker på hvordan jeg skal få php-scriptet mitt til å kjøre SQL spørringen etter en paypal betaling. Har stressa med dette i mange timer nå. Takker for svar! Legg meg gjerne til på skype om du vil hjelpe: bloodysquito1 Lenke til kommentar
Warz Skrevet 11. november 2011 Del Skrevet 11. november 2011 1. Betaling kommer inn (paypal sender deg en txn_id). 2. Du må sjekke mot en tabell om betalingen har blitt fullført før, da søker du tabellen etter txn_id som matcher den du fikk fra paypal. 3. Hvis betalingen ikke er gjort før oppdaterer du tabellen med txn_id. På denne måten sikrer du systemet. Her er mitt skript som sjekker om betalingen er godkjent: $req = 'cmd=_notify-validate'; foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $req .= "&$key=$value"; } $socket = $this->socket = 'ssl' ? 'https' : 'http'; $url = $socket.'://www.'. (Vars::$conf->payments->live ? '': 'sandbox.' ).'paypal.com/cgi-bin/webscr'; $ch = curl_init(); // Starts the curl handler curl_setopt($ch, CURLOPT_URL,$url); // Sets the paypal address for curl curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // Returns result to a variable instead of echoing curl_setopt($ch, CURLOPT_TIMEOUT, 15); // Sets a time limit for curl in seconds (do not set too low) curl_setopt($ch, CURLOPT_POST, 1); // Set curl to send data using post curl_setopt($ch, CURLOPT_POSTFIELDS, $req); // Add the request parameters to the post curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_USERAGENT, 'cURL/PHP'); $result = curl_exec($ch); // run the curl process (and return the result to $result curl_close($ch); if (strcmp ($result, "VERIFIED") == 0) // It may seem strange but this function returns 0 if the result matches the string So you MUST check it is 0 and not just do strcmp ($result, "VERIFIED") (the if will fail as it will equate the result as false) { $qr1 = $this->db->query("SELECT transactionid FROM orders_successful WHERE transactionid = '".mysql_real_escape_string($this->txn_id)."'"); $nr = $this->db->numRows($qr1); } else { return false; } if($this->payment_status == "Completed" && $this->receiver_email == Vars::$conf->payments->pp_user && $this->mc_currency == "USD" && $nr == 0) { return true; } return false; 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå