2013-03-10 6 views
0

Я пытался в течение некоторого времени получить простой модуль 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; 
} 
+0

Настройте рабочий и неудачный объект запроса каждый и дайте дампы с помощью [as_string] (http://p3rl.org/HTTP::Request#r-as_string). Отмените любые непубличные данные. – daxim

+1

Возникла проблема с PayPal, которая обеспечивала ошибку HTTP 400 для IPN Sandbox до вечера понедельника. Не могли бы вы сообщить, если ошибка все еще происходит или все хорошо? –

ответ

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^