3

我正在使用简单的 HTTP 身份验证保护的开发环境中测试环境。我不想在没有身份验证的情况下公开环境。Paypal/Paypal-sandbox 可以通过简单的 HTTP 身份验证将 IPN 发送到我的开发服务器,例如https://username:password@mydomain.com/ipn吗?谢谢。

4

4 回答 4

2

尽管 Paypal 允许您将 IPN URL 设置为https://username:password@mydomain.com/ipn之类的内容,但它似乎不会发送用户名和密码。

在我删除服务器上的身份验证之前,所有请求在我的 IPN 历史记录中一直标记为失败。请注意,您也可以创建一个 .htaccess 文件来让来自 paypal 的请求进入(我没有这样做,所以我不知道确切的语法,你应该谷歌它)。

于 2012-09-22T17:21:38.883 回答
1

IIRC谷歌搜索后,我看起来不像你可以。我们使用 PayPal,基本上,custom当用户单击您的 PayPal 按钮时,您可以将变量传递给 IPN 进程。然后,此变量将贯穿整个事务,并将发送到处理 IPN 通知的控制器。

然后由您来验证请求并确保它看起来可信。

例如,您可以在自定义变量中使用用户 ID,将 PayPal 电子邮件地址与您在文件中的地址进行比较,并(在您的服务器上进行跟踪)查看他们最近单击了该按钮。

有关详细信息,请参阅PayPal IPN 文档

于 2012-05-07T08:00:06.430 回答
0

我还在开发一个接受贝宝付款的网站。就像你一样,我很难弄清楚如何处理 IPN 以及如何测试它。为了能够设置 IPN,编辑您的按钮并转到高级选项。在那里您会发现包含其他变量的文本区域。只需复制右侧的 2 个示例变量(notify_url 和 (address_overide=1)?)。更改 notify_url 值然后保存。

于 2012-05-17T06:44:39.103 回答
0

就目前而言,这是不可能的,但是如果您询问实际情况,通常您在处理简单 HTTP 身份验证的网络服务器前面/作为您的网络服务器有代理服务器,您可以为您的贝宝 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;
    }
}}
于 2017-05-25T12:59:39.397 回答