Я пытался в течение некоторого времени получить простой модуль IPN PayPal, но продолжаю получать ошибку 400 Bad Request из LWP :: UserAgent. Я не знаю, почему это происходит. PayPal пингует меня отлично (я использую симулятор IPN), и я вижу процесс в своих журналах приложений. Я могу вызывать URL-адрес проверки PayPal через LWP :: UserAgent без содержимого формы, и это работает нормально, но как только я включаю содержимое запроса для проверки, я получаю ошибку 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;
}
Настройте рабочий и неудачный объект запроса каждый и дайте дампы с помощью [as_string] (http://p3rl.org/HTTP::Request#r-as_string). Отмените любые непубличные данные. – daxim
Возникла проблема с PayPal, которая обеспечивала ошибку HTTP 400 для IPN Sandbox до вечера понедельника. Не могли бы вы сообщить, если ошибка все еще происходит или все хорошо? –