2011-04-18 12 views
1

當您點擊任何網店上的Express Checkout PayPal按鈕時,它會將您重定向到特定的PayPal登錄鏈接,以支付訂單。我怎樣才能在網上商店快速結帳後進入貝寶確認付款? PHP

我一直在尋找一個簡單的PayPal php curl腳本的高和低3天,從這一步登錄你,並確認付款,但一直沒能找到任何東西。我只找到了從貝寶的主頁登錄你的腳本,這不會在你打破貝寶流程時起作用。

我發現它不可能爲此使用API​​,所以它必須由CURL完成。

我問這個,因爲我運行一個dropshipping網站,並想自動化某些步驟,如下單和支付訂單。這樣的工作代碼不僅對我有幫助,而且都希望以某種形式自動化購買。

我會貼上我犯非工作腳本,它只是給了我 - 貝寶「對不起,你的最後一個動作不能完成」的消息,如果可以以任何方式在所有幫助..



$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);
+0

paypal通知您的交易到您指定的任何網址,您不需要查詢它們 – 2011-04-18 00:34:21

+0

我沒有明白你的意思。 – jagarock 2011-04-18 00:45:29

+0

IPN:https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNIntro – 2011-04-18 03:25:30

回答

0

我不太熟悉PayPal。由於我的退款,我4年前停止使用它。

您可能想檢查PayPal Pro API這是一項付費服務​​。這可能是你正在尋找,而不是處理CURL & PayPal,因爲你提到關於使用API​​。

+0

我在x.com論壇詢問,如果paypal api可以做到這一點,從那裏的工作人員得到否定的答案:/ – jagarock 2011-04-18 00:20:34

+0

我不知道你想要什麼甚至可能。如果我將成爲貝寶這類東西的主要人物,我絕不會允許這樣的行爲。使用PayPal PRO API可以讓事情變得更輕鬆。如果他們沒有這個功能,我認爲你沒有任何安全問題就可以用CURL來實現它。最後,這是一個網上商店,安全對你很重要。 – Revenant 2011-04-18 00:33:46

+0

應該可以模擬手動登錄並按下確認按鈕。一切皆有可能,不是那句話。它有可能從frontpage登錄,所以爲什麼不應該從結賬流程。安全性不是我的問題,因爲我將手動點擊後端系統中的「網站上的訂單和付款項目」按鈕。 – jagarock 2011-04-18 00:40:34