我从用于Stripe事件的webhook url收到空白响应

时间:2019-09-26 09:40:30

标签: php wordpress stripe-payments

我从条纹Webhook网址收到空白响应。

我正在使用以下代码:

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

但是在 $ json 数组中,我得到的响应为空。

1 个答案:

答案 0 :(得分:0)

我假设您的意思是$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()是否有效有关。)