我们的网站上有一个捐赠按钮,可以转到PayPal。捐款得到处理,用户点击PayPal成功页面上的一个按钮,然后被重定向到一个PHP页面,其中有要下载的地图列表。我想限制谁可以访问这个页面的用户来自贝宝或用户来自我们的网站。我尝试过各种。htaccess规则,他们似乎不与来自PayPal的用户http_referrer明智的工作。而引用的IP地址最终总是我在家里的IP地址。我还尝试编码PHP重定向目标表单,这样它只呈现页面,如果他们来自paypal.com或从我们的网站。否则,它们会得到一个错误页面。那么谁能建议一个更好的方法来限制访问PayPal成功页面后的重定向页面?谢谢。
有很多方法。这是我过去用过的。
首先,您想要授予已经付款(或捐赠)的用户访问权限。根据你是想给用户(已经付费的)一次访问还是允许他们在退出后多次访问,你可以检查这个用户在这个会话中是否进行了支付。
这里有一个实现它的方法:
// PAYMENT CONFIRMATION
$payment_success="FALSE"; // DEFAULT to payment failed
$payment=mysql_real_escape_string($_GET['payment']);
$ab=$_REQUEST['ab'];
$tx=$_REQUEST['tx'];
$st=$_REQUEST['st'];
$amt=$_REQUEST['amt'];
if(($tx!="") AND ($st=="Completed") AND ($amt!="")){
$payment_success="TRUE";
}else{
header("location: index.php"); // or wherever you want to send users who haven't paid.
}
如果你想给用户谁已经支付,即使他们已经注销,然后你需要设置cookie在他们的浏览器使用setcookie();
或跟踪他们的IP [$_SERVER'['REMOTE_ADDR'']][2]
并添加到你的数据库,所以每次用户来到你的页面,你可以运行一个检查,看看他们是否在你的安全列表。
我最后只是在PayPal重定向URL的末尾添加了一个静态令牌。我在目标PHP页面中测试令牌,如果令牌正确,让它们访问目标映射页面。如果不是,我会给他们一个错误提示。这是一个短期的修复,因为我将不得不手动更改令牌每隔一段时间,以防止人们从书签页面和下载我们的地图不止一次。
我要尝试用不同的令牌生成随机按钮,或者看看PayPal是否有他们可以从他们的端发送的东西,我可以验证。
感谢您的回复