希望这个问题不太天真......
我试图实施The Giving Lab API以允许我网站的用户捐赠给慈善机构。
使用这样的URL:
用户被引导到捐赠页面,然后在捐赠完成后返回到returnURL。
如果用户成功完成付款,我希望能够添加用户捐赠给我的数据库的金额。是否可以使用returnURL来做到这一点?也就是说,我可以使用mywebsite.com?q="amount_donated"形式的returnURL;然后用它来更新我的数据库?
我可以看到,只需将returnURL输入浏览器,就可以让某人更新我的数据库。
是否有更好的方法可以消除这个问题?
非常感谢。
答案 0 :(得分:1)
荷兰银行使用一种称为sha-sign的东西(它们可能不是第一种)
您所要做的就是添加一个只有您能够知道的密钥:
function makeSecureCode($var1, $var2){
$secretCode = 'example';
$secretKey = '';
$secretKey.= $var1 . $secretCode;
$secretKey.= $var2 . $secretCode;
return sha1($secretKey);
}
然后将网址设为:?var1 = foo& var2 = bar& key = 5e8b73da0b20481c1b4a285fb756958e4faa7ff1
当您在付款后处理代码时,makeSecureCode($ _GET ['var1'],$ _GET ['var2'])应该等于$ _GET ['key']。如果没有,有人改变了它。
这是一个简单的版本,只有两个vars。你可以使它有更多的输入参数或数组,无论你喜欢什么。