Paypal ipn这个部分有什么问题

时间:2013-12-18 17:57:27

标签: php sql paypal

我让Paypal ipn工作了。但我改变了一些东西,现在我不记得我改变了什么。我使用一系列INSERTS来监视ipn进程失败的位置。看起来它没有通过我的ipn的这一部分。这是代码:

    fputs ($fp, $header . $req);
    while (!feof($fp)) {
        $res = fgets ($fp, 1024);
        if (strcmp($res, "VERIFIED") == 0) {

为什么我的Paypal ipn无效?

1 个答案:

答案 0 :(得分:0)

我上周在paypal ipn上也遇到了很多困难,下面是我可以参考的工作代码

        header('HTTP/1.1 200 OK'); 


    $req = 'cmd=_notify-validate';               

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


    $fp = fsockopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);

        fputs($fp, "POST /cgi-bin/webscr HTTP/1.1\r\n"); 
        fputs($fp, "Host: www.sandbox.paypal.com\r\n"); 
        fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); 
        fputs($fp, "Content-length: ".strlen($req)."\r\n"); 
        fputs($fp, "Connection: close\r\n\r\n"); 
        fputs($fp, $req. "\r\n\r\n"); 

        $ipn_response = '';

    while (!feof($fp)) {                     
      $ipn_response .= fgets($fp, 1024);              
    }
    fclose($fp);

   if ( eregi("VERIFIED",$ipn_response) ) {}