2011-03-10 65 views
0

我正在嘗試通過cURL提交給Paypal網站付款專業版。我試圖做這樣的事情:cURL&Paypal WPS

// set vars 
    $cmd = "_cart"; 
    $upload = "1"; 
    $business = "[email protected]"; 

    $req = "cmd=$cmd&upload=$upload&business=$business"; 
    $req .= "&".postToEncoded($_POST); 

    $url = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; // test 
    // $url= 'https://www.paypal.com/cgi-bin/webscr'; // live 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $req); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 

    $res = @curl_exec($ch); 
    $curl_err = curl_error($ch); 

    curl_close($ch); 

我試過一噸的選擇讀不同的地方,我還沒有得到這個工作。我只是希望能夠將我的額外變量傳遞給PayPal,然後繼續加載增加的變量的PP站點。該帖子工作正常,但我不知道如何去它的PP網站!

+0

您是否收到任何錯誤?你能發佈更多信息嗎? – Sergey 2011-03-10 04:23:11

+0

我沒有收到任何錯誤。螢火蟲中的網頁面板顯示發佈到中間頁面(上面的腳本)正在工作,如果我回顯$ req它也很好地形成。它似乎只是不想被貝寶接受(他們的服務器是否知道常規投遞提交和cURL提交之間的區別?)。我需要一起發送api證書嗎? – 2011-03-10 04:39:48

+0

cURL不會通過設計將用戶發送到遠程站點。如果你想讓用戶在那裏結束,只需使用帶有下面提到的Serge等隱藏字段的常規POST。 – 2011-03-10 04:55:10

回答

1

如果您試圖用您的參數將您的客戶重定向到貝寶頁面 - 您可以採用不同的方式。讓你的表單讓POST添加3個隱藏字段,並將表單的action設置爲PayPal的頁面。這樣,客戶將立即到達那裏,而不需要PHP。

這會適用於您的情況嗎?或者我誤解了一些東西?

+0

我; m試圖保持公共頁面的貝寶變量。在嘗試將信息移出到單獨的文件之前,我已經進行了上述測試。我正在使用javascript做一個自我提交的表單,但這似乎很愚蠢,因爲這a)是不可能的,或者b)沒有記錄在任何地方。 – 2011-03-10 06:13:04

+0

@Thomas - 如果您需要客戶在提交後與PayPal進行互動 - 不可能像您所描述的那樣按照設計進行(我的意思是技術上的確如此,但我確信這是違反政策的)。這會暴露安全漏洞,因爲您需要在頁面上收集信息,例如客戶密碼。沒有人應該在任何域名上輸入paypal密碼,但paypal.com。如果沒有關於您最終要實現的內容的信息,很難爲您提供正確的解決方案。 PS:你提到的變量不是祕密;你爲什麼要隱藏它們? – Sergey 2011-03-10 15:13:05

+0

「你提到的變量不是祕密,你爲什麼隱藏它們?」 - 好吧,因爲數據是有價值的,所以盜用盜版行爲十分猖獗。如果你不需要,爲什麼要將其中一半的登錄人交給他的PayPal賬戶(這是收錢)?如果我可以混淆這一點,惡意用戶可能仍然能夠得到它,但至少我不是自己把鑰匙交給他們。 – 2011-10-29 00:24:24