2014-09-04 118 views
0

我看了一個教程,做了那個人做的。我有我的index.php以下代碼。本教程中的人收到了一個結果(來自$ result變量),但我什麼也沒得到。Paypal_IPN沒有得到結果?

的var_dump在$結果:

string(0) ""

問題出在哪裏?

<?php 

class Paypal_IPN 
{ 

    public function __construct($mode) 
    { 
     if ($mode == 'live') 
      $this->_url = 'https://www.paypal.com/cgi-bin/webscr'; 
     else 
      $this->_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; 
    } 

    public function run() 
    { 

     $postFields = "cdm=_notify-validate"; 

     foreach ((array)$_POST as $key => $value) 
     { 
      $postFields .= "&$key=".urlencode($value); 
     } 

     $ch = curl_init(); 

     curl_setopt_array($ch, array(
      CURLOPT_URL    => $this->_url, 
      CURLOPT_RETURNTRANSFER => true, 
      CURLOPT_SSL_VERIFYPEER => false, 
      CURLOPT_POST   => true, 
      CURLOPT_POSTFIELDS  => $postFields 
     )); 

     $result = curl_exec($ch); 
     curl_close($ch); 

     $fh = fopen('result.txt', 'w'); 
     fwrite($fh, $result . " -- \n" . $postFields); 
     fclose($fh); 

     var_dump($result); 
    } 

} 

$paypal = new Paypal_IPN('sandbox'); 
$paypal->run(); 

我應該已經收到無效或有效的結果......

+0

您可能需要添加一些錯誤處理你的捲曲執行。可能拋出你不知道的錯誤。 http://php.net/manual/en/function.curl-error.php – Jestep 2014-09-04 13:16:34

回答

0

你有串錯字

$postFields = "cdm=_notify-validate"; 

應該

$postFields = "cmd=_notify-validate";