【发布时间】:2020-01-26 13:29:14
【问题描述】:
我从条带 webhook 网址收到空白响应。
我正在使用以下代码:
$json = file_get_contents('php://input');
$action = json_decode($json, true);
但在 $json 数组中,我得到空白响应。
【问题讨论】:
标签: php wordpress stripe-payments
我从条带 webhook 网址收到空白响应。
我正在使用以下代码:
$json = file_get_contents('php://input');
$action = json_decode($json, true);
但在 $json 数组中,我得到空白响应。
【问题讨论】:
标签: php wordpress stripe-payments
我假设您的意思是 $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() 是否有效有关。)
【讨论】: