牢固

2013-06-25 77 views
0

希望這個問題是不是太天真......牢固

我試圖爲了讓我的網站的用戶捐贈給慈善機構,以實現The Giving Lab API

使用URL這樣的:

https://www.thegivinglab.org/api/donation/start?donationtype=0&amount=10&charityid=84ed3c54-6d8c-41c5-8090-f8ec800f45a7&returnurl=mywebsite.com/

用戶被定向到捐款頁面,然後捐贈作出後回到RETURNURL。

我希望能夠添加多少用戶捐贈給我的數據庫,如果他們成功完成付款。是否有可能使用returnURL來做到這一點?即我可以使用mywebsite.com?q="amount_donated形式的returnURL,然後使用它來更新我的數據庫?

我可以看到,這將允許有人通過在他們的瀏覽器中輸入returnURL來更新我的數據庫。

有沒有一個更好的方法來消除這個問題?

非常感謝。

回答

1

荷蘭銀行使用一種叫做SHA-SIGN的事情(和他們probally不是第一次)

所有你需要做的就是添加一個關鍵,只有你可以知道:

function makeSecureCode($var1, $var2){ 
    $secretCode = 'example'; 
    $secretKey = ''; 
    $secretKey.= $var1 . $secretCode; 
    $secretKey.= $var2 . $secretCode; 

    return sha1($secretKey); 
} 

然後,讓這樣的URL:VAR1 = foo的& VAR2 =酒吧&鍵= 5e8b73da0b20481c1b4a285fb756958e4faa7ff1

當你付款後處理的代碼,makeSecureCode($ _ GET [ 'VAR1'],$ _GET [ 'VAR2'])應該等於$ _GET ['key']。如果不是,有人改變它。

這是一個簡單的版本只有兩個變量。你可以讓它有更多的輸入參數或數組,無論你喜歡什麼。