Почему код корректно работает на Node JS, а на PHP нет ( разные hash )? В чём ошибка php ?
Node JS
const { createHash, createHmac } = require('crypto')
const checkSignature = (token, { body, headers }) => {
const secret = createHash('sha256').update(token).digest()
const checkString = JSON.stringify(body)
const hmac = createHmac('sha256', secret).update(checkString).digest('hex')
return hmac === signature['crypto-pay-api-signature']
}
Code PHP
$secret =hash('sha256',$token);
$hash =hash_hmac('sha256',json_encode($body),$secret,false);