PayPal cookie是否与IP地址相关联?

时间:2009-12-03 10:05:21

标签: php curl paypal

我一直在尝试使用cur来访问PayPal支付授权网站。

e.g。

...
   $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 :(得分:0)

CURL内置了对cookie的支持(如您所知)。但它很棘手。在我宣布选项

之前,我还没有管理cookie
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

第三个参数是存储cookie的文件的名称 - 最好是在temp文件夹中。也许你应该尝试这种方法。

有了这个,重定向工作“自动”。

答案 1 :(得分:0)

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开始会话,以便他们使用生成的cookie设置您的服务器IP地址。