Este campo garantiza la integridad de las peticiones realizadas a nuestros servicios. Además le permite a los comercios controlar el límite de solicitudes hechas a las APIs transaccionales por un usuario específico.
Para utilizar estos servicios es necesario incluir la Firma de Seguridad:
api/v2/transaction/other o hosted/payment/otherdoSale o API api/v2/transaction/saledoAuth o API api/v2/transaction/authdoCapture o API api/v2/transaction/capturegetStatus o API api/v2/transaction/statusSegún el servicio que se está implementando, se debe generar la firma con algunos de los campos enviados en la petición:
app_key: el identificador de tu comercio, puedes extraerlo aquíorder_id: el número de órden de la transacción que quieres firmarapp_url: la plataforma de tu comercio, puedes extraerla aquísecret_key: la llave secreta de tu comercio, puedes extraerla aquíPara casos más avanzados, también puedes necesitar incluir otros campos en la firma:
transaction_approved_amount: para transacciones de captura de fondos, este es el monto total a capturarpayment_uuid: para transacciones de captura de fondos o estatus de un cobro, este es el identificador del pago| Servicio | Campos Necesarios |
|---|---|
API api/v2/transaction/other API hosted/payment/other API api/v2/transaction/sale API api/v2/transaction/auth SDK doSale SDK doAuth |
app_key, order_id, app_url |
API api/v2/transaction/capture SDK doCapture |
app_key, transaction_approved_amount, payment_uuid, app_url |
API api/v2/transaction/status SDK getStatus |
app_key, payment_uuid, app_url |
Una vez identificado el servicio y los campos necesarios para firmar tu petición, debes concatenar en una cadena todos los campos con el símbolo |. Esta cadena luego debe ser procesada a través de HMAC con el algoritmo SHA3-512, utilizando el secret key para firmarlo.
Ya que la creación de la firma implica hacer uso del secret key, procura hacerlo en un ambiente controlado como un servidor o API interna, y no dentro del dispositivo del usuario.
Si sospechas que tu secret key se ha expuesto, puedes ver como crear uno nuevo aquí.
Por ejemplo, al crear una firma para una transacción al servicio de Venta Directa con número de órden ORDER-8888 y datos de un comercio ficticio, el resultado debe ser 688084a6...e852ee2a:
Cuando ya hemos creado la firma, esta se debe de enviar en la petición en el encabezado x-client-signature. Si utilizas los servicios del SDK, puedes ver aquí como agregar este encabezado a tus peticiones.