2012-07-11 45 views
0

我正在嘗試讓貝寶爲我的網站工作。我使用Jade,所以下面的代碼看起來不像HTML,但呈現相同。貝寶不按預期重定向

form(id="SubmitForm", action="https://api-3t.sandbox.paypal.com/nvp") 
    input(type="hidden", name="USER",value="USER") 
    input(type="hidden", name="PWD", value="PWD") 
    input(type="hidden", name="SIGNATURE", value="SIGNATURE") 
    input(type="hidden", name="VERSION", value="89.0") 
    input(type="hidden", name="PAYMENTREQUEST_0_PAYMENTACTION", 
        value="Sale") 
    input(name="PAYMENTREQUEST_0_AMT", value="19.95") 
    input(type="hidden", name="RETURNURL", 
        value="https://localhost:3001/confirm") 
    input(type="hidden", name="CANCELURL", 
        value="https://localhost:3001/end") 
    input(type="submit", name="METHOD", value="SetExpressCheckout") 

它確實給PayPal,並返回一個字符串與令牌,而不是做一個重定向回到我期待的確認頁面。

我看到類似....

TOKEN = EC%2d33S38595GH5727152 & TIMESTAMP = 2012%2d07%2d11T20%3A00%3a02Z &的correlationID = 687adf3870d19 & ACK =成功& VERSION = 89%2E0 & BUILD = 3242673

用的網址...

https://api-3t.sandbox.paypal.com/nvp?USER=USER&PWD=PWD&SIGNATURE=SIG&VERSION=89.0&PAYMENTREQUEST_0_PAYMENTACTION=Sale&PAYMENTREQUEST_0_AMT=19.95&RETURNURL=https%3A%2F%2Flocalhost%3A3001%2Fconfirm&CANCELURL=https%3A%2F%2Flocalhost%3A3001%2Fend&METHOD=SetExpressCheckout

如果我剪切並粘貼令牌,它工作正常,但是,我當然試圖避免這種情況。

回答

0

您確定您使用的是正確的網址嗎?它以「api」開頭的事實表明它打算通過服務器端進程或AJAX進行調用,並返回數據(因爲它正在進行)而不是發出重定向。

+0

但我不能使用AJAX調用,因爲它是一個跨域請求的權利?此外,爲什麼我會提供一個回調網址呢? – Jackie 2012-07-11 21:49:47

0

正如前面提到的那樣,這是因爲你得到的是用於通過服務器端進程的API調用。

如果您只想重定向到PayPal並立即付款,只需使用以下URL並將其替換爲您自己的值;
https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=YOUR-EMAIL-HERE&amount=YOUR-AMOUNT-HERE&item_name=NAME-OF-YOUR-ITEM-HERE&return=YOUR-RETURN-URL&cancel_return=YOUR-CANCEL-URL

+0

所以這仍然不能告訴我爲什麼需要一個重定向的URL,如果它不會重定向....但感謝正常的web服務的網址,我有一種感覺,我將不得不使用它。 – Jackie 2012-07-11 21:51:13

+0

它會重定向。 *交易完成後*。 – Robert 2012-07-12 20:42:20