GIF89a;
Direktori : /home/serb/www/chat/inc/classes/paypal/ |
Current File : /home/serb/www/chat/inc/classes/paypal/ipn_cls.php |
<?php class paypal_ipn { var $spvar; var $paypal_post_vars; var $paypal_response; var $timeout; var $error_email; function paypal_ipn($paypal_post_vars) { $this->paypal_post_vars = $paypal_post_vars; $this->timeout = 120; } function send_response() { global $ap_site_options,$ap_paypal_options; /*$paypal_url[url]="https://secure.paypal.com/cgi-bin/webscr"; if($ap_paypal_options[test_mode]) { $paypal_url[url]="https://www.sandbox.paypal.com/cgi-bin/webscr"; }//if($ap_paypal_options[debug_mode]) */ $paypal_url="http://www.paypal.com"; //ssl curl post is not working in this site if($ap_paypal_options[test_mode]) { $paypal_url="http://www.sandbox.paypal.com";//ssl curl post is not working in this site } //$fp = @fsockopen("ssl://"."$paypal_url", 443, &$errno, &$errstr, 120 ); /*$fp = @fsockopen("ssl://"."$paypal_url", 443, $errno, $errstr, 120 ); if (!$fp) { $this->error_out("PHP fsockopen() error: " . $errstr , ""); } else { foreach($this->paypal_post_vars AS $key => $value) { if (@get_magic_quotes_gpc()) { $value = stripslashes($value); } $values[] = "$key" . "=" . urlencode($value); } $response = @implode("&", $values); $response .= "&cmd=_notify-validate"; fputs( $fp, "POST /cgi-bin/webscr HTTP/1.0\r\n" ); fputs( $fp, "Content-type: application/x-www-form-urlencoded\r\n" ); fputs( $fp, "Content-length: " . strlen($response) . "\r\n\n" ); fputs( $fp, "$response\n\r" ); fputs( $fp, "\r\n" ); $this->send_time = time(); $this->paypal_response = ""; // get response from paypal while (!feof($fp)) { $this->paypal_response .= fgets( $fp, 1024 ); if ($this->send_time < time() - $this->timeout) { $this->error_out("Timed out waiting for a response from PayPal. ($this->timeout seconds)" , ""); } } fclose( $fp ); }//if (!$fp) {*/ //cmd=_notify-validate $this->paypal_post_vars[cmd]="_notify-validate"; if($ap_paypal_options[debug_mode]) echo "<BR><BR> paypalurl=$paypal_url<BR><BR>"; $this->paypal_response=$this->ipn_curl_post($paypal_url,$this->paypal_post_vars); //echo $this->paypal_response."DFDDFDFD<BR><BR>"; $this->spvar= "Response url to $paypal_url is $response<BR>Response is $this->paypal_response<BR>"; if($ap_paypal_options[debug_mode]) echo "<BR><BR> $this->spvar<BR><BR>"; }//function send_response() function is_verified() { if( preg_match("/VERIFIED/", $this->paypal_response) ) return true; else return false; } function get_payment_status() { global $ap_site_options; if(!in_array($_SERVER['HTTP_HOST'],$ap_site_options[test_ips])) { return $this->paypal_post_vars['payment_status']; } else //if(!in_array($_SERVER['HTTP_HOST'],$ap_site_options[test_ips])) { return 'COMPLETED'; }//if(!in_array($_SERVER['HTTP_HOST'],$ap_site_options[test_ips])) } function get_amount_paid() { return $this->paypal_post_vars['payment_gross']; } function error_out($message, $em_headers) { $date = date("D M j G:i:s T Y", time()); $message .= "\n\nThe following data was received from PayPal:\n\n"; @reset($this->paypal_post_vars); while( @list($key,$value) = @each($this->paypal_post_vars)) { $message .= $key . ':' . " \t$value\n"; } mail($this->error_email, "[$date] paypay_ipn notification", $message, $em_headers); } function ipn_curl_post($url,$data=array()) { global $HTTP_USER_AGENT,$HTTP_HOST,$ap_site_options; $user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"; $ch = curl_init(); // initialize curl handle curl_setopt($ch, CURLOPT_URL,$url); // set url to post to curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable curl_setopt($ch, CURLOPT_TIMEOUT, 4000); // times out after 4s curl_setopt($ch, CURLOPT_POST, 1); // POST Method if(count($data)>0) { // making string from $data foreach($data as $key=>$value) $values[]="$key=".urlencode($value); $data_string=implode("&",$values); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); // add POST fields } //if(count($data)>0) $myHeader = array( "MIME-Version: 1.0", "Content-type: text/html; charset=iso-8859-1", "Content-transfer-encoding: text", ); //curl_setopt($ch, CURLOPT_HTTPHEADER, $myHeader); //not necessary if(!in_array($_SERVER['HTTP_HOST'],$ap_site_options[test_ips])) { if($ap_paypal_options[debug_mode]) echo "<BR><BR> executing curlto $url with $data_string <BR><BR>"; curl_setopt($ch, CURLOPT_USERAGENT, $HTTP_USER_AGENT);//not necessary $result = curl_exec($ch); // run the whole process if($ap_paypal_options[debug_mode]) echo "<BR><BR> $result<BR><BR>"; //echo $result."<br>$url::"; } else { $result="VERIFIED"; }//if(!in_array($_SERVER['HTTP_HOST'],$ap_site_options[test_ips])) if($ap_paypal_options[debug_mode]) echo "<BR><BR> $result<BR><BR>"; return $result; //contains response from server }//function ipn_curl_post($url,$XPost="") } ?>