【问题标题】:I am getting blank response from webhook url which I am using for Stripe events我从用于 Stripe 事件的 webhook url 收到空白响应
【发布时间】:2020-01-26 13:29:14
【问题描述】:

我从条带 webhook 网址收到空白响应。

我正在使用以下代码:

$json = file_get_contents('php://input'); 
$action = json_decode($json, true);

但在 $json 数组中,我得到空白响应。

【问题讨论】:

    标签: php wordpress stripe-payments


    【解决方案1】:

    我假设您的意思是 $action 数组是空的。我的猜测是——而且我从来没有看过——来自php://input 的请求正文不是 JSON。

    我使用的代码与 Stripe 网站上的示例基本相同,对我来说效果很好:

        $payload = @file_get_contents('php://input');
        $sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
        $event = null;
        try {
            $event = Webhook::constructEvent(
                $payload,
                $sig_header,
                $this->stripeApiKey
            );
        } catch (\UnexpectedValueException $e) {
            throw new BadRequestHttpException('Unexpected value error');
        } catch (SignatureVerification $e) {
            throw new BadRequestHttpException('Signature verification error');
        }
    

    在这一点之后,您应该在$event 中有一个有效的事件,并且可以使用$object = $event->data->object 获取它的核心对象。该对象将是什么类型取决于您收到 webhook 调用的事件。您可以使用$event->type 获取事件类型。

    (是的,我知道使用@ 是不好的做法,但我并不介意那里的失败,因为一切都与Webhook::constructEvent() 是否有效有关。)

    【讨论】:

      猜你喜欢
      • 2017-12-12
      • 2017-10-25
      • 2022-06-16
      • 1970-01-01
      • 2015-10-24
      • 2019-04-14
      • 2020-10-24
      • 2019-03-03
      • 2014-01-29
      相关资源
      最近更新 更多