我从条纹Webhook网址收到空白响应。
我正在使用以下代码:
$json = file_get_contents('php://input');
$action = json_decode($json, true);
但是在 $ json 数组中,我得到的响应为空。
答案 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()
是否有效有关。)