API
Pular para o conteúdo principal

Autenticação dos pedidos

O seguinte header é enviado no pedido HTTP de forma a permitir verificar a sua integridade e autenticidade:

PayPay-Signature: hash=14d06cc11e0479c2ffe138d963462bc0f0ad94e8e006cf4f1f494c5e30bd1830,ts=1615826436

O header é composto pela assinatura hash e o timestamp ts. Para verificar se o pedido é válido a seguinte hash deverá ser igual à hash do header:

hash_hmac("SHA256", [payload] + [ts], [Password/Private Key])
Exemplo de uma função em PHP para validação da assinatura
private function has_valid_signature( $private_key ) {
if (!isset($_SERVER['HTTP_PAYPAY_SIGNATURE'])) {
return false;
}

$body = file_get_contents('php://input');

$signature = str_replace(',', '&', $_SERVER['HTTP_PAYPAY_SIGNATURE']);

parse_str($signature, $output);

return (int) ($output['ts'] ) > (time() - 1800 ) &&
hash_equals($output['hash'], hash_hmac('sha256', $body . $output['ts'], $private_key));
}