【发布时间】:2013-02-26 01:16:09
【问题描述】:
一段时间以来,我一直在尝试让一个简单的 PayPal IPN 模块正常工作,但不断收到来自 LWP::UserAgent 的 400 Bad Request 错误。我不确定为什么会这样。 PayPal 对我很好(我正在使用 IPN 模拟器),我可以在我的应用程序日志中看到该过程。我可以在没有表单内容的情况下通过 LWP::UserAgent 调用 PayPal 验证 URL,并且工作正常,但是一旦包含验证请求内容,我就会收到错误 400。如果有人知道这一点,请告诉我。
-$self->{'_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;
}
【问题讨论】:
-
分别设置一个工作和失败的请求对象,并使用as_string 提供转储。编辑任何非公开数据。
-
周一晚上之前,PayPal 问题一直为沙盒 IPN 提供 HTTP 400 错误。您能否告知错误是否仍在发生或一切正常?
标签: perl paypal paypal-ipn lwp psgi