【问题标题】:Stripe webhooks getting a 404Stripe webhook 得到 404
【发布时间】:2015-02-27 21:22:39
【问题描述】:

我正试图让我的应用程序接受和阅读 Stripe webhook,但我遇到了一个有点不可预测的 404 问题。我有一个处理来自 Stripe 的 webhook 请求的 PHP 文件。它肯定存在。我可以导航到它,当文件中唯一的代码是:

$input = @file_get_contents("php://input");
$event_json = json_decode($input);
http_response_code(200);

但是,当我添加更多代码时(我添加的代码太复杂,无法在此处发布),我开始收到 404。我已验证额外代码不会在错误日志中生成任何致命错误甚至警告/通知。

此外,使用相同的代码,当我从 https://dashboard.stripe.com/account/webhooks 发送多个测试 webhook 时,其中大约一半会说“测试 webhook 发送成功”,大约一半会说“测试 webhook 错误:404”。

有谁知道导致这些 404 的原因是什么?内存问题?未记录的错误(不知道这是怎么发生的,但谁知道)? DNS错误? Stripe 是想让我发疯吗?

谢谢。

【问题讨论】:

  • 你说你“可以导航到它”,但是 Stripe webhook 是 POST 请求而不是 GET,所以这听起来不对。此外,http_response_code 需要 PHP 5.4+,因此请确保您至少运行该版本。
  • @Pier-LucGendreau 谢谢。您使用 POST 的建议为我解决了这个问题。我之前使用的是 GET。

标签: php stripe-payments webhooks


【解决方案1】:

如果您可以使用 webhook 保存您的帐户设置,您可以运行测试费用,转到 https://dashboard.stripe.com/events,打开一个活动,然后进入底部的 webhook 详细信息。这会让你看到你的服务器发回给 Stripe 的响应(如果有的话)。

如果那里没有任何有用的东西,我会尝试缩减您的完整代码,直到您有一个尽可能小的示例,仍然是 404s。这可能会使问题更容易找到,如果没有,您可以发布该代码。

【讨论】:

    【解决方案2】:

    这是我工作的 webhook 中的代码。当被条纹击中时,我的总是产生 200。希望对您有所帮助:

    include_once('path/to/Stripe/Stripe.php');
    
    // Set your secret key: remember to change this to your live secret key in production
    if($_SERVER['HTTP_HOST'] == 'example.com')
    {
        Stripe::setApiKey("sk_live_my_key");
    }
    else
    {
        Stripe::setApiKey("sk_test_my_key");
    }
    // Retrieve the request's body and parse it as JSON
    $body = @file_get_contents('php://input');
    $event_json = json_decode($body, true);
    
    if(!empty($event_json))
    {
        //do stuff...
        echo '<pre>'; print_r($event_json); die();
    }
    
    die('success');
    

    值得注意的是,我最后确实有一个骰子。

    【讨论】:

      【解决方案3】:

      原来是 DNS 错误。我有一个分布式托管环境,3 个 IP 地址中有 2 个返回 404。但是,我在本地被锁定到 1 个工作 IP 地址。将我的 A 记录更改为一个工作 IP(因为相关站点是开发站点,而不是实时站点,并且不需要多个后备),这解决了问题。愚蠢的错误。

      【讨论】:

        猜你喜欢
        • 2021-07-14
        • 2018-08-02
        • 2015-04-18
        • 1970-01-01
        • 2019-03-04
        • 2017-10-03
        • 2021-01-14
        • 2018-09-18
        • 2022-06-16
        相关资源
        最近更新 更多