我正在努力争取在YouTube上集成Paypal Watched上的许多教程,但是还没有解决我的问题,即使在堆栈溢出中也有类似的问题,但是它们都不适合我。Paypal IPN总是返回无效请帮助。
这是我的listener.php
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header('Location: index.php');
exit();
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://ipnpb.sandbox.paypal.com/cgi-bin/webscr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "cmd=_notify-validate&" . http_build_query($_POST));
$response = curl_exec($ch);
curl_close($ch);
file_put_contents("test.txt", $response);
有些人建议我更改付款日期并将其设置为null或空白(我也尝试过),但这对我也不起作用。
谢谢!
答案 0 :(得分:0)
我从没有遇到过这个问题,但是不得不对我的代码进行一些更改,并且正在使用IPN测试工具,并开始获取无效消息,而不是成功的电子邮件通知。即使我的代码使用urldecode和urlencode正确获取和发送测试工具也将失败,但是实时IPN将成功!!! 我的一些代码:
$req = 'cmd=_notify-validate';
if(function_exists('get_magic_quotes_gpc')) {
$get_magic_quotes_exists = true;
}
foreach ($myPost as $key => $value) {
if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1) {
$value = urlencode(stripslashes($value));
} else {
$value = urlencode($value);
}
$req .= "&$key=$value";
}
因此,为了避开表单底部“ Show All”底部的测试工具中的无效消息,请找到Auction_closing_date,其值应类似于“ Sat Mar 23 2019 09:34:11 GMT + 0000”,并在我的情况下在GMT之后用空格替换“ +”,这将允许您成功使用IPN工具,或者至少在我的情况下可以使用。祝你好运