2013-03-10 87 views
0

我一直试图获得一个简单的PayPal IPN模块工作,但不断从LWP :: UserAgent得到一个400错误的请求错误。我不知道为什么会发生这种情况。贝宝给我打了个电话(我使用的是IPN模拟器),我可以在我的应用程序日志中看到这个过程。我可以通过LWP :: UserAgent在没有表单内容的情况下调用PayPal验证URL,并且工作正常,但是一旦我包含请求内容以进行验证,就会收到错误400.如果有人知道此信息,请告诉我。PSGI,LWP :: UserAgent&PayPal IPN

- $自我 - > { '_ REQ'}是类型Plack::Request

my $url  = $test ? $VERIFY_URL_DEV : $VERIFY_URL; 
my $ua  = new LWP::UserAgent(); 
my $req  = new HTTP::Request('POST', $url); 
my $query = 'cmd=_notify-validate&' . $self->{'_req'}->raw_body; 

$req->content_type('application/x-www-form-urlencoded'); 
$req->content($query); 

my $res = $ua->request($req); 

if ($res->is_error) 
{ 
    # HTTP error, indicate an invalid notification. 
    warn "There was an error validating this IPN."; 
    warn $res->message; 
    warn $res->error_as_HTML; 
    return 0; 
} 
+0

设置一个工作和失败的请求对象,并提供[as_string](http://p3rl.org/HTTP::Request#r-as_string)转储。编辑任何非公开数据。 – daxim 2013-03-11 06:44:51

+1

有一个PayPal问题,直到星期一晚上才为沙盒IPN提供HTTP 400错误。你能否建议如果错误仍在发生或者一切正常? – 2013-03-13 14:46:36

回答

0

问题是在贝宝的一面。当我在沙箱中测试时,不是IPN模拟器,它工作正常。这非常令人沮丧。