Пример #1
0
 /**
  * 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;
     }
 }
Пример #2
0
 function onTP_Storelog($data)
 {
     $log = plgPaymentBlankHelper::Storelog($this->_name, $data);
 }