¿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:

  1. Clasifica los parámetros en orden alfabético ascendente, según el nombre del parámetro.
  2. 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];
        }
  1. 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);