PSGI, LWP::UserAgent и PayPal IPN

Некоторое время я пытался заставить работать простой модуль PayPal IPN, но продолжаю получать ошибку 400 Bad Request от LWP::UserAgent. Я не уверен, почему это происходит. PayPal нормально проверяет меня (я использую симулятор IPN), и я вижу этот процесс в журналах своего приложения. Я могу позвонить по URL-адресу проверки PayPal через LWP:: UserAgent без содержимого формы, и это работает нормально, но как только я включаю содержимое запроса для проверки, я получаю ошибку 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;
}

1 ответ

Проблема была на стороне PayPal. Когда я тестировал в песочнице, а не на симуляторе IPN, он работал нормально. Это было очень сложно.

Другие вопросы по тегам