在网店快速结帐后,我如何进入paypal确认付款?PHP

在网店快速结帐后,我如何进入paypal确认付款?PHP,php,curl,paypal,checkout,token,Php,Curl,Paypal,Checkout,Token,当你点击任何网店上的快速结帐PayPal按钮时,它会将你重定向到一个特定的PayPal登录链接,用于支付订单 我已经到处搜索了3天了,寻找一个简单的paypal php curl脚本,从这一步开始让你登录,并确认付款,但是没有找到任何东西。我只找到了从paypal主页登录的脚本,当你中断paypal流程时,这些脚本将无法工作 我发现这是不可能使用API的,所以它必须由CURL来完成 我之所以要求这样做,是因为我经营一个dropshipping网站,并希望自动化某些步骤,如下订单和付款。这方面的工

当你点击任何网店上的快速结帐PayPal按钮时,它会将你重定向到一个特定的PayPal登录链接,用于支付订单

我已经到处搜索了3天了,寻找一个简单的paypal php curl脚本,从这一步开始让你登录,并确认付款,但是没有找到任何东西。我只找到了从paypal主页登录的脚本,当你中断paypal流程时,这些脚本将无法工作

我发现这是不可能使用API的,所以它必须由CURL来完成

我之所以要求这样做,是因为我经营一个dropshipping网站,并希望自动化某些步骤,如下订单和付款。这方面的工作代码不仅对我有帮助,而且对所有希望以某种形式自动购买的人都有帮助

我将粘贴我制作的非工作脚本,这只会给我一条来自paypal的“抱歉-您的上一个操作无法完成”消息,如果这有任何帮助的话



$agent = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8";
$header[] = "text/html; charset UTF-8";
$url = $_GET[link];
// $url = "https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&&token=EC-EXAMPLE7839244";
$email = urlencode("email");
$password = urlencode("password");
$cookies = "cookies.txt";

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_REFERER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_URL, $url);

// HIT LOGINPAGE
$login = curl_exec ($ch);
// PRINT LOGINPAGE
var_dump($login);

// GET LOGIN-LINK AND SET POSTFIELDS
preg_match("/merchantpaymentweb\?cmd\=\_flow(.*?)\"/", $login, $output);
$link = "https://www.paypal.com/c2/cgi-bin/merchantpaymentweb?cmd=_flow$output[1]";
// PRINT LOGIN-LINK
echo "LINK: $link
"; preg_match("/CONTEXT\" value=\"(.*?)\"/", $login, $output); $CONTEXT = $output[1]; $postfields = "CONTEXT=$CONTEXT&close_external_flow=false&cmd=_flow&external_close_account_payment_flow=payment_flow&flow_name=xpt/Merchant/hostedpayments/Login&flow_name=xpt/Merchant/hostedpayments/Login&form_charset=UTF-8&id=&login.x=Log+In&login_email=".$email."&login_password=".$password."&myAllTextSubmitID="; echo "
POSTFIELDS : \"$postfields\"
"; curl_setopt($ch, CURLOPT_URL, $link); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, $postfields); // POST FORM, fails, gives "Sorry - Your last action could not be completed" message $should_be_logged_in_now = curl_exec($ch); var_dump($should_be_logged_in_now);

$agent=“用户代理:Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:1.8.0.8)Gecko/20061025 Firefox/1.5.0.8”;
$header[]=“文本/html;字符集UTF-8”;
$url=$\u获取[链接];
//$url=”https://www.paypal.com/cgi-bin/webscr?cmd=_express-签出和标记=EC-EXAMPLE7839244”;
$email=urlencode(“电子邮件”);
$password=urlencode(“密码”);
$cookies=“cookies.txt”;
$ch=curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_VERBOSE,1);
curl_setopt($ch,CURLOPT_头,0);
curl_setopt($ch,CURLOPT_REFERER,1);
curl_setopt($ch,CURLOPT_USERAGENT,$agent);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookies);
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookies);
curl_setopt($ch,CURLOPT_URL,$URL);
//点击登录页面
$login=curl\u exec($ch);
//打印登录页
变量转储($login);
//获取LOGIN-LINK并设置POSTFIELDS
preg\u match(“/merchantpaymentweb\?cmd\=\\流量(.*?\”/”,$login,$output);
$link=”https://www.paypal.com/c2/cgi-bin/merchantpaymentweb?cmd=_flow$output[1]”;
//打印登录链接
回声“链接:$LINK
”; 预匹配(“/CONTEXT\”值=\”(*?\”/”,$login,$output); $CONTEXT=$output[1]; $postfields=“CONTEXT=$CONTEXT&close\u external\u flow=false&cmd=\u flow&external\u close\u account\u payment\u flow\u name=xpt/Merchant/hostedpayments/Login&form\u charset=UTF-8&id=&Login.x=Log+In&Login\u email=“.$email.”和Login\u password=“.$password=“.$password.”myalltexsubmitd=“”; 回显“
POSTFIELDS:\“$POSTFIELDS\”
”; curl_setopt($ch,CURLOPT_URL,$link); 卷曲设置($ch,卷曲设置桩,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$POSTFIELDS); //POST表单失败,显示“抱歉-您的上一个操作无法完成”消息 $should\u logged\u in\u now=curl\u exec($ch); var\u dump($should\u logged\u in\u now);
我对使用贝宝不太熟悉。我停止使用它,就像4年前一样,因为我有退款


您可能需要查看付费服务。这可能是你想要的,而不是处理CURL&PayPal,因为你提到了使用API。

我在x.com论坛上问过PayPal API是否可以做到这一点,但那里的一位工作人员给出了否定的回答:/我不确定你想要的是否可能实现。如果我是贝宝上这类事情的主角,我绝对不会允许这样的行为。通过使用PayPal PRO API,您可以使事情变得更简单。如果他们没有这样的特性,我不认为使用CURL就可以在没有任何安全问题的情况下实现它。最后,它是一个网络商店,安全性对您很重要。应该可以模拟手动登录并按下确认按钮。一切皆有可能,不是吗。可以从frontpage登录,为什么不应该从签出流登录呢。安全不是我这边的问题,因为我将在我的后端系统中手动单击“从网站订购并支付项目”按钮。对于所有像我这样靠dropshipping为生并每天购买50多种不同项目的人,我确信有人做到了这一点。我愿意为工作剧本付钱。我不是说,这根本不可能。我的意思是,如果我是PayPal授权的技术人员,我绝对不会让PayPal成员因为可能带来的安全问题而采取这样的行动。如果你愿意付费,你可以在这里查看,甚至尝试与作者联系。似乎他对PayPal很在行。PayPal会将交易通知到您指定的任何url,您无需查询IPN:IPN不是仅用于对您自己帐户上发生的事情作出反应吗?我在链接中读到的内容支持这一点。当你在网上商店下订单并按下快速结帐按钮时,你的帐户中不会发生任何事情。我说的是你,在这里从别人的网店买东西,也许我是不洁的,那么你就是做不到。