2011-03-04 188 views
0

我正在爲一個客戶開發一個網站,他希望人們能夠通過PayPal購買許可證/支持合同。我難以接受的是我如何確保付款安全。我目前的想法是使用MD5或其他方式生成隨機字符串,將其插入數據庫,並將其與PayPal按鈕代碼的其餘部分一起發送。付款完成後,用戶將被重定向到一個PHP頁面,在那裏有代碼可以更新他們在數據庫中的信息。阻止黑客給自己一個許可證/無需付費的唯一的東西就是隨機哈希,它可以使用某種嗅探器找到,並插入由PayPal代碼返回的POST數據。PHP PayPal支付驗證

所以。我的問題是:如何在成功的PayPal付款中執行自定義PHP代碼只有,而不會留下任何漏洞爲互聯網的更多惡意用戶打開?

回答

0

,如果你的網站準備好支付,有可能是會話已經用自己的用戶登錄?

在這種情況下

,當用戶返回到該網站,你可以檢查你有一個特定的會話變量,如果存在的話,你做以下

1)檢查你的會話,你有一個用戶登錄?如果您剛剛在幾分鐘前訪問了PayPal,則仍應該登錄。

2)會話是否包含您的sale_id? 3)如果沒有,在主頁上轉儲用戶,請記住header(「Location ...」);死亡( 「死的」)。如果是,檢查sale_id支付,該通知的URL應該已經趕上張貼的支付數據,如果有效,允許他們更新數據

5)如果是模具()部分是很重要的

4) ,但無效,允許他們使用其他方法償還,這意味着將他們重定向到另一個頁面以再次嘗試付款,但不要讓他們訪問「更改詳細信息」頁面,唯一的方法是通過嚴格驗證付款是否成功。

這對你有用嗎?

+0

感謝您的回答,但是我最近升級了代碼以使用PayPal的IPN以及PHP類。 – Bojangles 2012-07-09 22:38:47

+0

不用擔心,很高興你找到了解決方案。 – 2012-07-09 22:40:55