Связаны ли файлы cookie PayPal с IP-адресом? - PullRequest
0 голосов
/ 03 декабря 2009

Я экспериментировал с curl для доступа к сайту авторизации платежей PayPal с использованием PHP.

например.

...
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
   curl_setopt($ch, CURLOPT_HEADER, true);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $nvp);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   $res = curl_exec ($ch);

   preg_match_all('/Set-Cookie: .*/', $res, $cookieMatches);

   foreach ($cookieMatches[0] as $cookieMatch)
      header($cookieMatch);

   preg_match('/Location: .*/', $res, $locMatches);
   header($locMatches[0]);

   header('Vary: Accept-Encoding');
   header('Strict-Transport-Security: max-age=500');
   header('Transfer-Encoding: chunked');
   header('Content-Type: text/html');

Принцип заключается в простом отражении исходного перенаправления (я уверен, что есть более простой способ сделать это). Тем не менее, ответ от PayPal указывает на какую-то ошибку cookie.

Я догадываюсь, что cookie каким-то образом связан с исходным компьютером. Кто-нибудь может это подтвердить, или я просто упускаю что-то очевидное!

Ответы [ 2 ]

0 голосов
/ 25 октября 2017
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
//SAVE THE COOKIES
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
USE THE COOKIES
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1');
// Follow Where the location will take you, maybe you catch the issue.

Поскольку он работает в браузере, он должен работать с использованием CURL, если только они не используют JavaScript для установки файлов cookie. даже если они используют файлы cookie в зависимости от IP-адреса, попробуйте начать сеанс с начала использования curl, чтобы они установили IP-адрес вашего сервера с помощью созданных файлов cookie.

0 голосов
/ 03 декабря 2009

CURL имеет встроенную поддержку файлов cookie (как вы знаете). Но это было сложно. Я не управлял файлами cookie, пока не объявил опцию

curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

Третий параметр - это имя файла, в котором хранятся файлы cookie - желательно во временной папке. Может быть, вы должны просто попробовать этот подход.

При этом перенаправления работают "автоматически".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...