I am trying to get WebHooks PayPal to work with my PHP application. The problem is the hashing algorithm, which they send through the headers that I should use to check if the request is valid.
When I try to use it, I get this error:
hash_hmac(): Unknown hashing algorithm: SHA256withRSA
I tried hash_hmac using only "sha256" algo and it worked, so I think the problem should be with the one that they want me to use.
Here is the code I use to handle Webhook:
$headers = apache_request_headers();
$body = @file_get_contents('php://input');
$json = json_decode($body);
$sigString = $headers['PAYPAL-TRANSMISSION-ID'].'|'.$headers['PAYPAL-TRANSMISSION-TIME'].'|'.$json->id.'|'.crc32($body);
$pub_key = openssl_pkey_get_public(file_get_contents($headers['PAYPAL-CERT-URL']));
$keyData = openssl_pkey_get_details($pub_key);
if ($headers['PAYPAL-TRANSMISSION-SIG'] != hash_hmac($headers['PAYPAL-AUTH-ALGO'],$sigString,$keyData['key'])) {
}
source
share