Description
Buenas. Estoy implementando esta API https://github.com/EstebanFuentealba/flowcl-node-api-client
Tuve que hacerle un fork local porque no soporta ESM.
Tambien reemplace CryptoJS
con createHmac
de node:crypto
obviamente usando sha256.
El payload se imprime en consola, la apiKey
, el s
(payload firmado), paymentMethod, currency, commerceOrder, email, amount, subject, urlConfirmation y urlReturn.
Las URLs estan bien, el baseUrl es https://sandbox.flow.cl/api y pues tengo estas constantes para los endpoints:
const PaymentUrl = {
create: 'payment/create',
createEmail: 'payment/createEmail',
getStatus: 'payment/getStatus',
}
Estoy haciendo una peticion POST a payment/create
pasandole los datos:
const _params = {
apiKey: this.apiKey,
...params,
}
let sign = this.sign(_params)
_params.s = sign
Y me arroja error:
ERROR [ExceptionsHandler] There's some missing params Error: There's some missing params
mi funcion para firmar es:
sign(params) {
const keys = Object.keys(params)
.map((key) => key)
.sort((a, b) => {
if (a > b) return 1
else if (a < b) return -1
return 0
})
let toSign: string = keys
.map((key) => {
return key + params[key]
})
.join('')
return createHmac('sha256', this.secretKey).update(toSign).digest('hex')
}
y la cadena que retorna sigue el formato mostrado en la documentacion:
Cualquier informacion brindada sera agradecida.