¿Cómo firmar las transacciones?
Parámetros
Todos los parámetros deben estar en la firma, excepto el parámetro "sign" (que es en donde va la firma).
Para firmar tus transacciones, sigue estos tres pasos:
- Clasifica los parámetros en orden alfabético ascendente, según el nombre del parámetro.
- Una vez ordenados, los parámetros deben concatenarse en una cadena. Por ejemplo, si los parámetros son:
"$data":
{
"amount": 45000,
"clientDocument": "999999999",
"clientEmail": "[email protected]",
"clientName": "John Doe",
"clientPhone": "999999999",
"country": "CL",
"currency": "CLP",
"order": 3000001,
"paymentMethod": "webpay_mall_payment",
"urlConfirmation": "Webhook",
"urlFinal": "example.com/successful",
"urlRejected": "example.com/declined"
}
Entonces, la cadena ordenada para la firma deberá tener este aspecto:
// String to sign.
$keys = array_keys($data);
sort($keys);
$toSign = '';
foreach ($keys as $key) {
$toSign .= $key . $data[$key];
}
- Finalmente, la cadena concatenada debe ser firmada con la función hmac usando el sha256 y SecretKey como clave:
// Obtaining the signature.
$sign = hash_hmac('sha256', $toSign, $secretKey);
Updated 6 months ago