PayPal:_notify-validate始终返回INVALID

时间:2015-04-23 14:41:12

标签: php paypal paypal-ipn paypal-sandbox shopping-cart

我无法让脚本从PayPal返回正确的值。我正在尝试验证付款,但我似乎无法从PayPal(实时或在沙箱中)获得VERIFIED响应。这是我的脚本的内容:

$verify_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_notify-validate&' . http_build_query( $_POST );
$response = file_get_contents( $verify_url );

我不知道如何检查添加到查询中的$ _POST数据是否有效,所以我不知道出了什么问题。我已经尝试了PayPal GitHub存储库中的代码并收到相同的结果(它似乎访问了相同的地址)。我也试过

$vars = array();
$vars[] = 'cmd=_notify-validate';
foreach ($_POST as $key=>$field) {
    if(!empty($field))
        $vars[] = "$key=".urlencode(stripslashes($field));
}
$verify_url2 = 'https://www.sandbox.paypal.com/cgi-bin/webscr?'.implode('&',$vars);
$response2 = file_get_contents( $verify_url2 );

$raw_post_data = file_get_contents('php://input');
$verify_url3 = 'https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_notify-validate&' . $raw_post_data;
$response3 = file_get_contents( $verify_url3 );

似乎从同一结果网址收到相同的回复。有什么地方我可以测试IPN消息,以确保我至少得到正确的变量?我刚刚达到了测试这个脚本所能做的极限,并且在2天内没有取得任何进展。

此外,PayPal中是否有任何特定设置我可能需要设置才能使此脚本按预期工作?我从来没有为其他网站设置任何内容,但我确实阅读了一些帖子,其中提到为IPN消息设置字符编码(我已将其设置为UTF-8)。

感谢。

0 个答案:

没有答案