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, он работал нормально. Это было очень сложно.