flowcl / PHP-API-CLIENT

Cliente PHP para consumir el API de Flow
14 stars 9 forks source link

API Node #10

Open angelhdzmultimedia opened 1 year ago

angelhdzmultimedia commented 1 year ago

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:

image

Cualquier informacion brindada sera agradecida.

angelhdzmultimedia commented 1 year ago

Actualización

Vi los cambios en https://www.flow.cl/docs/api_changelog.txt, y añadi el payment_currency. El error continua.