/** * Validates the incoming data. */ function validateIPN($data) { // parse the blank URL $url = plgPaymentBlankHelper::buildBlankUrl(); $this->blank_url = $url; $url_parsed = parse_url($url); // generate the post string from the _POST vars aswell as load the // _POST vars into an arry so we can play with them from the calling // script. // append ipn command // open the connection to blank $fp = fsockopen($url_parsed['host'], "80", $err_num, $err_str, 30); // $fp = fsockopen ($this->blank_url, 80, $errno, $errstr, 30); if (!$fp) { // could not open the connection. If loggin is on, the error message // will be in the log. $this->last_error = "fsockopen error no. {$errnum}: {$errstr}"; plgPaymentBlankHelper::log_ipn_results(false); return false; } else { $post_string = ''; foreach ($data as $field => $value) { $this->ipn_data["{$field}"] = $value; $post_string .= $field . '=' . urlencode(stripslashes($value)) . '&'; } $post_string .= "cmd=_notify-validate"; // Post the data back to blank fputs($fp, "POST {$url_parsed['path']} HTTP/1.1\r\n"); fputs($fp, "Host: {$url_parsed['host']}\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: " . strlen($post_string) . "\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $post_string . "\r\n\r\n"); // loop through the response from the server and append to variable while (!feof($fp)) { $this->ipn_response .= fgets($fp, 1024); } fclose($fp); // close connection } if (eregi("verified", $post_string)) { // Valid IPN transaction. plgPaymentBlankHelper::log_ipn_results(true); return true; } else { // Invalid IPN transaction. Check the log for details. $this->last_error = 'IPN Validation Failed.'; plgPaymentBlankHelper::log_ipn_results(false); return false; } }
function onTP_Storelog($data) { $log = plgPaymentBlankHelper::Storelog($this->_name, $data); }