是否可以在Paypal IPN通知URL中嵌入HTTP基本用户名/密码?

时间:2014-01-23 15:28:17

标签: paypal paypal-ipn

我正在构建一个站点,它目前受HTTP Basic Auth用户名和密码保护。

我想测试与Paypal IPN的集成。

在我的测试卖家的Paypal Sandbox帐户中,我在表单中指定了我的IPN通知网址:

http://USERNAME:PASSWORD@IP_ADDRESS/?QUERY_PARAMS

我已确认,当我在隐身Chrome窗口中加载此网址时,此网址可以正常使用。

当我进行测试购买时,Paypal似乎没有发送HTTP Basic Auth标头,并且IPN通知失败,因为它无法授权。我还使用Paypal开发人员工具中的IPN测试器对此进行了测试。

有没有办法告诉Paypal发送必要的auth标头,还是我必须在服务器端重新配置?

1 个答案:

答案 0 :(得分:0)

根据PayPal文档,这是不可能的,但如果您询问真实场景,通常在/作为您的Web服务器前面有代理服务器来处理简单的HTTP身份验证,您可以设置排除规则您的PayPal IPN网址。例如,如果您使用Nginx,您的指示将如下所示:

server {
listen 80;
server_name example.com;

location /paypal/ipn {
        try_files $uri @proxy_to_app;
}

location / {
    auth_basic "Restricted";
    auth_basic_user_file  /example/.htpasswd;
    try_files $uri @proxy_to_app;
}
location @proxy_to_app {
    if (!-f $request_filename) {
            proxy_pass http://localhost;
            break;
    }
}

}