2013-09-23 51 views
0

Hy guys。 我剛剛在我的網站上實施了PayPal結賬快遞。 一切都很順利,直到我進行了測試(沒有沙箱,因爲他們沒有給我發送確認郵件,我無法獲得api憑證) - 我使用了我自己的PayPal帳戶。貝寶快遞結帳付出更多(問題)

我的問題是:

步驟1)稱之爲 「SetExpressCheckout」 與所需的數據。

步驟2)獲取tocken並重定向用戶支付0.01美元。 (一切都很好,用戶看到$ 0.01)

步驟3)獲得買家的詳細信息... 「GetExpressCheckoutDetails」,並將其保存(都好)

這裏是大問題:

第4步)調用API:「DoExpressCheckoutPayment」與TOKEN,PAYER_ID ...等也支付總金額

在這一步我錯誤地加入量爲$ 500 - $硬編碼,最後確定$五百人轉移到訂單後我來自買家accou的帳戶nt而不是0.01美元。

這怎麼可能?爲什麼PayPal不檢查setExpressCheckout的總金額與DoExpressCheckoutPayment的總金額,因爲tocken是一樣的。

在我看來,這是一個重大的安全問題。

回答

0

這是設計。 SetExpressCheckout設置付款,但是在您調用GetExpressCheckoutDetails之前,您的應用程序將不知道(在最佳實踐場景中)買方的送貨地址。此時,您可以相應地計算運費和銷售稅,並將其添加到訂單中,顯示最終評估頁面,然後調用DoExpressCheckoutPayment並收取最終訂單金額。

所以,是的,無論你在DECP中通過什麼都會被收取費用,所以你想確保這是正確的。

至於測試,您只需要在http://developer.paypal.com創建一個帳戶,然後在其中創建沙箱帳戶。您可以通過單擊每個沙箱帳戶的配置文件來獲取沙箱帳戶的API憑據。無需等待任何確認電子郵件或任何東西。不知道你指的是什麼,但我絕對推薦在沙箱上進行測試。

+0

我無法獲取API憑證,直到我確認我的電子郵件。即使在沙箱中。我沒有理解爲什麼這是如此必要。 –

+0

沙盒帳戶甚至不使用真實的電子郵件地址。這一切都是通過開發者帳戶處理的。它可以在幾分鐘內完成。 –

+0

爲什麼我無法獲得API憑證呢?通過進入Profile-> Api Access-> Option 2(沒有第三方),我得到這個:「在請求API證書之前請確認你的電子郵件地址。」我相信你有更多的經驗,告訴我:爲什麼買家從來沒有看到他支付(將支付)500美元,直到交易完成? –