获取引荐来源网址 - 来自PayPal (HTTPS) 的访问者


Get referrer URL - visitors coming from Paypal (HTTPS)

嗨,我正在尝试获取引荐来源网址,但是当访问者从PayPal访问该网站时,它不起作用

$ref = $_SERVER['HTTP_REFERER'];
echo $ref;

如果访问者登陆网站,有没有一种简单的方法可以获取PayPal PayPal网址?

编辑和澄清:我不希望在PayPal网站上有任何特殊设置(包括但不限于:IPN,设置返回URL,付款数据传输或PayPal网站上的任何其他特殊设置(我正在寻找的只是在访问者从PayPal访问该网站时获得URL引用,关于交易状态(如果有的话(。

正如鲍勃从手册中指出的那样

$_SERVER 是一个数组,包含标头、路径、 和脚本位置。此数组中的>条目由 网页服务器。不能保证每个网络>服务器都会提供 其中任何一个;服务器可能会省略某些内容,或提供未列出的其他内容 这里。

所以剩下的唯一问题是 - 在不PayPal网站上设置某些东西的情况下,是否有任何解决方法?

如果您的网站使用 HTTP(不是 HTTPS(,而PayPal使用 HTTPS,则不会发送引荐来源网址!

HTTP RFC - 15.1.3 在 URI 的状态中编码敏感信息:

客户端不应在(不安全(中包含引用标头字段HTTP 请求(如果引用页面是使用安全传输的(协议。

因此,获取引荐来源网址的唯一方法是在您的网站上使用 HTTPS。

您可以检查 IPN。当事务受到影响时,它会发送通知。
网址 : https://www.paypal.com/ipn

不幸的是,引用器是由客户端设置的,并且某些浏览器(或插件(允许用户编辑发送到服务器的引用器。信任用户发送的"关键"(我猜在您的情况下(信息从来都不是一个好主意。但是,这是您拥有的有关用户来自何处的唯一信息(如果您决定不使用PayPal可以提供的内容(。

自 PHP.net:

$_SERVER 是一个包含标头、路径和脚本位置等信息的数组。此数组中的>条目由 Web 服务器创建。不能保证每个网络>服务器都会提供其中任何一个;服务器可能会省略某些内容,或提供此处未列出的其他内容。

感谢您的

启发(在评论中(。正如鲍勃所说,您不能依赖服务器发送的信息。我要做的是创建一个用户在付款前必须访问的页面,设置cookie(或会话(,将用户重定向到PayPal网站。当用户返回您的网站(通过PayPal、某些链接或手动(时,您知道此人点击了"支付"按钮(在您设置 cookie 或会话时(并执行您想要的操作。

这不是您要求的,但可能是一种可接受的解决方法。

你可以在javascript中使用document.referrer,如果需要,可以通过ajax或其他东西将其发送到服务器

从不同的角度来看:如果你正在尝试找出他们在PayPal之前来自哪里,并且你的网站正在将他们发送到PayPal(或者你可以让他们在去PayPal的路上通过你的网站重定向(,在重定向他们之前在你的网站上设置一个cookie,然后在他们返回时阅读cookie。

对不起,如果再次不是你需要的,但只是检查你已经考虑过它(因为我也不认为你会赢推荐人(。