PayStack::verifyWebhookSignature($body, $signature, $secret), 'rejects a different signature' => !PayStack::verifyWebhookSignature($body, str_repeat('0', 128), $secret), 'rejects an empty signature' => !PayStack::verifyWebhookSignature($body, '', $secret), 'signature binds to the raw request body' => !PayStack::verifyWebhookSignature($body . ' ', $signature, $secret), ]; foreach ($checks as $description => $passed) { if (!$passed) { fwrite(STDERR, "FAIL: {$description}\n"); exit(1); } } echo 'PASS: ' . count($checks) . " PayStack signature checks\n";