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

是否可以在Paypal IPN通知URL中嵌入HTTP基本用户名/密码?,paypal,paypal-ipn,Paypal,Paypal Ipn,我正在建立一个网站,它目前受到HTTP基本身份验证用户名和密码的保护 我想测试与Paypal IPN的集成 在我的测试卖家的Paypal沙箱帐户中,我以以下形式指定了我的IPN通知URL: http://USERNAME:PASSWORD@IP_ADDRESS/?QUERY_PARAMS 我已经确认,当我在一个不知名的Chrome窗口中加载这个URL时,它工作正常 当我进行测试购买时,Paypal似乎没有发送HTTP基本身份验证头,IPN通知失败,因为它无法授权。我还使用Paypal开发工具中

我正在建立一个网站,它目前受到HTTP基本身份验证用户名和密码的保护

我想测试与Paypal IPN的集成

在我的测试卖家的Paypal沙箱帐户中,我以以下形式指定了我的IPN通知URL:

http://USERNAME:PASSWORD@IP_ADDRESS/?QUERY_PARAMS
我已经确认,当我在一个不知名的Chrome窗口中加载这个URL时,它工作正常

当我进行测试购买时,Paypal似乎没有发送HTTP基本身份验证头,IPN通知失败,因为它无法授权。我还使用Paypal开发工具中的IPN测试仪对此进行了测试


有没有办法告诉Paypal发送必要的身份验证头,或者我必须在服务器端重新配置?

根据Paypal文档,这是不可能的,但是,如果您询问真实场景,通常您的web服务器前面有代理服务器,该服务器处理简单的HTTP身份验证,您可以为PayPal IPN URL设置排除规则。例如,如果您使用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;
    }
}

}

您不需要这个。PayPal IPN已经提供了一个消息验证系统。不要自己滚。我不担心信息安全。此网站处于开发模式,我无法允许公众访问。我可以通过一些apacheconf技巧来允许IPN查询,但是如果Paypal的IPN代理可以发送HTTP基本auth-creds,那么就更容易了。