php - 通过 Curl (PHP) 登录 Paypal

标签 php curl paypal

当我尝试通过 Curl 登录 Paypal 时出现问题,我认为我已正确设置所有帖子字段,但它没有提供任何输出。想接收登录后的页面内容,但是没有实际输出。

代码:

    $loginUrl = 'https://www.paypal.com/en/cgi-bin/webscr?cmd=_login-submit&dispatch=5885d80a13c0db1f8e263663d3faee8d66f31424b43e9a70645c907a6cbd8fb4';

    //init curl
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $loginUrl);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(

        'User-agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0',
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-language: nl,en-US;q=0.7,en;q=0.3',
        'accept-encoding: gzip, deflate'));

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'login_email='.urlencode($username).'&login_password='.urlencode($password).'&submit=inloggen&browser_name=Firefox&browser_version=32&browser_version_full=32.0&operating_system=Windows&bp_mid='.urlencode('v=1;a1=na~a2=na~a3=na~a4=Mozilla~a5=Netscape~a6=5.0 (Windows)~a7=20100101~a8=na~a9=true~a10=Windows NT 6.3; WOW64~a11=true~a12=Win32~a13=na~a14=Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0~a15=false~a16=nl~a17=na~a18=www.paypal.com~a19=na~a20=na~a21=na~a22=na~a23=1600~a24=900~a25=24~a26=860~a27=na~a28=Wed Oct 29 2014 17:56:23 GMT+0100~a29=1~a30=na~a31=yes~a32=na~a33=na~a34=no~a35=no~a36=yes~a37=no~a38=online~a39=no~a40=Windows NT 6.3; WOW64~a41=no~a42=no~&').'bpks1='.  urlencode('v=1;l=8;Di0:141497Ui0:99Di1:182').'&bpks2=&bpks3=');
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $content = curl_exec($ch);

    exit(var_dump($content)); // OUTPUT: string(26) ▒▒";

我已经在其他网站上成功尝试过了,所以我不知道为什么这不起作用?任何建议将不胜感激。

最佳答案

试试这个

<?php

$ch = curl_init();
//Header
curl_setopt($ch, CURLOPT_URL, "https://www.paypal.com/pl/cgi-bin/webscr?cmd=_login-submit&dispatch=5885d80a13c0db1f8e263663d3faee8de62a88b92df045c56447d40d60b23a7c");
//curl_setopt($ch, CURLOPT_PROXY, $proxy); 
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return server response
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.6 (KHTML, like Gecko) Chrome/16.0.897.0 Safari/535.6');
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: 127.0.0.1", "HTTP_X_FORWARDED_FOR: 127.0.0.1")); 


curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookieJar.txt'); // save cookie file 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_REFERER, 'https://www.paypal.com');
curl_setopt ($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_POST, 1); // use post data

$post = array(
    "login_cmd" => null,
    "login_params" => null,
    "login_email" => "test",
    "login_password" => "test",
    "submit.x" => "login",
    //"auth" => "AOeCYVv0IxkugC2Pyz2AhTaW2P7hWuy5w9FoeuyB48gjjJZN3mTtuL79Tzs9dY.CF",
    "form_charset" => "UTF-8",
    "browser_name" => "Chrome",
    "browser_version" => "537.36",
    //"browser_version_full" => "40.0.2214.115",
    //"operating_system" => "Windows",
);

$post = http_build_query($post);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

$data = curl_exec($ch);
if(curl_errno($ch))
{
echo 'error:' . curl_error($ch);
}
curl_close($ch);

print_r($data);


?>

关于php - 通过 Curl (PHP) 登录 Paypal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26865408/

相关文章:

php - Symfony 中允许空值但不允许空字符串

php - 使用 CURL 向 Web 服务器发送 XML post 请求

ruby-on-rails - 如何使用打开的 "Pay with a credit or debit card"选项卡打开 PayPal 结账?

php - 如何使用mysql从php中的jquery自动完成框获取字符串数据

php - 在 Objective C 中从 URL 下载 JSON 的简单方法

c++ - C++ curl如何使用?

php - 如何将通知 url 添加到 REST API paypal?

payment - 具有定期付款的 ExpressCheckout -- 找不到解决方案

php - Django 可以为我的 PHP 应用程序的现有架构进行自动管理吗?

php - 接收失败 : Connection was reset in Curl PHP