Paypal PHP IPN集成系统

时间:2014-08-01 09:32:15

标签: php paypal paypal-ipn

网站www.web-preventivi.it,我希望在用户需要在我的网站上订阅时整合paypal付款。我在这个地址有一个IPN监听器,当从PayPal收到正确的url时,脚本只返回VALID,否则返回INVALID。

我正在使用IPN模拟器来查看我的代码是否正常工作,我的代码似乎没有收到来自paypal的整个网址,实际上我试图从我的脚本生成的日志文件中收到这样的代码:www.paypal.com/cgi-bin/webscr/cmd=_notify-validate?var1=value1&var2=value2&etc,但我只在日志中获得:www.paypal.com/cgi-bin/webscr/ cmd = _notify-validate,为什么?

我有一个控制POST字段的foreach循环,并将每个变量分配给urlchecker,但我不这样做?

这是我的错?我必须用paypal做一些事情,或只是整合一些代码?

PS:我的问题只是我的脚本没有收到来自paypal的付款变量,进行了各种测试,但没有

这是我的代码:

<?php

class PayPal_IPN {

    public function __construct($mode = 'live') {
        // Cambia le Opzioni
        //

        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 = "cmd=_notify-validate";

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

        // Richiama Paypal
        $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 . ' -- ' . $postFields);
        fclose($fh);

        echo $result;

    }

}

?>

如果您需要在上次尝试时查看日志文件,请访问www.web-preventivi.it/ppprova/result.txt。非常感谢,我感谢任何帮助

0 个答案:

没有答案