2011-04-02 37 views
0

當他們提交了驗證功能的詳細信息時,我創建了一個Zend表單(用戶可以指定他們想要存入我的後端系統的支付細節和金額)確保所有數據都得到驗證。但經過驗證後,我想將必要的支付數據提交給paypal IPN網站,並將用戶轉發到paypal網站(以便他們可以輸入他們的paypal電子郵件和密碼進行交易)。需要Zend表單支持Paypal網站的幫助

但我不知道我該如何做到這一點?我是否需要創建一個新的Zend Form對象並將數據發佈到paypal網站,或者有一種簡單的方法將數據提交給paypal並將用戶轉發到paypal網站?如果可能的話,你能告訴我如何編碼?

非常感謝。

+0

從Paypal的角度來看溝通如何工作?你是否向他們提交了詳細信息,他們回覆了一個URL來重定向用戶? – 2011-04-02 16:58:46

回答

1

假設您使用Express Checkout,最簡單的方法是在驗證後將用戶簡單地重定向到另一個頁面,說「重定向到paypal ...」。

在那個頁面上你會看到一個隱藏的表單(你可以用Zend_Form來構建它,或者手動創建它並不重要),然後你可以添加一些javascript來提交該表單,同時也可以讓「submit」按鈕可見該用戶可以點擊它,如果累了等到JavaScript爲他做。

或者,這可以簡單地是「感謝您」頁面,例如:

謝謝您的訂單! 您的訂單號是27335

[點擊此處]完成付款。

付款完成後,貝寶將返回到您指定的IPN網址。然後你可以這樣檢查:

$paypal_url = 'https://www.paypal.com/cgi-bin/webscr'; 
$client = new Zend_Http_Client($paypal_url); 
$client->setMethod(Zend_Http_Client::POST); 
$client->setParameterPost(array('cmd' => '_notify-validate')+$_POST); 
$response = $client->request(); 

if ($response->getBody() !== 'VERIFIED') { 
    //Not verified 
    die("FAIL"); 
} 

這段代碼的和平只是確保你從IPN得到的東西確實來自PayPal。 之後,您還需要檢查它在$ _POST中傳遞給您的參數(如訂單號,金額,貨幣等)。 您還需要item_number將其與您在重定向到PayPal之前添加的訂單#「鏈接」。

您還可以檢查其他的方式做結帳,這意味着貝寶在這裏https://cms.paypal.com/ca/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_WPGettingStarted

或者,你也可以嘗試的PayPal NVP的解決方案。