PayPal IPN在端口80以外的端口上如何实现?

16

有人尝试在80端口以外的端口上使用Paypal的IPN吗?

我正在尝试指定一个像http://domain.com:8080/url/to/ipn.php这样的URL,但是IPN请求没有通过。

如果我直接从浏览器访问该URL,则可以正常工作。

2个回答

12

经过多次测试,我能够确认PayPal的通知URL/notify_url不能包含非标准端口号。

以下这些URL将会生效:

http://my.website.com:80/ipnpage.aspx
https://my.website.com:443/ipnpage.aspx

这些不会起作用:

http://my.website.com:81/ipnpage.aspx
https://my.website.com:82/ipnpage.aspx

已提交为错误报告。 感谢您提交您的问题。请使用此参考编号进行后续跟进:#130124-000237 - Mark
这个问题还存在吗?我似乎无法在非标准端口上获得IPN。我觉得很困惑为什么存在这样的限制。 - EdGruberman
@Ed:限制仍然存在。 - Mark
@EdGruberman 尽管很烦人,但我猜测PayPal不想在他们的出站防火墙上开放更多的端口。如果他们取消了这个限制,除非他们自己指定了备用端口,否则他们将不得不允许任何端口的出站流量,这会让他们的安全人员感到不满。我不能确定我的猜测是否正确,因为我与PayPal没有任何关联,但这是我最好的猜测。 - Peter Bagnall
3
2016年至今,这个限制仍然存在。 - hectorg87

5
如果您有一个带有SSH访问权限的Nginx服务器,则可以执行以下操作:
启动SSH反向代理:
ssh -Nvv -o TCPKeepAlive=yes -R 3000:localhost:3000 username@your-server.com

将Nginx配置添加到代理将端口3000代理到端口80:

server {
    listen       80;
    server_name  your-app.your-server.com;

    location / {
      proxy_pass          http://localhost:3000;
      proxy_set_header    Host             $host;
      proxy_set_header    X-Real-IP        $remote_addr;
      proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
      proxy_set_header    X-Client-Verify  SUCCESS;
      proxy_read_timeout 1800;
      proxy_connect_timeout 1800;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接