网站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。非常感谢,我感谢任何帮助