【发布时间】:2023-01-05 21:32:07
【问题描述】:
我创建了一个网站,并使用 PayStack 集成了支付功能,它功能齐全,但是当客户想要付款时,有时会出现一些异常情况。付款处理成功后,客户的网络提供商可能出了点问题,但客户没有被重定向到成功页面,在那里可以为数据库赋值。 所以我实现了 webhooks 以从 paystack 获取值并将内容放入 .txt (webhookApi.txt) 文件中,但代码似乎有问题,我无法弄清楚。
`
<?php
// only a post with paystack signature header gets our attention
if ((strtoupper($_SERVER['REQUEST_METHOD']) != 'POST' ) || !array_key_exists('x-paystack-signature', $_SERVER) )
exit();
// Retrieve the request's body
$input = @file_get_contents("php://input");
define('PAYSTACK_SECRET_KEY','sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxx');
// validate event do all at once to avoid timing attack
if($_SERVER['HTTP_X_PAYSTACK_SIGNATURE'] !== hash_hmac('HMAC SHA512', $input, PAYSTACK_SECRET_KEY))
exit();
http_response_code(200);
// parse event (which is json string) as object
// Do something - that will not take long - with $event
$event = json_decode($input);
$reference = $event->data->reference;
$email = $event->data->customer->email;
$eventMessage = $event->event;
file_put_contents("webhookApi.txt", PHP_EOL.$input, FILE_APPEND);
exit();
?>
`
【问题讨论】: