ipn listener paypal

时间:2013-02-21 15:54:52

标签: php paypal-ipn

我正在研究简单的购物车,一个问题是让我疯狂的IPN监听器无法正常工作

当我付款时,我会被重定向回感谢页面并打印出这些值。

thankyou.php下面的帖子打印出来,并且还有很多帖子变量。

[address_status] => confirmed

[payment_status] => Completed

[payer_status] => verified

问题在于我的IPN监听器无法正常工作。

<input type="hidden" name="notify_url" value="http://mysqlphp.uphero.com/paypal_ipn.php">

这是我的paypal_ipn.php上的脚本:

// Check to see there are posted variables coming into the script

    if ($_SERVER['REQUEST_METHOD'] != "POST") 
    die ("No Post Variables"); ------> 

// Initialize the $req variable and add CMD key value pair

    $req = 'cmd=_notify-validate';
    // Read the post from PayPal
    foreach ($_POST as $key => $value) {
        $value = urlencode(stripslashes($value));
        $req .= "&$key=$value";
    }

    $url = "https://www.sandbox.paypal.com/cgi-bin/webscr";

    $curl_result=$curl_err='';

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded", "Content-Length: " . strlen($req)));
    curl_setopt($ch, CURLOPT_HEADER , 0);   
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    $curl_result = @curl_exec($ch);
    $curl_err = curl_error($ch);
    curl_close($ch);

    $req = str_replace("&", "\n", $req); 

// Check that the result verifies and sending email before doing anything i just wanted to make sure that this script is working but i don't receive an email

    if (strpos($curl_result, "VERIFIED") !== false) {
        $req .= "\n\nPaypal Verified OK";
        mail("eagleeyes26@hotmail.com", "IPN interaction verified", "$req", "eagleeyes26@hotmail.com" );


}

1 个答案:

答案 0 :(得分:0)

我找到了这个解决方案

http://microlabs.altervista.org/paypal-ipn-listener/

并且工作正常,功能自动电子邮件附带下载购买,意大利语网站,但你可以翻译页脚